rspec unit pg 8/20
Passed Started
by
@mayra-cabrera

Mayra Cabrera
1Running with gitlab-runner 12.1.0 (de7731dd)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
00:12
4Starting service postgres:9.6.14 ...5Pulling docker image postgres:9.6.14 ...6Using docker image sha256:ac400042d32f8e146477ae5b3528f1e4232fc8e83b2fd9fe0cbe08900e45bae1 for postgres:9.6.14 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:ed7d2ff5a6232b43bdc89a2220ed989f532c3794422aa2a86823b8bc62e71447 for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...12Using docker image sha256:86f0d8cdc75562952aa064a92b9f1bae7a400a79fa1038b58d71c543d3771bda for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 13 Running on runner-d5ae8d25-project-13083-concurrent-0 via runner-d5ae8d25-gsrm-1567107142-a49ea091...
00:03
15Initialized empty Git repository in /builds/gitlab-org/gitlab-ce/.git/16Created fresh repository.18 * [new branch] master -> origin/master19Checking out 6712b133 as master...20Skipping Git submodules setup22Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/13083/debian-stretch-ruby-2.6.3-node-12.x-3 23Successfully extracted cache25Downloading artifacts from coordinator... ok id=283641330 responseStatus=200 OK token=f2MDoCA326Downloading artifacts for setup-test-env (283641331)...27Downloading artifacts from coordinator... ok id=283641331 responseStatus=200 OK token=5orpZ_PE28WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 29Downloading artifacts for retrieve-tests-metadata (283641332)...30Downloading artifacts from coordinator... ok id=283641332 responseStatus=200 OK token=9n8_JXaB32Thu Aug 29 20:32:50 UTC 201933$ source scripts/utils.sh34$ source scripts/prepare_build.sh35Bundler version 1.17.236Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.37The Gemfile's dependencies are satisfied38Successfully installed knapsack-1.18.0391 gem installed40CREATE ROLE41GRANT42Dropped database 'gitlabhq_test'43Created database 'gitlabhq_test'44-- enable_extension("pg_trgm")45 -> 0.0379s46-- enable_extension("plpgsql")47 -> 0.0030s48-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})49 -> 0.0083s50-- create_table("allowed_email_domains", {:force=>:cascade})51 -> 0.0060s52-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})53 -> 0.0141s54-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})55 -> 0.0142s56-- create_table("appearances", {:id=>:serial, :force=>:cascade})57 -> 0.0037s58-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})59 -> 0.0027s60-- create_table("application_settings", {:id=>:serial, :force=>:cascade})61 -> 0.0875s62-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})63 -> 0.0064s64-- create_table("approval_merge_request_rules", {:force=>:cascade})65 -> 0.0167s66-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})67 -> 0.0066s68-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})69 -> 0.0063s70-- create_table("approval_merge_request_rules_users", {:force=>:cascade})71 -> 0.0063s72-- create_table("approval_project_rules", {:force=>:cascade})73 -> 0.0079s74-- create_table("approval_project_rules_groups", {:force=>:cascade})75 -> 0.0066s76-- create_table("approval_project_rules_users", {:force=>:cascade})77 -> 0.0064s78-- create_table("approvals", {:id=>:serial, :force=>:cascade})79 -> 0.0105s80-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})81 -> 0.0072s82-- create_table("approvers", {:id=>:serial, :force=>:cascade})83 -> 0.0072s84-- create_table("audit_events", {:id=>:serial, :force=>:cascade})85 -> 0.0074s86-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})87 -> 0.0073s88-- create_table("badges", {:id=>:serial, :force=>:cascade})89 -> 0.0071s90-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})91 -> 0.0066s92-- create_table("board_group_recent_visits", {:force=>:cascade})93 -> 0.0112s94-- create_table("board_labels", {:id=>:serial, :force=>:cascade})95 -> 0.0064s96-- create_table("board_project_recent_visits", {:force=>:cascade})97 -> 0.0110s98-- create_table("boards", {:id=>:serial, :force=>:cascade})99 -> 0.0096s100-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})101 -> 0.0054s102-- create_table("chat_names", {:id=>:serial, :force=>:cascade})103 -> 0.0072s104-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})105 -> 0.0049s106-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})107 -> 0.0048s108-- create_table("ci_build_trace_chunks", {:force=>:cascade})109 -> 0.0049s110-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})111 -> 0.0050s112-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})113 -> 0.0088s114-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})115 -> 0.0522s116-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})117 -> 0.0074s118-- create_table("ci_builds_runner_session", {:force=>:cascade})119 -> 0.0050s120-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})121 -> 0.0063s122-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})123 -> 0.0136s124-- create_table("ci_job_variables", {:force=>:cascade})125 -> 0.0074s126-- create_table("ci_pipeline_chat_data", {:force=>:cascade})127 -> 0.0070s128-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})129 -> 0.0056s130-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})131 -> 0.0098s132-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})133 -> 0.0056s134-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})135 -> 0.0293s136-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})137 -> 0.0064s138-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})139 -> 0.0065s140-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})141 -> 0.0191s142-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})143 -> 0.0129s144-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})145 -> 0.0116s146-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})147 -> 0.0081s148-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})149 -> 0.0070s150-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})151 -> 0.0067s152-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})153 -> 0.0063s154-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})155 -> 0.0054s156-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})157 -> 0.0064s158-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})159 -> 0.0057s160-- create_table("clusters", {:id=>:serial, :force=>:cascade})161 -> 0.0091s162-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})163 -> 0.0050s164-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})165 -> 0.0052s166-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})167 -> 0.0051s168-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})169 -> 0.0072s170-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})171 -> 0.0050s172-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})173 -> 0.0049s174-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})175 -> 0.0075s176-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})177 -> 0.0153s178-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})179 -> 0.0070s180-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})181 -> 0.0072s182-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})183 -> 0.0054s184-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})185 -> 0.0049s186-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})187 -> 0.0049s188-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})189 -> 0.0107s190-- create_table("deployments", {:id=>:serial, :force=>:cascade})191 -> 0.0241s192-- create_table("design_management_designs", {:force=>:cascade})193 -> 0.0069s194-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})195 -> 0.0101s196-- create_table("design_management_versions", {:force=>:cascade})197 -> 0.0085s198-- create_table("draft_notes", {:force=>:cascade})199 -> 0.0126s200-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})201 -> 0.0037s202-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})203 -> 0.0033s204-- create_table("emails", {:id=>:serial, :force=>:cascade})205 -> 0.0091s206-- create_table("environments", {:id=>:serial, :force=>:cascade})207 -> 0.0117s208-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})209 -> 0.0065s210-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})211 -> 0.0043s212-- create_table("epics", {:id=>:serial, :force=>:cascade})213 -> 0.0228s214-- create_table("events", {:id=>:serial, :force=>:cascade})215 -> 0.0152s216-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})217 -> 0.0050s218-- create_table("features", {:id=>:serial, :force=>:cascade})219 -> 0.0048s220-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})221 -> 0.0085s222-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})223 -> 0.0050s224-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})225 -> 0.0044s226-- create_table("geo_cache_invalidation_events", {:force=>:cascade})227 -> 0.0026s228-- create_table("geo_container_repository_updated_events", {:force=>:cascade})229 -> 0.0044s230-- create_table("geo_event_log", {:force=>:cascade})231 -> 0.0297s232-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})233 -> 0.0048s234-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})235 -> 0.0050s236-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})237 -> 0.0049s238-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})239 -> 0.0057s240-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})241 -> 0.0085s242-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})243 -> 0.0064s244-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})245 -> 0.0128s246-- create_table("geo_repositories_changed_events", {:force=>:cascade})247 -> 0.0043s248-- create_table("geo_repository_created_events", {:force=>:cascade})249 -> 0.0049s250-- create_table("geo_repository_deleted_events", {:force=>:cascade})251 -> 0.0051s252-- create_table("geo_repository_renamed_events", {:force=>:cascade})253 -> 0.0051s254-- create_table("geo_repository_updated_events", {:force=>:cascade})255 -> 0.0082s256-- create_table("geo_reset_checksum_events", {:force=>:cascade})257 -> 0.0043s258-- create_table("geo_upload_deleted_events", {:force=>:cascade})259 -> 0.0049s260-- create_table("gitlab_subscriptions", {:force=>:cascade})261 -> 0.0081s262-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})263 -> 0.0094s264-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})265 -> 0.0100s266-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})267 -> 0.0139s268-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})269 -> 0.0072s270-- create_table("historical_data", {:id=>:serial, :force=>:cascade})271 -> 0.0024s272-- create_table("identities", {:id=>:serial, :force=>:cascade})273 -> 0.0095s274-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})275 -> 0.0073s276-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})277 -> 0.0050s278-- create_table("insights", {:id=>:serial, :force=>:cascade})279 -> 0.0067s280-- create_table("internal_ids", {:force=>:cascade})281 -> 0.0107s282-- create_table("ip_restrictions", {:force=>:cascade})283 -> 0.0049s284-- create_table("issue_assignees", {:id=>false, :force=>:cascade})285 -> 0.0053s286-- create_table("issue_links", {:id=>:serial, :force=>:cascade})287 -> 0.0085s288-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})289 -> 0.0044s290-- create_table("issue_tracker_data", {:force=>:cascade})291 -> 0.0053s292-- create_table("issues", {:id=>:serial, :force=>:cascade})293 -> 0.0379s294-- create_table("jira_connect_installations", {:force=>:cascade})295 -> 0.0050s296-- create_table("jira_connect_subscriptions", {:force=>:cascade})297 -> 0.0087s298-- create_table("jira_tracker_data", {:force=>:cascade})299 -> 0.0051s300-- create_table("keys", {:id=>:serial, :force=>:cascade})301 -> 0.0099s302-- create_table("label_links", {:id=>:serial, :force=>:cascade})303 -> 0.0070s304-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})305 -> 0.0085s306-- create_table("labels", {:id=>:serial, :force=>:cascade})307 -> 0.0139s308-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})309 -> 0.0029s310-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})311 -> 0.0089s312-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})313 -> 0.0072s314-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})315 -> 0.0065s316-- create_table("licenses", {:id=>:serial, :force=>:cascade})317 -> 0.0026s318-- create_table("list_user_preferences", {:force=>:cascade})319 -> 0.0087s320-- create_table("lists", {:id=>:serial, :force=>:cascade})321 -> 0.0132s322-- create_table("members", {:id=>:serial, :force=>:cascade})323 -> 0.0166s324-- create_table("merge_request_assignees", {:force=>:cascade})325 -> 0.0089s326-- create_table("merge_request_blocks", {:force=>:cascade})327 -> 0.0065s328-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})329 -> 0.0062s330-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})331 -> 0.0041s332-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})333 -> 0.0074s334-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})335 -> 0.0176s336-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})337 -> 0.0486s338-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})339 -> 0.0064s340-- create_table("merge_trains", {:force=>:cascade})341 -> 0.0112s342-- create_table("milestones", {:id=>:serial, :force=>:cascade})343 -> 0.0159s344-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})345 -> 0.0037s346-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})347 -> 0.0061s348-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})349 -> 0.0048s350-- create_table("namespaces", {:id=>:serial, :force=>:cascade})351 -> 0.0455s352-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})353 -> 0.0050s354-- create_table("notes", {:id=>:serial, :force=>:cascade})355 -> 0.0256s356-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})357 -> 0.0107s358-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})359 -> 0.0052s360-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})361 -> 0.0101s362-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})363 -> 0.0082s364-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})365 -> 0.0048s366-- create_table("operations_feature_flag_scopes", {:force=>:cascade})367 -> 0.0083s368-- create_table("operations_feature_flags", {:force=>:cascade})369 -> 0.0054s370-- create_table("operations_feature_flags_clients", {:force=>:cascade})371 -> 0.0069s372-- create_table("packages_maven_metadata", {:force=>:cascade})373 -> 0.0058s374-- create_table("packages_package_files", {:force=>:cascade})375 -> 0.0052s376-- create_table("packages_packages", {:force=>:cascade})377 -> 0.0049s378-- create_table("pages_domain_acme_orders", {:force=>:cascade})379 -> 0.0071s380-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})381 -> 0.0185s382-- create_table("path_locks", {:id=>:serial, :force=>:cascade})383 -> 0.0738s384-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})385 -> 0.0089s386-- create_table("plans", {:id=>:serial, :force=>:cascade})387 -> 0.0050s388-- create_table("pool_repositories", {:force=>:cascade})389 -> 0.0092s390-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})391 -> 0.0048s392-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})393 -> 0.0021s394-- create_table("project_aliases", {:force=>:cascade})395 -> 0.0071s396-- create_table("project_authorizations", {:id=>false, :force=>:cascade})397 -> 0.0054s398-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})399 -> 0.0048s400-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})401 -> 0.0053s402-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})403 -> 0.0071s404-- create_table("project_daily_statistics", {:force=>:cascade})405 -> 0.0045s406-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})407 -> 0.0065s408-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})409 -> 0.0026s410-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})411 -> 0.0080s412-- create_table("project_features", {:id=>:serial, :force=>:cascade})413 -> 0.0055s414-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})415 -> 0.0070s416-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})417 -> 0.0051s418-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})419 -> 0.0034s420-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})421 -> 0.0020s422-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})423 -> 0.0163s424-- create_table("project_repositories", {:force=>:cascade})425 -> 0.0090s426-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})427 -> 0.0158s428-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})429 -> 0.0141s430-- create_table("project_tracing_settings", {:force=>:cascade})431 -> 0.0079s432-- create_table("projects", {:id=>:serial, :force=>:cascade})433 -> 0.0705s434-- create_table("prometheus_alert_events", {:force=>:cascade})435 -> 0.0072s436-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})437 -> 0.0089s438-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})439 -> 0.0118s440-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})441 -> 0.0091s442-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})443 -> 0.0090s444-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})445 -> 0.0090s446-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})447 -> 0.0048s448-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})449 -> 0.0094s450-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})451 -> 0.0072s452-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})453 -> 0.0091s454-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})455 -> 0.0070s456-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})457 -> 0.0040s458-- create_table("push_rules", {:id=>:serial, :force=>:cascade})459 -> 0.0107s460-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})461 -> 0.0073s462-- create_table("release_links", {:force=>:cascade})463 -> 0.0073s464-- create_table("releases", {:id=>:serial, :force=>:cascade})465 -> 0.0074s466-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})467 -> 0.0085s468-- create_table("repository_languages", {:id=>false, :force=>:cascade})469 -> 0.0033s470-- create_table("resource_label_events", {:force=>:cascade})471 -> 0.0132s472-- create_table("reviews", {:force=>:cascade})473 -> 0.0083s474-- create_table("routes", {:id=>:serial, :force=>:cascade})475 -> 0.0092s476-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})477 -> 0.0057s478-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})479 -> 0.0049s480-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})481 -> 0.0052s482-- create_table("services", {:id=>:serial, :force=>:cascade})483 -> 0.0162s484-- create_table("shards", {:id=>:serial, :force=>:cascade})485 -> 0.0047s486-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})487 -> 0.0075s488-- create_table("smartcard_identities", {:force=>:cascade})489 -> 0.0073s490-- create_table("snippets", {:id=>:serial, :force=>:cascade})491 -> 0.0161s492-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})493 -> 0.0067s494-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})495 -> 0.0047s496-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})497 -> 0.0037s498-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})499 -> 0.0074s500-- create_table("suggestions", {:force=>:cascade})501 -> 0.0066s502-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})503 -> 0.0049s504-- create_table("taggings", {:id=>:serial, :force=>:cascade})505 -> 0.0116s506-- create_table("tags", {:id=>:serial, :force=>:cascade})507 -> 0.0075s508-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})509 -> 0.0130s510-- create_table("timelogs", {:id=>:serial, :force=>:cascade})511 -> 0.0088s512-- create_table("todos", {:id=>:serial, :force=>:cascade})513 -> 0.0223s514-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})515 -> 0.0044s516-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})517 -> 0.0073s518-- create_table("uploads", {:id=>:serial, :force=>:cascade})519 -> 0.0117s520-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})521 -> 0.0057s522-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})523 -> 0.0065s524-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})525 -> 0.0073s526-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})527 -> 0.0054s528-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})529 -> 0.0069s530-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})531 -> 0.0053s532-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})533 -> 0.0063s534-- create_table("users", {:id=>:serial, :force=>:cascade})535 -> 0.0631s536-- create_table("users_ops_dashboard_projects", {:force=>:cascade})537 -> 0.0064s538-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})539 -> 0.0066s540-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})541 -> 0.0160s542-- create_table("vulnerability_identifiers", {:force=>:cascade})543 -> 0.0052s544-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})545 -> 0.0066s546-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})547 -> 0.0064s548-- create_table("vulnerability_occurrences", {:force=>:cascade})549 -> 0.0115s550-- create_table("vulnerability_scanners", {:force=>:cascade})551 -> 0.0050s552-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})553 -> 0.0075s554-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})555 -> 0.0127s556-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})557 -> 0.0061s558-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})559 -> 0.0023s560-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})561 -> 0.0017s562-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})563 -> 0.0017s564-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})565 -> 0.0017s566-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})567 -> 0.0014s568-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})569 -> 0.0030s570-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})571 -> 0.0032s572-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})573 -> 0.0027s574-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})575 -> 0.0029s576-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})577 -> 0.0034s578-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})579 -> 0.0019s580-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})581 -> 0.0017s582-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})583 -> 0.0033s584-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})585 -> 0.0016s586-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})587 -> 0.0018s588-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})589 -> 0.0015s590-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})591 -> 0.0015s592-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})593 -> 0.0015s594-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})595 -> 0.0017s596-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})597 -> 0.0021s598-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})599 -> 0.0015s600-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})601 -> 0.0024s602-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})603 -> 0.0015s604-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})605 -> 0.0018s606-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})607 -> 0.0017s608-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})609 -> 0.0017s610-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})611 -> 0.0016s612-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})613 -> 0.0018s614-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})615 -> 0.0017s616-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})617 -> 0.0016s618-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})619 -> 0.0015s620-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})621 -> 0.0015s622-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})623 -> 0.0018s624-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})625 -> 0.0015s626-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})627 -> 0.0013s628-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})629 -> 0.0015s630-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})631 -> 0.0017s632-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})633 -> 0.0018s634-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :on_delete=>:cascade})635 -> 0.0016s636-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})637 -> 0.0017s638-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})639 -> 0.0017s640-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})641 -> 0.0026s642-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})643 -> 0.0017s644-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})645 -> 0.0017s646-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})647 -> 0.0014s648-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})649 -> 0.0014s650-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})651 -> 0.0017s652-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})653 -> 0.0031s654-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})655 -> 0.0017s656-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})657 -> 0.0016s658-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})659 -> 0.0018s660-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})661 -> 0.0021s662-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})663 -> 0.0016s664-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})665 -> 0.0017s666-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})667 -> 0.0015s668-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})669 -> 0.0016s670-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})671 -> 0.0020s672-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})673 -> 0.0019s674-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})675 -> 0.0017s676-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})677 -> 0.0016s678-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})679 -> 0.0013s680-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})681 -> 0.0015s682-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})683 -> 0.0018s684-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})685 -> 0.0017s686-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})687 -> 0.0015s688-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})689 -> 0.0013s690-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})691 -> 0.0014s692-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})693 -> 0.0017s694-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})695 -> 0.0019s696-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})697 -> 0.0017s698-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})699 -> 0.0016s700-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})701 -> 0.0018s702-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})703 -> 0.0017s704-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})705 -> 0.0014s706-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})707 -> 0.0014s708-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})709 -> 0.0016s710-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})711 -> 0.0018s712-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})713 -> 0.0015s714-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})715 -> 0.0017s716-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})717 -> 0.0014s718-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})719 -> 0.0018s720-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})721 -> 0.0017s722-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})723 -> 0.0018s724-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})725 -> 0.0016s726-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})727 -> 0.0015s728-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})729 -> 0.0014s730-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})731 -> 0.0014s732-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})733 -> 0.0017s734-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})735 -> 0.0016s736-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})737 -> 0.0017s738-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})739 -> 0.0014s740-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})741 -> 0.0015s742-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})743 -> 0.0014s744-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})745 -> 0.0014s746-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})747 -> 0.0025s748-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})749 -> 0.0015s750-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})751 -> 0.0015s752-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})753 -> 0.0015s754-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})755 -> 0.0014s756-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})757 -> 0.0017s758-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})759 -> 0.0016s760-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})761 -> 0.0016s762-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})763 -> 0.0018s764-- add_foreign_key("container_repositories", "projects")765 -> 0.0019s766-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :name=>"fk_db58bbc5d7", :on_delete=>:cascade})767 -> 0.0017s768-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :name=>"fk_616ddd680a", :on_delete=>:cascade})769 -> 0.0015s770-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})771 -> 0.0018s772-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})773 -> 0.0020s774-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})775 -> 0.0019s776-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})777 -> 0.0023s778-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})779 -> 0.0018s780-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})781 -> 0.0014s782-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})783 -> 0.0013s784-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})785 -> 0.0015s786-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})787 -> 0.0017s788-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})789 -> 0.0018s790-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})791 -> 0.0017s792-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})793 -> 0.0018s794-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})795 -> 0.0017s796-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})797 -> 0.0018s798-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})799 -> 0.0015s800-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})801 -> 0.0014s802-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})803 -> 0.0013s804-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})805 -> 0.0017s806-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})807 -> 0.0016s808-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})809 -> 0.0017s810-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})811 -> 0.0017s812-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})813 -> 0.0016s814-- add_foreign_key("events", "projects", {:on_delete=>:cascade})815 -> 0.0021s816-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})817 -> 0.0016s818-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})819 -> 0.0015s820-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})821 -> 0.0016s822-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})823 -> 0.0017s824-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})825 -> 0.0016s826-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})827 -> 0.0019s828-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})829 -> 0.0014s830-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})831 -> 0.0019s832-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})833 -> 0.0013s834-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})835 -> 0.0014s836-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})837 -> 0.0013s838-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})839 -> 0.0014s840-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})841 -> 0.0013s842-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})843 -> 0.0015s844-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})845 -> 0.0014s846-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})847 -> 0.0013s848-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})849 -> 0.0014s850-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})851 -> 0.0013s852-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})853 -> 0.0015s854-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})855 -> 0.0019s856-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})857 -> 0.0018s858-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})859 -> 0.0018s860-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})861 -> 0.0015s862-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})863 -> 0.0017s864-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})865 -> 0.0013s866-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})867 -> 0.0018s868-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})869 -> 0.0019s870-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})871 -> 0.0018s872-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})873 -> 0.0017s874-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})875 -> 0.0017s876-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})877 -> 0.0015s878-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})879 -> 0.0024s880-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})881 -> 0.0018s882-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})883 -> 0.0016s884-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})885 -> 0.0013s886-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})887 -> 0.0019s888-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})889 -> 0.0017s890-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})891 -> 0.0016s892-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})893 -> 0.0020s894-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})895 -> 0.0019s896-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})897 -> 0.0017s898-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})899 -> 0.0018s900-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})901 -> 0.0017s902-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})903 -> 0.0017s904-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})905 -> 0.0016s906-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})907 -> 0.0015s908-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})909 -> 0.0016s910-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})911 -> 0.0016s912-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})913 -> 0.0013s914-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})915 -> 0.0016s916-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})917 -> 0.0017s918-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})919 -> 0.0014s920-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})921 -> 0.0016s922-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})923 -> 0.0020s924-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})925 -> 0.0019s926-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})927 -> 0.0019s928-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})929 -> 0.0017s930-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:name=>"fk_f1d617343f", :on_delete=>:cascade})931 -> 0.0015s932-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:name=>"fk_a3c10bcf7d", :on_delete=>:cascade})933 -> 0.0016s934-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})935 -> 0.0016s936-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})937 -> 0.0014s938-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})939 -> 0.0021s940-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})941 -> 0.0019s942-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})943 -> 0.0017s944-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})945 -> 0.0019s946-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})947 -> 0.0025s948-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})949 -> 0.0023s950-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})951 -> 0.0020s952-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})953 -> 0.0018s954-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})955 -> 0.0014s956-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})957 -> 0.0013s958-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})959 -> 0.0019s960-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})961 -> 0.0025s962-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})963 -> 0.0025s964-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})965 -> 0.0020s966-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})967 -> 0.0018s968-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})969 -> 0.0017s970-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})971 -> 0.0014s972-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})973 -> 0.0017s974-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})975 -> 0.0014s976-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})977 -> 0.0015s978-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})979 -> 0.0019s980-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})981 -> 0.0017s982-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})983 -> 0.0018s984-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})985 -> 0.0017s986-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})987 -> 0.0017s988-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})989 -> 0.0024s990-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})991 -> 0.0020s992-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})993 -> 0.0021s994-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})995 -> 0.0021s996-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})997 -> 0.0020s998-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})999 -> 0.0020s1000-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1001 -> 0.0020s1002-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1003 -> 0.0019s1004-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1005 -> 0.0017s1006-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1007 -> 0.0016s1008-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1009 -> 0.0017s1010-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1011 -> 0.0017s1012-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1013 -> 0.0018s1014-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1015 -> 0.0019s1016-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1017 -> 0.0016s1018-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1019 -> 0.0019s1020-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1021 -> 0.0017s1022-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1023 -> 0.0018s1024-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1025 -> 0.0017s1026-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1027 -> 0.0016s1028-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1029 -> 0.0020s1030-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1031 -> 0.0021s1032-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1033 -> 0.0019s1034-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1035 -> 0.0020s1036-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1037 -> 0.0016s1038-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1039 -> 0.0021s1040-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1041 -> 0.0014s1042-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1043 -> 0.0014s1044-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1045 -> 0.0019s1046-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1047 -> 0.0020s1048-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1049 -> 0.0014s1050-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1051 -> 0.0013s1052-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1053 -> 0.0020s1054-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1055 -> 0.0018s1056-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1057 -> 0.0020s1058-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1059 -> 0.0021s1060-- add_foreign_key("path_locks", "users")1061 -> 0.0019s1062-- add_foreign_key("personal_access_tokens", "users")1063 -> 0.0020s1064-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1065 -> 0.0020s1066-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1067 -> 0.0016s1068-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1069 -> 0.0019s1070-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1071 -> 0.0020s1072-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1073 -> 0.0020s1074-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1075 -> 0.0018s1076-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1077 -> 0.0020s1078-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1079 -> 0.0019s1080-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1081 -> 0.0019s1082-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1083 -> 0.0019s1084-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1085 -> 0.0017s1086-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1087 -> 0.0018s1088-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1089 -> 0.0018s1090-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1091 -> 0.0020s1092-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1093 -> 0.0019s1094-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1095 -> 0.0021s1096-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1097 -> 0.0019s1098-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1099 -> 0.0020s1100-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1101 -> 0.0019s1102-- add_foreign_key("project_mirror_data", "projects", {:on_delete=>:cascade})1103 -> 0.0022s1104-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1105 -> 0.0021s1106-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1107 -> 0.0014s1108-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1109 -> 0.0022s1110-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1111 -> 0.0020s1112-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1113 -> 0.0019s1114-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1115 -> 0.0020s1116-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1117 -> 0.0026s1118-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1119 -> 0.0016s1120-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1121 -> 0.0014s1122-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1123 -> 0.0019s1124-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1125 -> 0.0017s1126-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1127 -> 0.0020s1128-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1129 -> 0.0017s1130-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1131 -> 0.0014s1132-- add_foreign_key("protected_branch_merge_access_levels", "users")1133 -> 0.0019s1134-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1135 -> 0.0017s1136-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1137 -> 0.0013s1138-- add_foreign_key("protected_branch_push_access_levels", "users")1139 -> 0.0018s1140-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1141 -> 0.0017s1142-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1143 -> 0.0013s1144-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1145 -> 0.0017s1146-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1147 -> 0.0018s1148-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1149 -> 0.0018s1150-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1151 -> 0.0014s1152-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1153 -> 0.0018s1154-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1155 -> 0.0020s1156-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1157 -> 0.0017s1158-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1159 -> 0.0015s1160-- add_foreign_key("protected_tag_create_access_levels", "users")1161 -> 0.0025s1162-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1163 -> 0.0019s1164-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1165 -> 0.0015s1166-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1167 -> 0.0024s1168-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1169 -> 0.0016s1170-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1171 -> 0.0021s1172-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1173 -> 0.0017s1174-- add_foreign_key("remote_mirrors", "projects", {:on_delete=>:cascade})1175 -> 0.0022s1176-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1177 -> 0.0020s1178-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1179 -> 0.0017s1180-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1181 -> 0.0021s1182-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1183 -> 0.0015s1184-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1185 -> 0.0016s1186-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1187 -> 0.0018s1188-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1189 -> 0.0016s1190-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1191 -> 0.0019s1192-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1193 -> 0.0017s1194-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1195 -> 0.0015s1196-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1197 -> 0.0016s1198-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1199 -> 0.0022s1200-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1201 -> 0.0016s1202-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1203 -> 0.0020s1204-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1205 -> 0.0023s1206-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1207 -> 0.0021s1208-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1209 -> 0.0015s1210-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1211 -> 0.0021s1212-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1213 -> 0.0016s1214-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1215 -> 0.0015s1216-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1217 -> 0.0015s1218-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1219 -> 0.0018s1220-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1221 -> 0.0018s1222-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1223 -> 0.0016s1224-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1225 -> 0.0021s1226-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1227 -> 0.0015s1228-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1229 -> 0.0020s1230-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1231 -> 0.0018s1232-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1233 -> 0.0019s1234-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1235 -> 0.0020s1236-- add_foreign_key("u2f_registrations", "users")1237 -> 0.0020s1238-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1239 -> 0.0019s1240-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1241 -> 0.0018s1242-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1243 -> 0.0020s1244-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1245 -> 0.0018s1246-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1247 -> 0.0019s1248-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1249 -> 0.0018s1250-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1251 -> 0.0018s1252-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1253 -> 0.0018s1254-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1255 -> 0.0023s1256-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1257 -> 0.0021s1258-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1259 -> 0.0019s1260-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1261 -> 0.0021s1262-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1263 -> 0.0018s1264-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1265 -> 0.0016s1266-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1267 -> 0.0017s1268-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1269 -> 0.0022s1270-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1271 -> 0.0019s1272-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1273 -> 0.0018s1274-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1275 -> 0.0021s1276-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1277 -> 0.0014s1278-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1279 -> 0.0015s1280-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1281 -> 0.0015s1282-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1283 -> 0.0012s1284-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1285 -> 0.0022s1286-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1287 -> 0.0013s1288-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1289 -> 0.0014s1290-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1291 -> 0.0020s1292-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1293 -> 0.0017s1294-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1295 -> 0.0022s1296$ date1297Thu Aug 29 20:33:33 UTC 20191298$ JOB_NAME=( $CI_JOB_NAME )1299$ TEST_TOOL=${JOB_NAME[0]}1300$ TEST_LEVEL=${JOB_NAME[1]}1301$ DATABASE=${JOB_NAME[2]}1302$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1303$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec1304$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1305$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1306$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1307$ export FLAKY_RSPEC_GENERATE_REPORT=true1308$ export CACHE_CLASSES=true1309$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1310$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1311$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1312$ scripts/gitaly-test-spawn1313Checking gitaly-ruby bundle...1314Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.1315The Gemfile's dependencies are satisfied1316Trying to connect to gitaly: ...... OK1317$ date1318Thu Aug 29 20:33:34 UTC 20191319$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")1320$ mkdir -p tmp/memory_test1321$ export MEMORY_TEST_PATH="tmp/memory_test/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"1322$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"1323Knapsack report generator started!1324Run options:1325 include {:focus=>true, :level=>"unit"}1326 exclude {:geo=>true}1327==> Setting up GitLab Shell...1328 GitLab Shell set up in 0.076990895 seconds...1329==> Setting up Gitaly...1330 Gitaly set up in 0.000162833 seconds...1331MergeRequest1332 associations1333 should belong to target_project class_name => Project required:1334 should belong to source_project class_name => Project required:1335 should belong to merge_user class_name => User required:1336 should have many assignees through merge_request_assignees1337 should have many merge_request_diffs1338 for forks1339 does not load another project due to inverse relationship1340 finds the associated merge request1341 locking1342 lock_version: 01343 works when a merge request has a NULL lock_version1344 lock_version: "0"1345 works when a merge request has a NULL lock_version1346 #squash_in_progress?1347Preparing worktree (detached HEAD b83d6e3)1348HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1349 returns true when there is a current squash directory1350Preparing worktree (detached HEAD b83d6e3)1351HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1352 returns false when there is no squash directory1353Preparing worktree (detached HEAD b83d6e3)1354HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1355 returns false when the squash directory has expired1356Preparing worktree (detached HEAD b83d6e3)1357HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1358 returns false when the source project has been removed1359 #squash?1360 disabled in database1361 should be falsy1362 enabled in database1363 should be truthy1364 #default_squash_commit_message1365 returns the oldest multiline commit message1366 returns the merge request title if there are no multiline commits1367 does not return commit messages from multiline merge commits1368 modules1369 should includes the Issuable module1370 should includes the Referable module1371 should includes the Sortable module1372 should includes the Taskable module1373 behaves like AtomicInternalId1374 .has_internal_id1375 Module inclusion1376 should includes the AtomicInternalId module1377 Validation1378 when presence validation is required1379 validates presence1380 when presence validation is not required1381 does not validate presence (PENDING: No reason given)1382 Creating an instance1383 saves a new instance properly1384 internal id generation1385 calls InternalId.generate_next and sets internal id attribute1386 does not overwrite an existing internal id1387 when the instance has an internal ID set1388 calls InternalId.update_last_value and sets the `last_value` to that of the instance1389 #reset_scope_internal_id_attribute1390 rewinds the allocated IID1391 allocates the same IID1392 validation1393 should validate that :target_branch cannot be empty/falsy1394 should validate that :source_branch cannot be empty/falsy1395 Validation of merge user with Merge When Pipeline Succeeds1396 allows user to be nil when the feature is disabled1397 is invalid without merge user1398 is valid with merge user1399 for branch1400 branch_name: "foo", valid: true1401 validates source_branch1402 validates target_branch1403 branch_name: "foo:bar", valid: false1404 validates source_branch1405 validates target_branch1406 branch_name: "+foo:bar", valid: false1407 validates source_branch1408 validates target_branch1409 branch_name: "foo bar", valid: false1410 validates source_branch1411 validates target_branch1412 branch_name: "-foo", valid: false1413 validates source_branch1414 validates target_branch1415 branch_name: "HEAD", valid: true1416 validates source_branch1417 validates target_branch1418 branch_name: "refs/heads/master", valid: true1419 validates source_branch1420 validates target_branch1421 for forks1422 allows merge requests for sibling-forks1423 callbacks1424 #ensure_merge_request_metrics1425 creates metrics after saving1426 does not duplicate metrics for a merge request1427 respond to1428 should respond to #unchecked?1429 should respond to #can_be_merged?1430 should respond to #cannot_be_merged?1431 should respond to #merge_params1432 should respond to #merge_when_pipeline_succeeds1433 .by_commit_sha1434 with sha contained in latest merge request diff1435 returns merge requests1436 with sha contained not in latest merge request diff1437 returns empty requests1438 with sha not contained in1439 returns empty result1440 .in_projects1441 returns the merge requests for a set of projects1442 .set_latest_merge_request_diff_ids!1443 sets IDs for merge requests, whether they are already set or not1444 .recent_target_branches1445DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MAX(merge_requests.updated_at) DESC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from recent_target_branches at /builds/gitlab-org/gitlab-ce/app/models/merge_request.rb:217)1446 returns target branches sort by updated at desc1447 #target_branch_sha1448 returns memoized value1449 when the target branch does not exist1450 returns nil1451 #card_attributes1452 includes the author name1453 includes the assignees name1454 #assignee_or_author?1455 returns true for a user that is assigned to a merge request1456 returns true for a user that is the author of a merge request1457 returns false for a user that is not the assignee or author1458 #visible_closing_issues_for1459 shows only allowed issues to guest1460 shows only allowed issues to developer1461 when external issue tracker is enabled1462 calls non #closes_issues to retrieve data1463 #cache_merge_request_closes_issues!1464 caches closed issues1465 does not cache closed issues when merge request is closed1466 does not cache closed issues when merge request is merged1467 when both internal and external issue trackers are enabled1468 does not cache issues from external trackers1469 caches an internal issue1470 when only external issue tracker enabled1471 does not cache issues from external trackers1472 does not cache an internal issue1473 #source_branch_sha1474 returns memoized value1475 with diffs1476 returns the sha of the source branch last commit1477 without diffs1478 returns the sha of the source branch last commit1479 when there is a tag name matching the branch name1480 returns the sha of the source branch last commit1481 when the merge request is being created1482 returns nil1483 #to_reference1484 returns a String reference to the object1485 supports a cross-project reference1486 returns a String reference with the full path1487 #raw_diffs1488 when there are MR diffs1489 delegates to the MR diffs1490 when there are no MR diffs1491 delegates to the compare object1492 #diffs1493 when there are MR diffs1494 delegates to the MR diffs1495 when there are no MR diffs1496 delegates to the compare object, setting expanded: true1497 #preload_discussions_diff_highlight1498 with commit diff note1499 preloads diff highlighting1500 with merge request diff note1501 preloads diff highlighting1502 #diff_size1503 when there are MR diffs1504 returns the correct count1505 returns the correct overflow count1506 does not perform highlighting1507 when there are no MR diffs1508 returns the correct count1509 returns the correct overflow count1510 does not perform highlighting1511 #modified_paths1512 when past_merge_request_diff is specified1513 returns affected file paths from specified past_merge_request_diff1514 when compare is present1515 returns affected file paths from compare1516 when no arguments provided1517 returns affected file paths for merge_request_diff1518 #related_notes1519 includes notes for commits1520 includes notes for commits from target project as well1521 excludes system notes for commits1522 #for_fork?1523 returns true if the merge request is for a fork1524 returns false if is not for a fork1525 #closes_issues1526 accesses the set of issues that will be closed on acceptance1527 only lists issues as to be closed if it targets the default branch1528 #issues_mentioned_but_not_closing1529 detects issues mentioned in description but not closed1530 when the project has an external issue tracker1531 detects issues mentioned in description but not closed1532 #work_in_progress?1533 detects the 'WIP ' prefix1534 detects the 'WIP:' prefix1535 detects the 'WIP: ' prefix1536 detects the '[WIP]' prefix1537 detects the '[WIP] ' prefix1538 detects the ' [WIP] WIP [WIP] WIP: WIP ' prefix1539 doesn't detect WIP for words starting with WIP1540 doesn't detect WIP for words containing with WIP1541 doesn't detect WIP by default1542 #wipless_title1543 removes the 'WIP ' prefix1544 is satisfies the #work_in_progress? method1545 removes the 'WIP:' prefix1546 is satisfies the #work_in_progress? method1547 removes the 'WIP: ' prefix1548 is satisfies the #work_in_progress? method1549 removes the '[WIP]' prefix1550 is satisfies the #work_in_progress? method1551 removes the '[WIP] ' prefix1552 is satisfies the #work_in_progress? method1553 removes the '[WIP] WIP [WIP] WIP: WIP ' prefix1554 is satisfies the #work_in_progress? method1555 #wip_title1556 adds the WIP: prefix to the title1557 does not add the WIP: prefix multiple times1558 is satisfies the #work_in_progress? method1559 #can_remove_source_branch?1560 can't be removed when its a protected branch1561 can't remove a root ref1562 is unable to remove the source branch for a project the user cannot push to1563 can be removed if the last commit is the head of the source branch1564 cannot be removed if the last commit is not also the head of the source branch1565 #default_merge_commit_message1566 includes merge information as the title1567 includes its title in the body1568 includes its closed issues in the body1569 includes its reference in the body1570 excludes multiple linebreak runs when description is blank1571 includes its description in the body1572 does not includes its description in the body1573 #auto_merge_strategy1574 should eq "merge_when_pipeline_succeeds"1575 when auto merge is disabled1576 should be nil1577 #committers1578 returns all the committers of every commit in the merge request1579 returns an empty array if no committer is associated with a user1580 #hook_attrs1581 delegates to Gitlab::HookData::MergeRequestBuilder#build1582 #diverged_commits_count1583 when the target branch does not exist anymore1584 does not crash1585 returns 01586 diverged on same repository1587 counts commits that are on target branch but not on source branch1588 diverged on fork1589 counts commits that are on target branch but not on source branch1590 rebased on fork1591 counts commits that are on target branch but not on source branch1592 caching1593 caches the output1594 invalidates the cache when the source sha changes1595 invalidates the cache when the target sha changes1596 behaves like an editable mentionable1597 creates new cross-reference notes when the mentionable text is edited1598 behaves like a mentionable1599 generates a descriptive back-reference1600 extracts references from its reference property1601 creates cross-reference notes1602 when there are cached markdown fields1603 sends in cached markdown fields when appropriate1604 when there are cached markdown fields1605 refreshes markdown cache if necessary1606 behaves like a Taskable1607 with multiple tasks1608 returns the correct task status1609 #tasks?1610 returns true when object has tasks1611 returns false when object has no tasks1612 with nested tasks1613 returns the correct task status1614 with an incomplete task1615 returns the correct task status1616 with tasks that are not formatted correctly1617 returns the correct task status1618 with a complete task1619 returns the correct task status1620 with tasks in blockquotes1621 returns the correct task status1622 #commit_shas1623 delegates to merge request diff1624 head pipeline1625 #head_pipeline1626 returns nil for MR without head_pipeline_id1627 when the source project does not exist1628 returns nil1629 #actual_head_pipeline1630 returns nil for MR with old pipeline1631 returns the pipeline for MR with recent pipeline1632 returns the pipeline for MR with recent merge request pipeline1633 returns nil when source project does not exist1634 #merge_pipeline1635 returns nil when not merged1636 when the MR is merged1637 returns the post-merge pipeline1638 #has_ci?1639 has ci1640 returns true if MR has head_pipeline_id and commits1641 returns true if MR has any pipeline and commits1642 returns true if MR has CI service and commits1643 has no ci1644 returns false if MR has no CI service nor pipeline, and no commits1645 #all_pipelines1646 with single merge_request_diffs1647 behaves like returning pipelines with proper ordering1648 returns all pipelines1649 with multiple irrelevant merge_request_diffs1650 behaves like returning pipelines with proper ordering1651 returns all pipelines1652 with unsaved merge request1653 returns pipelines from diff_head_sha1654 when pipelines exist for the branch and merge request1655 returns merge request pipeline first1656 when there are a branch pipeline and a merge request pipeline1657 returns merge request pipelines first1658 when there are multiple merge request pipelines from the same branch1659 returns only related merge request pipelines1660 when detached merge request pipeline is run on head ref of the merge request1661 sets the head ref of the merge request to the pipeline ref1662 includes the detached merge request pipeline even though the ref is custom path1663 #update_head_pipeline1664 when there is a pipeline with the diff head sha1665 updates the head pipeline1666 when merge request has already had head pipeline1667 when failed to find an actual head pipeline1668 does not update the current head pipeline1669 when detached merge request pipeline is run on head ref of the merge request1670 sets the head ref of the merge request to the pipeline ref1671 updates correctly even though the target branch name of the merge request is different from the pipeline ref1672 when sha is not HEAD of the source branch1673 does not update head pipeline1674 when there are no pipelines with the diff head sha1675 does not update the head pipeline1676 #has_test_reports?1677 when head pipeline has test reports1678 should be truthy1679 when head pipeline does not have test reports1680 should be falsey1681 #calculate_reactive_cache1682 when given an unknown service class name1683 raises a NameError exception1684 when given a known service class name1685 does not raises a NameError exception1686 #compare_test_reports1687 when head pipeline has test reports1688 when reactive cache worker is parsing asynchronously1689 returns status1690 when reactive cache worker is inline1691 returns status and data1692 when cached results is not latest1693 raises and InvalidateReactiveCache error1694 when head pipeline does not have test reports1695 returns status and error message1696 #all_commit_shas1697 when merge request is persisted1698 with a completely different branch1699 behaves like returning all SHA1700 returns all SHAs from all merge_request_diffs1701 with a branch having no difference1702 behaves like returning all SHA1703 returns all SHAs from all merge_request_diffs1704 when merge request is not persisted1705 when compare commits are set in the service1706 returns commits from compare commits temporary data1707 when compare commits are not set in the service1708 returns array with diff head sha element only1709 #short_merge_commit_sha1710 returns short id when there is a merge_commit_sha1711 returns nil when there is no merge_commit_sha1712 #can_be_reverted?1713 when there is no merge_commit for the MR1714 returns false1715 when the MR has been merged1716 when there is no revert commit1717 returns true1718 when there is no merged_at for the MR1719 returns true1720 when there is a revert commit1721 but merged at timestamp cannot be found1722 returns false1723 when the revert commit is mentioned in a note after the MR was merged1724 returns false1725 when there is no merged_at for the MR1726 returns false1727 when the revert commit is mentioned in a note just before the MR was merged1728 returns false1729 when the revert commit is mentioned in a note long before the MR was merged1730 returns true1731 #merged_at1732 when MR is not merged1733 returns nil1734 when metrics has merged_at data1735 returns metrics merged_at1736 when merged event is persisted, but no metrics merged_at is persisted1737 returns merged event creation date1738 when merging note is persisted, but no metrics or merge event exists1739 returns merging note creation date1740 #participants1741 includes the merge request author1742 includes the authors of the notes1743 cached counts1744 updates when assignees change1745 #merge_async1746 enqueues MergeWorker job and updates merge_jid1747 #rebase_async1748 atomically enqueues a RebaseWorker job and updates rebase_jid1749 refuses to enqueue a job if a rebase is in progress1750 refuses to enqueue a job if the MR is not open1751 #mergeable?1752 returns false if #mergeable_state? is false1753 return true if #mergeable_state? is true and the MR #can_be_merged? is true1754 #mergeable_state?1755 checks if merge request can be merged1756 when not open1757 returns false1758 when working in progress1759 returns false1760 when broken1761 returns false1762 when failed1763 when #mergeable_ci_state? is false1764 returns false1765 when #mergeable_discussions_state? is false1766 returns false1767 returns true when skipping discussions check1768 #mergeable_ci_state?1769 when it is only allowed to merge when build is green1770 and a failed pipeline is associated1771 should be falsey1772 and a successful pipeline is associated1773 should be truthy1774 and a skipped pipeline is associated1775 should be truthy1776 when no pipeline is associated1777 should be falsey1778 when merges are not restricted to green builds1779 and a failed pipeline is associated1780 should be truthy1781 when no pipeline is associated1782 should be truthy1783 #mergeable_discussions_state?1784 when project.only_allow_merge_if_all_discussions_are_resolved == true1785 with all discussions resolved1786 returns true1787 with unresolved discussions1788 returns false1789 with no discussions1790 returns true1791 when project.only_allow_merge_if_all_discussions_are_resolved == false1792 with unresolved discussions1793 returns true1794 #environments_for1795 with multiple environments1796 selects deployed environments1797 with environments on source project1798 selects deployed environments1799 with environments on target project1800 selects deployed environments1801 without a diff_head_commit1802 returns an empty array1803 #environments1804 returns environments1805 when pipeline is not associated with environments1806 returns empty array1807 when pipeline is not a pipeline for merge request1808 returns empty relation1809 #reload_diff1810 calls MergeRequests::ReloadDiffsService#execute with correct params1811 when using the after_update hook to update1812 when the branches are updated1813 uses the new heads to generate the diff1814 #update_diff_discussion_positions1815 updates diff discussion positions1816 when resolve_outdated_diff_discussions is set1817 calls MergeRequests::ResolvedDiscussionNotificationService1818 #branch_merge_base_commit1819 source and target branch exist1820 should eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"1821 should be a kind of Commit1822 when the target branch does not exist1823 returns nil1824 #diff_refs1825 with diffs1826 does not touch the repository1827 returns expected diff_refs1828 when importing1829 returns MR diff_refs1830 #source_project_missing?1831 when the fork exists1832 should be falsey1833 when the source project is the same as the target project1834 should be falsey1835 when the fork does not exist1836 returns true1837 #merge_ongoing?1838 returns true when the merge request is locked1839 returns true when merge_id, MR is not merged and it has no running job1840 returns false when merge_jid is nil1841 returns false if MR is merged1842 returns false if there is no merge job running1843 #closed_without_fork?1844 when the merge request is closed1845 returns false if the fork exist1846 returns true if the fork does not exist1847 when the merge request is open1848 returns false1849 #reopenable?1850 when the merge request is closed1851 returns true1852 forked project1853 returns false if unforked1854 returns false if the source project is deleted1855 returns false if the merge request is merged1856 when the merge request is opened1857 returns false1858 #mergeable_with_quick_action?1859 when autocomplete_precheck is set to true1860 is mergeable by developer1861 is not mergeable by normal user1862 when autocomplete_precheck is set to false1863 is mergeable by developer1864 is not mergeable by normal user1865 closed MR1866 is not mergeable1867 MR with WIP1868 is not mergeable1869 sha differs from the MR diff_head_sha1870 is not mergeable1871 sha is not provided1872 is not mergeable1873 with pipeline ok1874 is mergeable1875 with failing pipeline1876 is not mergeable1877 with running pipeline1878 is mergeable1879 #base_pipeline1880 returns latest pipeline for the target branch1881 #has_commits?1882 returns true when merge request diff has commits1883 when commits_count is nil1884 returns false1885 #has_no_commits?1886 returns true when merge request diff has 0 commits1887 #merge_request_diff_for1888 runs a single query on the initial call, and none afterwards1889 with diff refs1890 returns the diffs1891 with a commit SHA1892 returns the diffs1893 #version_params_for1894 when the diff refs are for an older merge request version1895 returns the diff ID for the version to show1896 when the diff refs are for a comparison between merge request versions1897 returns the diff ID and start sha of the versions to compare1898 when the diff refs are not for a merge request version1899 returns nil1900 #fetch_ref!1901 fetches the ref correctly1902 removing a merge request1903 refreshes the number of open merge requests of the target project1904 behaves like throttled touch1905 #touch1906 updates the updated_at timestamp1907 updates the object at most once per minute1908 state machine transitions1909 #unlock_mr1910 updates merge request head pipeline and sets merge_jid to nil1911 transition to cannot_be_merged1912 opened1913 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1914 notifies conflict, whenever newly unmergeable1915 does not notify whenever merge request is newly unmergeable due to other reasons1916 locked1917 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1918 notifies conflict, whenever newly unmergeable1919 does not notify whenever merge request is newly unmergeable due to other reasons1920 closed1921 does not notify1922 merged1923 does not notify1924 source branch is missing1925 does not raise error1926 check_state?1927 indicates whether MR is still checking for mergeability1928 #should_be_rebased?1929 returns false for the same source and target branches1930 #rebase_in_progress?1931 rebase_jid: "foo", jid_valid: true, result: true1932 should eq true1933 rebase_jid: "foo", jid_valid: false, result: false1934 should eq false1935 rebase_jid: "", jid_valid: true, result: false1936 should eq false1937 rebase_jid: nil, jid_valid: true, result: false1938 should eq false1939 #allow_collaboration1940 is false when pushing by a maintainer is not possible1941 is true when pushing by a maintainer is possible1942 #collaborative_push_possible?1943 does not allow maintainer to push if the source project is the same as the target1944 allows maintainer to push when both source and target are public1945 is not available for protected branches1946 #includes_any_commits?1947 returns false1948 returns false1949 returns true1950 returns true even when there is a non-existent comit1951 unpersisted merge request1952 returns false1953 returns true1954 #can_allow_collaboration?1955 is false if the user does not have push access to the source project1956 is true when the user has push access to the source project1957 #merge_participants1958 contains author1959 when merge_when_pipeline_succeeds? is true1960 when merge user is author1961 contains author only1962 when merge user and author are different users1963 contains author and merge user1964 .merge_request_ref?1965 when ref is ref name of a branch1966 should be falsey1967 when ref is HEAD ref path of a branch1968 should be falsey1969 when ref is HEAD ref path of a merge request1970 should be truthy1971 when ref is merge ref path of a merge request1972 should be truthy1973 #cleanup_refs1974 when removing all refs1975 deletes all refs from the target project1976 when removing only train ref1977 deletes train ref from the target project1978Ci::CreatePipelineService1979 #execute1980 skips creating pipeline for refs without .gitlab-ci.yml1981 valid params1982 creates a pipeline1983 increments the prometheus counter1984 when merge requests already exist for this source branch1985 when related merge request is already merged1986 does not schedule update head pipeline job1987 when the head pipeline sha equals merge request sha1988 updates head pipeline of each merge request1989 when the head pipeline sha does not equal merge request sha1990 does not update the head piepeline of MRs1991 when there is no pipeline for source branch1992 does not update merge request head pipeline1993 when merge request target project is different from source project1994 updates head pipeline for merge request1995 when the pipeline is not the latest for the branch1996 does not update merge request head pipeline1997 when pipeline has errors1998 updates merge request head pipeline reference1999 when pipeline has been skipped2000 updates merge request head pipeline2001 auto-cancel enabled2002 does not cancel HEAD pipeline20032019-08-29T20:38:42.735Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>66}20042019-08-29T20:38:42.997Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>67}20052019-08-29T20:38:43.142Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>68}20062019-08-29T20:38:43.290Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>69}20072019-08-29T20:38:43.430Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>70}2008 auto cancel pending non-HEAD pipelines2009 does not cancel running outdated pipelines20102019-08-29T20:38:47.038Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>86}20112019-08-29T20:38:47.295Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>87}20122019-08-29T20:38:47.429Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>88}20132019-08-29T20:38:47.570Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>89}20142019-08-29T20:38:47.706Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>90}2015 cancel created outdated pipelines2016 does not cancel pipelines from the other branches2017 auto-cancel disabled2018 does not auto cancel pending non-HEAD pipelines2019 skip tag if there is no build for it2020 creates commit if there is appropriate job2021 creates commit if there is no appropriate job but deploy job has right ref setting2022 when yaml is invalid2023 behaves like a failed pipeline2024 creates failed pipeline2025 when receive git commit2026 behaves like a failed pipeline2027 creates failed pipeline2028 when config has ports2029 in the main image2030 behaves like a failed pipeline2031 creates failed pipeline2032 in the job image2033 behaves like a failed pipeline2034 creates failed pipeline2035 in the service2036 behaves like a failed pipeline2037 creates failed pipeline2038 when commit contains a [ci skip] directive2039 skips builds creation if the commit message is some message[ci skip]2040 skips builds creation if the commit message is some message[skip ci]2041 skips builds creation if the commit message is some message[CI SKIP]2042 skips builds creation if the commit message is some message[SKIP CI]2043 skips builds creation if the commit message is some message[ci_skip]2044 skips builds creation if the commit message is some message[skip_ci]2045 skips builds creation if the commit message is some message[ci-skip]2046 skips builds creation if the commit message is some message[skip-ci]2047 when commit message does not contain [ci skip] nor [skip ci]2048 behaves like creating a pipeline2049 does not skip pipeline creation2050 when commit message is nil2051 behaves like creating a pipeline2052 does not skip pipeline creation2053 when there is [ci skip] tag in commit message and yaml is invalid2054 behaves like a failed pipeline2055 creates failed pipeline2056 when push options contain ci.skip2057 creates a pipline in the skipped state2058 when there are no jobs for this pipeline2059 does not create a new pipeline2060 #iid2061 when ci_pipeline_rewind_iid is enabled2062 rewinds iid2063 when ci_pipeline_rewind_iid is disabled2064 does not rewind iid2065 with manual actions2066 does not create a new pipeline2067 with environment2068 creates the environment with tags2069 with environment name including persisted variables2070 skipps persisted variables in environment name2071 when environment with invalid name2072 does not create an environment2073 when builds with auto-retries are configured2074 as an integer2075 correctly creates builds with auto-retry value configured2076 as hash2077 correctly creates builds with auto-retry value configured2078 when ref is a protected branch2079 behaves like when ref is protected2080 when user is developer2081 does not create a pipeline2082 when user is maintainer2083 creates a protected pipeline2084 when trigger belongs to no one2085 does not create a pipeline2086 when trigger belongs to a developer2087 does not create a pipeline2088 when trigger belongs to a maintainer2089 creates a pipeline2090 when ref is a protected tag2091 behaves like when ref is protected2092 when user is developer2093 does not create a pipeline2094 when user is maintainer2095 creates a protected pipeline2096 when trigger belongs to no one2097 does not create a pipeline2098 when trigger belongs to a developer2099 does not create a pipeline2100 when trigger belongs to a maintainer2101 creates a pipeline2102 when ref is not protected2103 when trigger belongs to no one2104 creates an unprotected pipeline2105 when pipeline is running for a tag2106 creates a tagged pipeline2107 when pipeline variables are specified2108 creates a pipeline with specified variables2109 when pipeline has a job with environment2110 when environment name is valid2111 has a job with environment2112 when environment name is invalid2113 has a job without environment2114 Pipelines for merge requests2115 when source is merge request2116 when config has merge_requests keywords2117 when merge request is specified2118 creates a detached merge request pipeline2119 persists the specified source sha2120 does not persist target sha for detached merge request pipeline2121 schedules update for the head pipeline of the merge request2122 when target sha is specified2123 persists the target sha2124 when ref is tag2125 does not create a merge request pipeline2126 when merge request is created from a forked project2127 creates a legacy detached merge request pipeline in the forked project2128 when there are no matched jobs2129 does not create a detached merge request pipeline2130 when merge request is not specified2131 does not create a detached merge request pipeline2132 when config does not have merge_requests keywords2133 when merge request is specified2134 does not create a detached merge request pipeline2135 when merge request is not specified2136 does not create a detached merge request pipeline2137 when config uses regular expression for only keyword2138 when merge request is specified2139 does not create a detached merge request pipeline2140 when config uses variables for only keyword2141 when merge request is specified2142 does not create a detached merge request pipeline2143 when config has 'except: [tags]'2144 when merge request is specified2145 does not create a detached merge request pipeline2146 when source is web2147 when config has merge_requests keywords2148 when merge request is specified2149 does not create a merge request pipeline2150 when merge request is not specified2151 creates a branch pipeline2152 when needs is used2153 when pipeline on master is created2154 creates a pipeline with build_a and test_a2155 when pipeline on feature is created2156 does not create a pipeline as test_a depends on build_a2157 when pipeline on v1.0.0 is created2158 does create a pipeline only with deploy2159 #execute!2160 when user has a permission to create a pipeline2161 does not raise an error2162 creates a pipeline2163 when user does not have a permission to create a pipeline2164 raises an error2165 when a user with permissions has been blocked2166 raises an error2167CycleAnalytics#issue2168 start condition: issue created2169 end condition: issue associated with a milestone2170 finds the median of available durations between the two conditions2171 when the data belongs to another project2172 returns nil2173 when the end condition happens before the start condition2174 returns nil2175 start condition NOT PRESENT: issue created2176 end condition: issue associated with a milestone2177 returns nil2178 start condition: issue created2179 end condition NOT PRESENT: issue associated with a milestone2180 returns nil2181 start condition: issue created2182 end condition: list label added to issue2183 finds the median of available durations between the two conditions2184 when the data belongs to another project2185 returns nil2186 when the end condition happens before the start condition2187 returns nil2188 start condition NOT PRESENT: issue created2189 end condition: list label added to issue2190 returns nil2191 start condition: issue created2192 end condition NOT PRESENT: list label added to issue2193 returns nil2194 start condition: issue created2195 end condition: issue associated with a milestone and list label added to issue2196 finds the median of available durations between the two conditions2197 when the data belongs to another project2198 returns nil2199 when the end condition happens before the start condition2200 returns nil2201 start condition NOT PRESENT: issue created2202 end condition: issue associated with a milestone and list label added to issue2203 returns nil2204 start condition: issue created2205 end condition NOT PRESENT: issue associated with a milestone and list label added to issue2206 returns nil2207 when none of the start / end conditions are matched2208 returns nil2209 when a regular label (instead of a list label) is added to the issue2210 returns nil2211Todos::Destroy::EntityLeaveService2212 #execute2213 when a user leaves a project2214 when project is private2215 removes project todos for the provided user2216 when the user is member of the project2217 does not remove any todos2218 when the user is a project guest2219 removes only confidential issues todos2220 when the user is member of a parent group2221 does not remove any todos2222 when the user is guest of a parent group2223 removes only confidential issues todos2224 when project is not private2225 enqueues the PrivateFeaturesWorker2226 confidential issues2227 when a user is not an author of confidential issue2228 removes only confidential issues todos2229 when a user is an author of confidential issue2230 does not remove any todos2231 when a user is an assignee of confidential issue2232 does not remove any todos2233 when a user is a project guest2234 removes only confidential issues todos2235 when a user is a project guest but group developer2236 does not remove any todos2237 feature visibility check2238 when issues are visible only to project members2239 removes only users issue todos2240 when a user leaves a group2241 when group is private2242 removes group and subproject todos for the user2243 when the user is member of the group2244 does not remove any todos2245 when the user is member of the group project but not the group2246 does not remove any todos2247 with nested groups2248 when the user is not a member of any groups/projects2249 removes todos for the user including subprojects todos2250 when the user is member of a parent group2251 does not remove any todos2252 when the user is member of a subgroup2253 does not remove group and subproject todos2254 when the user is member of a child project2255 does not remove subproject and group todos2256 when group is not private2257 enqueues the PrivateFeaturesWorker2258 when user is not member2259 removes only confidential issues todos2260 when user is a project guest2261 removes only confidential issues todos2262 when user is a project guest & group developer2263 does not remove any todos2264 when entity type is not valid2265 raises an exception2266 when entity was not found2267 does not remove any todos2268Group2269 associations2270 should have many projects2271 should have many group_members dependent => destroy2272 should have many users through group_members2273 should have many owners through group_members2274 should have many requesters dependent => destroy2275 should have many members_and_requesters2276 should have many project_group_links dependent => destroy2277 should have many shared_projects through project_group_links2278 should have many notification_settings dependent => destroy2279 should have many labels class_name => GroupLabel2280 should have many variables class_name => Ci::GroupVariable2281 should have many uploads2282 should have one chat_team2283 should have many custom_attributes class_name => GroupCustomAttribute2284 should have many badges class_name => GroupBadge2285 should have many cluster_groups class_name => Clusters::Group2286 should have many clusters class_name => Clusters::Cluster2287 should have many container_repositories2288 #members & #requesters2289 behaves like members and requesters associations2290 #members_and_requesters2291 includes members and requesters2292 #members2293 includes members and exclude requesters2294 #requesters2295 does not include requesters2296 modules2297 should includes the Referable module2298 validations2299 should validate that :name cannot be empty/falsy2300 should validate that :path cannot be empty/falsy2301 should not validate that :owner cannot be empty/falsy2302 should validate that :two_factor_grace_period cannot be empty/falsy2303 should validate that :two_factor_grace_period looks like a number greater than or equal to 02304 path validation2305 rejects paths reserved on the root namespace when the group has no parent2306 allows root paths when the group has a parent2307 rejects any wildcard paths when not a top level group2308 #notification_settings2309 also gets notification settings from parent groups2310 when sub group is deleted2311 does not delete parent notification settings2312 #notification_email_for2313 when both group notification emails are set2314 returns subgroup notification email2315 when subgroup notification email is blank2316 returns parent group notification email2317 when only the parent group notification email is set2318 returns parent group notification email2319 #visibility_level_allowed_by_parent2320 without a parent2321 is valid2322 with a parent2323 when visibility of sub group is greater than the parent2324 is invalid2325 when visibility of sub group is lower or equal to the parent2326 is valid2327 is valid2328 #visibility_level_allowed_by_projects2329 when group has a lower visibility2330 is invalid2331 when group has a higher visibility2332 is valid2333 #visibility_level_allowed_by_sub_groups2334 when parent group has a lower visibility2335 is invalid2336 when parent group has a higher visibility2337 is valid2338 .public_or_visible_to_user2339 when user is nil2340 should contain exactly #<Group id:954 @group124>2341 when user2342 when user does not have access to any private group2343DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)2344 should contain exactly #<Group id:959 @group129> and #<Group id:957 @group127>2345 when user is a member of private group2346DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)2347 should contain exactly #<Group id:962 @group131>, #<Group id:963 @group132>, and #<Group id:961 @group130>2348 when user is a member of private subgroup2349DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)2350 should contain exactly #<Group id:969 @group134/group136>, #<Group id:967 @group135>, and #<Group id:965 @group133>2351 scopes2352 public_only2353 should eq [#<Group id:970 @group137>]2354 public_and_internal_only2355 should contain exactly #<Group id:973 @group140> and #<Group id:975 @group142>2356 non_public_only2357 should contain exactly #<Group id:977 @group144> and #<Group id:978 @group145>2358 #to_reference2359 returns a String reference to the object2360 #users2361 should eq #<ActiveRecord::Associations::CollectionProxy []>2362 #human_name2363 should eq "group148"2364 #add_user2365 should include #<User id:841 @user854>2366 #add_users2367 updates the group permission2368 #avatar_type2369 is true if avatar is image2370 is false if avatar is html page2371 #avatar_url2372 when avatar file is uploaded2373 shows correct avatar url2374 .search2375 returns groups with a matching name2376 returns groups with a partially matching name2377 returns groups with a matching name regardless of the casing2378 returns groups with a matching path2379 returns groups with a partially matching path2380 returns groups with a matching path regardless of the casing2381 #has_owner?2382 should be truthy2383 should be falsey2384 should be falsey2385 should be falsey2386 should be falsey2387 should be falsey2388 should be falsey2389 #has_maintainer?2390 should be falsey2391 should be truthy2392 should be falsey2393 should be falsey2394 should be falsey2395 should be falsey2396 should be falsey2397 #last_owner?2398 should be truthy2399 with two owners2400 should be falsy2401 with owners from a parent2402 should be falsy2403 #lfs_enabled?2404 LFS enabled globally2405 returns true when nothing is set2406 returns false when set to false2407 returns true when set to true2408 LFS disabled globally2409 returns false when nothing is set2410 returns false when set to false2411 returns false when set to true2412 #owners2413 returns the owners of a Group2414 #web_url2415 returns the canonical URL2416 nested group2417 should include "groups/group188/group187"2418 nested group2419 should be valid2420 should be a kind of Group(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_at: d...nutes_usage_notification_level: integer, subgroup_creation_level: integer, emails_disabled: boolean)2421 #members_with_parents2422 returns parents members2423 #direct_and_indirect_members2424 returns parents members2425 returns descendant members2426 #users_with_descendants2427 returns member users on every nest level without duplication2428 #direct_and_indirect_users2429 returns member users on every nest level without duplication2430 does not return members of projects belonging to ancestor groups2431 #project_users_with_descendants2432 returns members of all projects in group and subgroups2433 #user_ids_for_project_authorizations2434 returns the user IDs for which to refresh authorizations2435 #update_two_factor_requirement2436 group membership2437 is called when require_two_factor_authentication is changed2438 is called when two_factor_grace_period is changed2439 is not called when other attributes are changed2440 calls #update_two_factor_requirement on each group member2441 sub groups and projects2442 enables two_factor_requirement for group member2443 expanded group members2444 enables two_factor_requirement for subgroup member2445 does not enable two_factor_requirement for ancestor group member2446 project members2447 does not enable two_factor_requirement for child project member2448 does not enable two_factor_requirement for subgroup child project member2449 #path_changed_hook2450 for a new group2451 does not trigger system hook2452 for an existing group2453 when the path is changed2454 triggers the rename system hook2455 when the path is not changed2456 does not trigger system hook2457 #ci_variables_for2458 when the ref is not protected2459 contains only the CI variables2460 when the ref is a protected branch2461 behaves like ref is protected2462 contains all the variables2463 when the ref is a protected tag2464 behaves like ref is protected2465 contains all the variables2466 when group has children2467 returns all variables belong to the group and parent groups2468 #highest_group_member2469 when the user is not a member of any group in the hierarchy2470 returns nil2471 when the user is only a member of one group in the hierarchy2472 returns that group member2473 when the user is a member of several groups in the hierarchy2474 returns the group member with the highest access level2475 #has_parent?2476 when the group has a parent2477 is truthy2478 when the group has no parent2479 is falsy2480 with uploads2481 behaves like model with uploads2482 .destroy2483 with mounted uploader2484 deletes remote uploads2485 with not mounted uploads2486 with local files2487 deletes any FileUploader uploads which are not mounted2488 deletes local files2489 with remote files2490 deletes any FileUploader uploads which are not mounted2491 deletes remote files2492 #first_auto_devops_config2493 instance_value: true, group_value: nil, config: {:status=>true, :scope=>:instance}2494 should eq {:scope=>:instance, :status=>true}2495 instance_value: true, group_value: true, config: {:status=>true, :scope=>:group}2496 should eq {:scope=>:group, :status=>true}2497 instance_value: true, group_value: false, config: {:status=>false, :scope=>:group}2498 should eq {:scope=>:group, :status=>false}2499 instance_value: false, group_value: nil, config: {:status=>false, :scope=>:instance}2500 should eq {:scope=>:instance, :status=>false}2501 instance_value: false, group_value: true, config: {:status=>true, :scope=>:group}2502 should eq {:scope=>:group, :status=>true}2503 instance_value: false, group_value: false, config: {:status=>false, :scope=>:group}2504 should eq {:scope=>:group, :status=>false}2505 with parent groups2506 instance_value: true, parent_value: nil, group_value: nil, config: {:status=>true, :scope=>:instance}2507 should eq {:scope=>:instance, :status=>true}2508 instance_value: true, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}2509 should eq {:scope=>:group, :status=>true}2510 instance_value: true, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}2511 should eq {:scope=>:group, :status=>false}2512 instance_value: true, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}2513 should eq {:scope=>:group, :status=>true}2514 instance_value: true, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}2515 should eq {:scope=>:group, :status=>true}2516 instance_value: true, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}2517 should eq {:scope=>:group, :status=>false}2518 instance_value: true, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}2519 should eq {:scope=>:group, :status=>false}2520 instance_value: true, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}2521 should eq {:scope=>:group, :status=>true}2522 instance_value: true, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}2523 should eq {:scope=>:group, :status=>false}2524 instance_value: false, parent_value: nil, group_value: nil, config: {:status=>false, :scope=>:instance}2525 should eq {:scope=>:instance, :status=>false}2526 instance_value: false, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}2527 should eq {:scope=>:group, :status=>true}2528 instance_value: false, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}2529 should eq {:scope=>:group, :status=>false}2530 instance_value: false, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}2531 should eq {:scope=>:group, :status=>true}2532 instance_value: false, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}2533 should eq {:scope=>:group, :status=>true}2534 instance_value: false, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}2535 should eq {:scope=>:group, :status=>false}2536 instance_value: false, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}2537 should eq {:scope=>:group, :status=>false}2538 instance_value: false, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}2539 should eq {:scope=>:group, :status=>true}2540 instance_value: false, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}2541 should eq {:scope=>:group, :status=>false}2542 #auto_devops_enabled?2543 when auto devops is explicitly enabled on group2544 should be truthy2545 when auto devops is explicitly disabled on group2546 should be falsy2547 when auto devops is implicitly enabled or disabled2548 when auto devops is enabled on root group2549 should be truthy2550 when auto devops is disabled on root group2551 should be falsy2552 when auto devops is disabled on parent group and enabled on root group2553 should be falsy2554 project_creation_level2555 outputs the default one if it is nil2556 subgroup_creation_level2557 defaults to maintainers2558MergeRequests::MergeService2559 #execute2560 valid params2561 should be valid2562 should be merged2563 sends email to user2 about merge of new merge_request2564 creates system note about merge_request merge2565 closes related issues2566 closes GitLab issue tracker issues2567 with Jira integration2568 closes issues on Jira issue tracker2569 when jira_issue_transition_id is not present2570 does not close issue2571 wrong issue markdown2572 does not close issues on Jira issue tracker2573 closes related todos2574 should be done2575 source branch removal2576 when the source branch is protected2577 does not delete the source branch2578 when the source branch is the default branch2579 does not delete the source branch2580 when the source branch can be removed2581 when MR author set the source branch to be removed2582 removes the source branch using the author user2583 when the merger set the source branch not to be removed2584 does not delete the source branch2585 when MR merger set the source branch to be removed2586 removes the source branch using the current user2587 error handling2588 logs and saves error if there is an exception2589 logs and saves error if user is not authorized2590 logs and saves error if there is an PreReceiveError exception2591 logs and saves error if there is a merge conflict2592 when source is missing2593 logs and saves error2594 when squashing2595 logs and saves error if there is an error when squashing2596 logs and saves error if there is a squash in progress2597 when fast-forward merge is not allowed2598 logs and saves error if merge is semi-linear only2599 logs and saves error if merge is ff only2600EnvironmentStatusEntity2601 should include :id2602 should include :name2603 should include :url2604 should include :external_url2605 should include :external_url_formatted2606 should include :deployed_at2607 should include :deployed_at_formatted2608 should include :changes2609 should include :status2610 should not include :stop_url2611 should not include :metrics_url2612 should not include :metrics_monitoring_url2613 when the user is project maintainer2614 should include :stop_url2615 when deployment has metrics2616 when deployment succeeded2617 returns metrics url2618 when deployment is running2619 does not return metrics url2620API::Helpers::Pagination2621 #paginate (keyset pagination)2622 when resource can be paginated2623 first page2624 returns appropriate amount of resources2625 returns the first two records (by id desc)2626 adds appropriate headers2627 second page2628 returns appropriate amount of resources2629 returns the third record2630 adds appropriate headers2631 third page2632 returns appropriate amount of resources2633 adds appropriate headers2634 if order2635 is not present2636 is not present it adds default order(:id) desc2637 is present2638 also orders by primary key2639 returns the right records (first page)2640 second page2641 returns the right records (second page)2642 returns the right link to the next page2643 third page2644 returns the right records (third page), note increased per_page2645 #paginate (default offset-based pagination)2646 when resource can be paginated2647 first page2648 when the api_kaminari_count_with_limit feature flag is unset2649 behaves like paginated response2650 returns appropriate amount of resources2651 executes only one SELECT COUNT query2652 behaves like response with pagination headers2653 adds appropriate headers2654 when the api_kaminari_count_with_limit feature flag is disabled2655 behaves like paginated response2656 returns appropriate amount of resources2657 executes only one SELECT COUNT query2658 behaves like response with pagination headers2659 adds appropriate headers2660 when the api_kaminari_count_with_limit feature flag is enabled2661 when resources count is less than MAX_COUNT_LIMIT2662 behaves like paginated response2663 returns appropriate amount of resources2664 executes only one SELECT COUNT query2665 behaves like response with pagination headers2666 adds appropriate headers2667 when resources count is more than MAX_COUNT_LIMIT2668 does not return the X-Total and X-Total-Pages headers2669 behaves like paginated response2670 returns appropriate amount of resources2671 executes only one SELECT COUNT query2672 second page2673 returns appropriate amount of resources2674 adds appropriate headers2675 if order2676 is not present it adds default order(:id) if no order is present2677 is present it does not add anything2678 when resource empty2679 first page2680 returns appropriate amount of resources2681 adds appropriate headers2682ProjectMember2683 associations2684 should belong to project required:2685 validations2686 should allow :source_type to be ‹"Project"›2687 should not allow :source_type to be ‹"project"›2688 should validate that :access_level is either ‹10›, ‹20›, ‹30›, or ‹40›2689 .access_level_roles2690 returns Gitlab::Access.options2691 .add_user2692 adds the user as a member2693 #real_source_type2694 should eq "Project"2695 #destroy2696 creates an expired event when left due to expiry2697 creates a left event when left due to leave2698 .import_team2699 should be truthy2700 project 2 should get user 1 as developer. user_2 should not be changed2701 should include #<User id:1231 @user1244>2702 should include #<User id:1236 @user1249>2703 should be truthy2704 should be truthy2705 project 1 should not be changed2706 should include #<User id:1247 @user1260>2707 should not include #<User id:1252 @user1265>2708 .add_users_to_projects2709 adds the given users to the given projects2710 .truncate_teams2711 should be empty2712 should be empty2713 behaves like members notifications2714 #after_create2715 sends email to user2716 #after_update2717 calls NotificationService.update_project_member2718 does not send an email when the access level has not changed2719 #accept_request2720 calls NotificationService.new_project_member2721 #accept_invite!2722 calls NotificationService.accept_project_invite2723 #decline_invite!2724 calls NotificationService.decline_project_invite2725 access levels2726 with parent group2727 behaves like inherited access level as a member of entity2728 with root parent_entity developer member2729 is allowed to be a maintainer of the entity2730 is not allowed to be a reporter of the entity2731 is allowed to change to be a developer of the entity2732 is not allowed to change to be a guest of the entity2733 shows an error if the member can't be updated2734 allows changing the level from a non existing member2735 with parent group and a subgroup2736 behaves like inherited access level as a member of entity2737 with root parent_entity developer member2738 is allowed to be a maintainer of the entity2739 is not allowed to be a reporter of the entity2740 is allowed to change to be a developer of the entity2741 is not allowed to change to be a guest of the entity2742 shows an error if the member can't be updated2743 allows changing the level from a non existing member2744Gitlab::Ci::Status::Pipeline::Factory2745 when pipeline has a core status2746 when core status is created2747 matches correct core status for created2748 does not match extended statuses2749 fabricates a core status created2750 extends core status with common pipeline methods2751 when core status is preparing2752 matches correct core status for preparing2753 does not match extended statuses2754 fabricates a core status preparing2755 extends core status with common pipeline methods2756 when core status is pending2757 matches correct core status for pending2758 does not match extended statuses2759 fabricates a core status pending2760 extends core status with common pipeline methods2761 when core status is running2762 matches correct core status for running2763 does not match extended statuses2764 fabricates a core status running2765 extends core status with common pipeline methods2766 when core status is success2767 matches correct core status for success2768 does not match extended statuses2769 fabricates a core status success2770 extends core status with common pipeline methods2771 when core status is failed2772 matches correct core status for failed2773 does not match extended statuses2774 fabricates a core status failed2775 extends core status with common pipeline methods2776 when core status is canceled2777 matches correct core status for canceled2778 does not match extended statuses2779 fabricates a core status canceled2780 extends core status with common pipeline methods2781 when core status is skipped2782 matches correct core status for skipped2783 does not match extended statuses2784 fabricates a core status skipped2785 extends core status with common pipeline methods2786 when core status is manual2787 matches manual core status2788 matches a correct extended statuses2789 extends core status with common pipeline methods2790 when core status is scheduled2791 matches scheduled core status2792 matches a correct extended statuses2793 extends core status with common pipeline methods2794 when pipeline has warnings2795 matches correct core status2796 matches correct extended statuses2797 fabricates extended "success with warnings" status2798 extends core status with common pipeline method2799Groups::DestroyService2800 asynchronous delete2801 behaves like group destruction2802 database records2803 should not include #<Group id:1729 @group338>2804 should not include #<Group id:1735 @group340/group341>2805 should not include #<Project id:870 group342/project806>2806 should not include #<NotificationSetting id: 1575, user_id: 1411, source_id: 1744, source_type: "Namespace", level: "glo...s_pipeline: nil, push_to_merge_request: nil, issue_due: nil, notification_email: nil, new_epic: nil>2807 mattermost team2808 destroys the team too2809 file system2810 Sidekiq inline2811 verifies that paths have been deleted2812 Sidekiq fake2813 verifies original paths and projects still exist2814 synchronous delete2815 behaves like group destruction2816 database records2817 should not include #<Group id:1764 @group352>2818 should not include #<Group id:1770 @group354/group355>2819 should not include #<Project id:877 group356/project813>2820 should not include #<NotificationSetting id: 1596, user_id: 1432, source_id: 1779, source_type: "Namespace", level: "glo...s_pipeline: nil, push_to_merge_request: nil, issue_due: nil, notification_email: nil, new_epic: nil>2821 mattermost team2822 destroys the team too2823 file system2824 Sidekiq inline2825 verifies that paths have been deleted2826 projects in pending_delete2827 behaves like group destruction2828 database records2829 should not include #<Group id:1794 @group364>2830 should not include #<Group id:1800 @group366/group367>2831 should not include #<Project id:883 group368/project819>2832 should not include #<NotificationSetting id: 1614, user_id: 1450, source_id: 1809, source_type: "Namespace", level: "glo...s_pipeline: nil, push_to_merge_request: nil, issue_due: nil, notification_email: nil, new_epic: nil>2833 mattermost team2834 destroys the team too2835 file system2836 Sidekiq inline2837 verifies that paths have been deleted2838 repository removal status is taken into account2839 raises exception2840 repository removal2841 legacy storage2842 removes repository2843 hashed storage2844 removes repository2845Gitlab::Asciidoc2846 without project2847 converts the input using Asciidoctor and default options2848 with asciidoc_opts2849 merges the options with default ones2850 XSS2851 does not convert dangerous link with extra attribute into HTML2852 does not convert dangerous link with unsafe scheme into HTML2853 does not convert dangerous image with onerror into HTML2854asciidoctor: WARNING: <stdin>: line 1: unterminated listing block2855 does not convert dangerous fenced code with inline script into HTML2856 with admonition2857 preserves classes2858 with passthrough2859 removes non heading ids2860 removes non footnote def ids2861 removes non footnote ref ids2862 with footnotes2863 preserves ids and links2864 with section anchors2865 preserves ids and links2866 with checklist2867 preserves classes2868 with marks2869 preserves classes2870 with fenced block2871 highlights syntax2872 with listing block2873 highlights syntax2874 with stem block2875 does not apply syntax highlighting2876 external links2877 adds the `rel` attribute to the link2878 LaTex code2879 adds class js-render-math to the output2880 outfilesuffix2881 defaults to adoc2882 with project2883 include directive2884 with path to non-existing file2885 renders Unresolved directive placeholder2886 with path to a binary file2887 does not read the blob2888 renders Unresolved directive placeholder2889 with path to file in external storage2890 does not read the blob2891 renders Unresolved directive placeholder2892 with path to a textual file2893 when requested path is a file in the repo2894 the file is specified by absolute path2895 includes content of the file2896 the file is specified by relative path2897 includes content of the file2898 the file is specified by relative path with leading ./2899 includes content of the file2900 the file is specified by relative path to a file up one directory2901 includes content of the file2902 the file is specified by relative path for a file up multiple directories2903 includes content of the file2904 without a commit (only ref)2905 the file is specified by absolute path2906 includes content of the file2907 the file is specified by relative path2908 includes content of the file2909 the file is specified by relative path with leading ./2910 includes content of the file2911 the file is specified by relative path to a file up one directory2912 includes content of the file2913 the file is specified by relative path for a file up multiple directories2914 includes content of the file2915 when requested path is a directory in the repo2916 the file is specified by absolute path2917 includes content of the file2918 the file is specified by relative path2919 includes content of the file2920 the file is specified by relative path with leading ./2921 includes content of the file2922 the file is specified by relative path to a file up one directory2923 includes content of the file2924 the file is specified by relative path for a file up multiple directories2925 includes content of the file2926 without a commit (only ref)2927 the file is specified by absolute path2928 includes content of the file2929 the file is specified by relative path2930 includes content of the file2931 the file is specified by relative path with leading ./2932 includes content of the file2933 the file is specified by relative path to a file up one directory2934 includes content of the file2935 the file is specified by relative path for a file up multiple directories2936 includes content of the file2937 recursive includes with relative paths2938 includes content of the included files recursively2939Gitlab::CycleAnalytics::IssueStage2940 behaves like base stage2941 has the median data value2942 has the median data stage2943 has the median data description2944 has the title2945 has the events2946 #median2947 counts median from issues with metrics2948 #events2949 exposes issues with metrics2950 when group is given2951 #group_median2952 counts median from issues with metrics2953 #events2954 exposes merge requests that close issues2955 when only part of projects is chosen2956 #group_median2957 counts median from issues with metrics2958 #events2959 exposes merge requests that close issues2960 when subgroup is given2961 #events2962 exposes merge requests that close issues2963 exposes merge requests that close issues with full path for subgroup2964gitlab:uploads:migrate rake tasks2965 for AvatarUploader2966 for Project2967 behaves like enqueue jobs in batch2968 should receive perform_async(*(any args)) 4 times2969 for Group2970 behaves like enqueue jobs in batch2971 should receive perform_async(*(any args)) 4 times2972 for User2973 behaves like enqueue jobs in batch2974 should receive perform_async(*(any args)) 4 times2975 for AttachmentUploader2976 for Note2977 behaves like enqueue jobs in batch2978 should receive perform_async(*(any args)) 4 times2979 for Appearance2980 behaves like enqueue jobs in batch2981 should receive perform_async(*(any args)) 1 time2982 behaves like enqueue jobs in batch2983 should receive perform_async(*(any args)) 1 time2984 for FileUploader2985 behaves like enqueue jobs in batch2986 should receive perform_async(*(any args)) 4 times2987 for PersonalFileUploader2988 behaves like enqueue jobs in batch2989 should receive perform_async(*(any args)) 4 times2990 for NamespaceFileUploader2991 behaves like enqueue jobs in batch2992 should receive perform_async(*(any args)) 4 times2993TodosFinder2994 #execute2995 #execute2996 filtering2997 returns correct todos when filtered by a project2998 returns correct todos when filtered by a group2999 returns correct todos when filtered by a type3000 with subgroups3001 returns todos from subgroups when filtered by a group3002 external authorization3003 behaves like a finder with external authorization service3004 finds the subject3005 with an external authorization service3006 does not include the subject when no project was given3007 includes the subject when a project id was given3008 #sort3009 sorts by priority3010 by date3011 sorts with oldest created first3012 sorts with newest created first3013 #any_for_target?3014 returns true if there are any todos for the given target3015 returns false if there are no todos for the given target3016Projects::Serverless::FunctionsFinder3017 #installed3018 when reactive_caching is still fetching data3019 when reactive_caching has finished3020 when knative is not installed3021 returns false3022 reactive_caching is finished and knative is installed3023 returns true3024 retrieve data from knative3025 does not have knative installed3026 should be empty3027 has knative installed3028 there are no functions3029 there are functions3030 has a function3031 has metrics3032 has prometheus3033 is available3034 has query data3035DeploymentMetrics3036 #has_metrics?3037 when deployment is failed3038 should be falsy3039 when deployment is success3040 without a monitoring service3041 should be falsy3042 with a Prometheus Service3043 should be truthy3044 with a Prometheus Service that cannot query3045 should be falsy3046 with a cluster Prometheus3047 should be truthy3048 #metrics3049 metrics are disabled3050 should eq {}3051 metrics are enabled3052 should eq {:deployment_time=>1567111426, :last_update=>42, :metrics=>{}, :success=>true}3053 #additional_metrics3054 metrics are disabled3055 should eq {}3056 metrics are enabled3057 should eq {:deployment_time=>1567111428, :last_update=>42, :metrics=>{}, :success=>true}3058Gitlab::BackgroundMigration::RemoveRestrictedTodos3059NOTICE: trigger "trigger_50ffff51bd91" for relation "application_settings" does not exist, skipping3060NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3061 when a project is private3062 removes todos of users without project access3063 with a confidential issue3064 removes todos of users without project access and guests for confidential issues3065 when a project is public3066 when all features have the same visibility as the project, no confidential issues3067 does not remove any todos3068 with confidential issues3069 removes confidential issue todos for non authorized users3070 features visibility restrictions3071 when issues are restricted to project members3072 removes non members issue todos3073 when merge requests are restricted to project members3074 removes non members issue todos3075 when repository and merge requests are restricted to project members3076 removes non members commit and merge requests todos3077NOTICE: table "design_management_designs" does not exist, skipping3078NOTICE: table "design_management_designs_versions" does not exist, skipping3079NOTICE: table "design_management_versions" does not exist, skipping3080NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3081NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3082NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3083LabelsHelper3084 #show_label_issuables_link?3085 with a project label3086 when asking for an issue link3087 behaves like a valid response to show_label_issuables_link?3088 when asking for a issues link3089 when issues are enabled for the project3090 should equal true3091 when issues are disabled for the project3092 should equal false3093 when asking for a merge requests link3094 behaves like a valid response to show_label_issuables_link?3095 when asking for a merge_requests link3096 when merge_requests are enabled for the project3097 should equal true3098 when merge_requests are disabled for the project3099 should equal false3100 with a group label3101 when asking for an issue link3102 behaves like a valid response to show_label_issuables_link?3103 when asking for a issues link3104 when issues are enabled for the project3105 should equal true3106 when issues are disabled for the project3107 should equal true3108 when asking for a merge requests link3109 behaves like a valid response to show_label_issuables_link?3110 when asking for a merge_requests link3111 when merge_requests are enabled for the project3112 should equal true3113 when merge_requests are disabled for the project3114 should equal true3115 link_to_label3116 without subject3117 uses the label's project3118 with a project as subject3119 links to project issues page3120 with a group as subject3121 links to group issues page3122 with a type argument3123 set to issue3124 links to correct page3125 set to issue3126 links to correct page3127 set to merge_request3128 links to correct page3129 set to merge_request3130 links to correct page3131 with a tooltip argument3132 set to false3133 does not include the has-tooltip class3134 with block3135 passes the block to link_to3136 without block3137 uses render_colored_label as the link content3138 text_color_for_bg3139 uses light text on dark backgrounds3140 uses dark text on light backgrounds3141 supports RGB triplets3142 create_label_title3143 with a group as subject3144 returns "Create group label"3145 with a project as subject3146 returns "Create project label"3147 with no subject3148 returns "Create new label"3149 manage_labels_title3150 with a group as subject3151 returns "Manage group labels"3152 with a project as subject3153 returns "Manage project labels"3154 with no subject3155 returns "Manage labels"3156 view_labels_title3157 with a group as subject3158 returns "View group labels"3159 with a project as subject3160 returns "View project labels"3161 with no subject3162 returns "View labels"3163 labels_filter_path3164 links to the dashboard labels page3165 links to the group labels page3166 links to the project labels page3167 supports json format3168 presented_labels_sorted_by_title3169 sorts labels alphabetically3170 returns an array of label presenters3171 label_from_hash3172 builds a group label with whitelisted attributes3173 builds a project label with whitelisted attributes3174 #label_status_tooltip3175 with a project label3176 should eq "Subscribe at project level"3177 with a group label3178 should eq "Subscribe at group level"3179BackfillStoreProjectFullPathInRepo3180NOTICE: trigger "trigger_50ffff51bd91" for relation "application_settings" does not exist, skipping3181NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3182 #up3183 project in group3184 behaves like writes the full path to git config3185DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3186 writes the git config3187DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3188 retries in case of failure3189DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3190 cleans up repository before writing the config3191 legacy storage3192DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3193 finds the repository at the correct location3194 hashed storage3195DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3196 finds the repository at the correct location3197 project in subgroup3198 behaves like writes the full path to git config3199DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3200 writes the git config3201DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3202 retries in case of failure3203DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3204 cleans up repository before writing the config3205 legacy storage3206DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3207 finds the repository at the correct location3208 hashed storage3209DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3210 finds the repository at the correct location3211 #down3212 project in group3213DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ce/lib/gitlab/database/migration_helpers.rb:1036)3214 deletes the gitlab full config value3215NOTICE: table "design_management_designs" does not exist, skipping3216NOTICE: table "design_management_designs_versions" does not exist, skipping3217NOTICE: table "design_management_versions" does not exist, skipping3218NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3219NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3220NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3221Label3222 modules3223 should includes the Referable module3224 should includes the Subscribable module3225 associations3226 should have many issues through label_links source => target3227 should have many label_links dependent => destroy3228 should have many lists dependent => destroy3229 should have many priorities class_name => LabelPriority3230 validation3231 should validate that :title is case-sensitively unique within the scope of :group_id and :project_id3232 validates color code3233 validates title3234 #color3235 strips color3236 uses default color if color is missing3237 #text_color3238 uses default color if color is missing3239 #title3240 sanitizes title3241 strips title3242 priorization3243 #prioritize!3244 when label is not prioritized3245 creates a label priority3246 sets label priority3247 when label is prioritized3248 does not create a label priority3249 updates label priority3250 #unprioritize!3251 removes label priority3252 #priority3253 when label is not prioritized3254 returns nil3255 when label is prioritized3256 returns label priority3257 .search3258 returns labels with a partially matching title3259 returns labels with a partially matching description3260 returns nothing3261 .subscribed_by3262 returns subscribed labels3263 returns nothing3264 .optionally_subscribed_by3265 returns subscribed labels3266 returns all labels if user_id is nil3267 #templates3268 with invalid template labels3269 returns only valid template labels3270MergeRequests::PostMergeService3271 #execute3272 refreshes the number of open merge requests for a valid MR3273 updates metrics3274 deletes non-latest diffs3275WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was RuntimeError. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ce/spec/services/merge_requests/post_merge_service_spec.rb:61:in `block (3 levels) in <top (required)>'.3276 marks MR as merged regardless of errors when closing issues3277 clean up environments for the merge request3278 behaves like cache counters invalidator3279 invalidates counter cache for assignees3280PersonalFileUploader3281 #upload_paths3282 builds correct paths for both local and remote storage3283 object_store is LOCAL3284 behaves like builds correct paths3285 #store_dir3286 behaves like matches the method pattern3287 should match /uploads\/-\/system\/personal_snippet\/\d+\/\h+/3288 #cache_dir3289 behaves like matches the method pattern3290 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3291 #work_dir3292 behaves like matches the method pattern3293 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3294 #upload_path3295 behaves like matches the method pattern3296 should match /\h+\/\S+/3297 #relative_path3298 is relative (PENDING: Path not set, skipping.)3299 .absolute_path3300 behaves like matches the method pattern3301 should match /\/builds\/gitlab-org\/gitlab-ce\/tmp\/tests\/public\/uploads\/-\/system\/personal_snippet\/\d+\/\h+\/\S+$/3302 .base_dir3303 behaves like matches the method pattern3304 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3305 behaves like #base_dir3306 is prefixed with uploads/-/system3307 behaves like #to_h3308 is correct3309 object_store is REMOTE3310 behaves like builds correct paths3311 #store_dir3312 behaves like matches the method pattern3313 should match /\d+\/\h+/3314 #cache_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 #work_dir3318 behaves like matches the method pattern3319 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3320 #upload_path3321 behaves like matches the method pattern3322 should match /^personal_snippet\/\d+\/\h+\/<filename>/3323 #relative_path3324 is relative (PENDING: Path not set, skipping.)3325 .absolute_path3326 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 .base_dir3329 behaves like matches the method pattern3330 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3331 behaves like #base_dir3332 is prefixed with uploads/-/system3333 behaves like #to_h3334 is correct3335 #migrate!3336 behaves like migrates3337 returns corresponding file type3338 does nothing when migrating to the current store3339 migrate to the specified store3340 removes the original file after the migration3341 can access to the original file during migration3342 when migrate! is not occupied by another process3343 executes migrate!3344 executes use_file3345 when migrate! is occupied by another process3346 does not execute migrate!3347 does not execute use_file3348 migration is unsuccessful3349 when the store is not supported3350 does not update the object_store3351 does not delete the original file3352 upon a fog failure3353 does not update the object_store3354 does not delete the original file3355 upon a database failure3356 does not update the object_store3357 does not delete the original file3358 behaves like migrates3359 returns corresponding file type3360 does nothing when migrating to the current store3361 migrate to the specified store3362 removes the original file after the migration3363 can access to the original file during migration3364 when migrate! is not occupied by another process3365 executes migrate!3366 executes use_file3367 when migrate! is occupied by another process3368 does not execute migrate!3369 does not execute use_file3370 migration is unsuccessful3371 when the store is not supported3372 does not update the object_store3373 does not delete the original file3374 upon a fog failure3375 does not update the object_store3376 does not delete the original file3377 upon a database failure3378 does not update the object_store3379 does not delete the original file3380Gitlab::Badge::Pipeline::Status3381 #entity3382 always says pipeline3383 #template3384 returns badge template3385 #metadata3386 returns badge metadata3387 pipeline exists3388 pipeline success3389 #status33902019-08-29T20:44:52.450Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>220}3391 is successful3392 pipeline failed3393 #status33942019-08-29T20:44:53.100Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>221}3395 failed3396 when outdated pipeline for given ref exists33972019-08-29T20:44:53.815Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>222}33982019-08-29T20:44:54.372Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>223}3399 does not take outdated pipeline into account3400 when multiple pipelines exist for given sha34012019-08-29T20:44:54.952Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>224}34022019-08-29T20:44:55.306Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>225}3403 does not take outdated pipeline into account3404 build does not exist3405 #status3406 is unknown3407Gitlab::Diff::LinesUnfolder3408 position requires a middle expansion and new match lines3409 blob lines3410 returns the extracted blob lines correctly3411 diff lines3412 return merge of blob lines with diff lines correctly3413 merged lines have correct line codes3414 position requires a middle expansion and no top match line3415 blob lines3416 returns the extracted blob lines correctly3417 diff lines3418 return merge of blob lines with diff lines correctly3419 merged lines have correct line codes3420 position requires a middle expansion and no bottom match line3421 blob lines3422 returns the extracted blob lines correctly3423 diff lines3424 return merge of blob lines with diff lines correctly3425 merged lines have correct line codes3426 position requires a short top expansion3427 blob lines3428 returns the extracted blob lines correctly3429 diff lines3430 return merge of blob lines with diff lines correctly3431 merged lines have correct line codes3432 position sits between two match lines (no expasion needed)3433 diff lines3434 returns nil3435 position requires bottom expansion and new match lines3436 blob lines3437 returns the extracted blob lines correctly3438 diff lines3439 return merge of blob lines with diff lines correctly3440 merged lines have correct line codes3441 position requires bottom expansion and no new match line3442 blob lines3443 returns the extracted blob lines correctly3444 diff lines3445 return merge of blob lines with diff lines correctly3446 merged lines have correct line codes3447 positioned on an image3448 diff file is not text3449 returns nil3450 diff file is text3451 returns nil3452Gitlab::Chat::Responder::Slack3453 #send_response3454 sends a response back to Slack3455 #success3456 returns the output for a successful build3457 limits the output to a fixed size3458 does not send a response if the output is empty3459 #failure3460 returns the output for a failed build3461 #scheduled_output3462 returns the output for a scheduled build3463QuickActions::TargetService3464 #execute3465 for issue3466 behaves like find target3467 returns the target3468 behaves like build target3469 builds a new target3470 behaves like build target3471 builds a new target3472 for merge request3473 behaves like find target3474 returns the target3475 behaves like build target3476 builds a new target3477 behaves like build target3478 builds a new target3479 for commit3480 behaves like find target3481 returns the target3482 behaves like no target3483 returns nil3484 with nil target_id3485 behaves like find target3486 returns the target3487 for unknown type3488 behaves like no target3489 returns nil3490Issues::DuplicateService3491 #execute3492 when the issues passed are the same3493 does nothing3494 when the user cannot update the duplicate issue3495 does nothing3496 when the user cannot comment on the canonical issue3497 does nothing3498 when the user can mark the issue as a duplicate3499 closes the duplicate issue3500 adds a system note to the duplicate issue3501 adds a system note to the canonical issue3502Notes::BuildService3503 #execute3504 builds a note without saving it3505 when in_reply_to_discussion_id is specified3506 when a note with that original discussion ID exists3507 sets the note up to be in reply to that note3508 when discussion is resolved3509 resolves the note3510 when a note with that discussion ID exists3511 sets the note up to be in reply to that note3512 when no note with that discussion ID exists3513 sets an error3514 when user has no access to discussion3515 sets an error3516 personal snippet note3517 when a snippet is public3518 creates a reply note3519 when a snippet is private3520 creates a reply note when the author replies3521 sets an error when another user replies3522 when a snippet is internal3523 creates a reply note when the author replies3524 creates a reply note when a regular user replies3525 sets an error when an external user replies3526 when replying to individual note3527 sets the note up to be in reply to that note3528 when noteable does not support replies3529 builds another individual note3530Blob3531 .decorate3532 returns NilClass when given nil3533 .lazy3534 does not fetch blobs when none are accessed3535 fetches all blobs for the same repository when one is accessed3536 does not include blobs from previous requests in later requests3537 #data3538 using a binary blob3539 returns the data as-is3540 using a text blob3541 converts the data to UTF-83542 #external_storage_error?3543 if the blob is stored in LFS3544 when the project has LFS enabled3545 returns false3546 when the project does not have LFS enabled3547 returns true3548 if the blob is not stored in LFS3549 returns false3550 #stored_externally?3551 if the blob is stored in LFS3552 when the project has LFS enabled3553 returns true3554 when the project does not have LFS enabled3555 returns false3556 if the blob is not stored in LFS3557 returns false3558 #binary?3559 if the blob is stored externally3560 if the extension has a rich viewer3561 if the viewer is binary3562 returns true3563 if the viewer is text-based3564 return false3565 if the extension doesn't have a rich viewer3566 if the extension has a text mime type3567 if the extension is for a programming language3568 returns false3569 if the extension is not for a programming language3570 returns false3571 if the extension has a binary mime type3572 if the extension is for a programming language3573 returns false3574 if the extension is not for a programming language3575 returns true3576 if the extension has an unknown mime type3577 if the extension is for a programming language3578 returns false3579 if the extension is not for a programming language3580 returns true3581 if the blob is not stored externally3582 if the blob is binary3583 returns true3584 if the blob is text-based3585 return false3586 #extension3587 returns the extension3588 #file_type3589 returns the file type3590 #simple_viewer3591 when the blob is empty3592 returns an empty viewer3593 when the file represented by the blob is binary3594 returns a download viewer3595 when the file represented by the blob is text-based3596 returns a text viewer3597 #rich_viewer3598 when the blob has an external storage error3599 returns nil3600 when the blob is empty3601 returns nil3602 when the blob is stored externally3603 returns a matching viewer3604 when the blob is binary3605 returns a matching binary viewer3606 when the blob is text-based3607 returns a matching text-based viewer3608 #auxiliary_viewer3609 when the blob has an external storage error3610 returns nil3611 when the blob is empty3612 returns nil3613 when the blob is stored externally3614 returns a matching viewer3615 when the blob is binary3616 returns nil3617 when the blob is text-based3618 returns a matching text-based viewer3619 #rendered_as_text?3620 when ignoring errors3621 when the simple viewer is text-based3622 returns true3623 when the simple viewer is binary3624 returns false3625 when not ignoring errors3626 when the viewer has render errors3627 returns false3628 when the viewer doesn't have render errors3629 returns true3630Gitlab::Ci::Status::Build::Stop3631 #label3632 should eq "manual stop action"3633 action details3634 #has_action?3635 when user is allowed to update build3636 should have action3637 when user is not allowed to update build3638 should not have action3639 #action_path3640 should include "234/play"3641 #action_icon3642 should eq "stop"3643 #action_title3644 should eq "Stop"3645 #action_button_title3646 should eq "Stop this environment"3647 .matches?3648 when build is playable3649 when build stops an environment3650 is a correct match3651 when build does not stop an environment3652 does not match3653 when build is not playable3654 does not match3655 #status_tooltip3656 does not override status status_tooltip3657 #badge_tooltip3658 does not override status badge_tooltip3659Gitlab::Plugin3660 .execute3661 successful execution3662 should equal true3663 should be empty3664 ensures plugin received data via stdin3665 non-executable3666 should equal false3667 should include "Permission denied"3668 non-zero exit3669 should equal false3670 should be empty3671Gitlab::UrlBuilder3672 .build3673 when passing a Commit3674 returns a proper URL3675 when passing an Issue3676 returns a proper URL3677 when passing a Milestone3678 belonging to a project3679 returns a proper URL3680 belonging to a group3681 returns a proper URL3682 when passing a MergeRequest3683 returns a proper URL3684 when passing a Note3685 on a Commit3686 returns a proper URL3687 on a Commit Diff3688 returns a proper URL3689 on an Issue3690 returns a proper URL3691 on a MergeRequest3692 returns a proper URL3693 on a MergeRequest Diff3694 returns a proper URL3695 on a ProjectSnippet3696 returns a proper URL3697 on a PersonalSnippet3698 returns a proper URL3699 on another object3700 returns a proper URL3701 when passing a WikiPage3702 returns a proper URL3703ProjectLabel3704 relationships3705 should belong to project required:3706 validations3707 should validate that :project cannot be empty/falsy3708 validates if title must not exist at group level3709 returns error if title already exists at group level3710 does not returns error if title does not exist at group level3711 does not returns error if project does not belong to group3712 does not returns error when title does not change3713 when attempting to add more than one priority to the project label3714 returns error3715 #subject3716 aliases project to subject3717 #to_reference3718 using id3719 returns a String reference to the object3720 using name3721 returns a String reference to the object3722 uses id when name contains double quote3723 using invalid format3724 raises error3725 cross project reference3726 using name3727 returns cross reference with label name3728 using id3729 returns cross reference with label id3730Banzai::Pipeline::FullPipeline3731 References3732 handles markdown inside a reference3733 sanitizes reference HTML3734 escapes the data-original attribute on a reference3735 footnotes3736 properly adds the necessary ids and classes3737 links are detected as malicious3738 has tooltips for malicious links3739 has no tooltips for safe links3740Gitlab::Checks::LfsCheck3741 #validate!3742 with LFS not enabled3743 skips integrity check3744 with LFS enabled3745 fails if any LFS blobs are missing3746 succeeds if LFS objects have already been uploaded3747 with lfs_check feature disabled3748 skips integrity check3749 deletion3750 skips integrity check3751Gitlab::Sanitizers::Exif3752 #batch_clean3753 filters only jpg/tiff images3754 with image uploads3755 processes all uploads if range ID is not set3756 processes only uploads in the selected range3757 pauses if sleep_time is set3758 #clean3759 no dry run3760 removes exif from the image3761 ignores image without exif3762 raises an error if the exiftool fails with an error3763 dry run3764 doesn't change the image3765 #extra_tags3766 returns a list of keys for exif file3767 returns an empty list for file with only whitelisted and ignored tags3768notify/pipeline_success_email.html.haml3769 pipeline with user3770 renders the email correctly3771 pipeline without user3772 renders the email correctly3773PagesDomain3774 associations3775 should belong to project required:3776 validate domain3777 is unique3778 should validate that :domain is case-insensitively unique3779 hostname3780 domain "my.domain.com" validity3781 should eq true3782 domain "123.456.789" validity3783 should eq true3784 domain "0x12345.com" validity3785 should eq true3786 domain "0123123" validity3787 should eq true3788 domain "_foo.com" validity3789 should eq false3790 domain "reserved.com" validity3791 should eq false3792 domain "a.reserved.com" validity3793 should eq false3794 domain nil validity3795 should eq false3796 HTTPS-only3797 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: [:certificate, :key]3798 is adds the expected errors3799 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3800 is adds the expected errors3801 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, auto_ssl_enabled: false, errors_on: [:key]3802 is adds the expected errors3803 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, auto_ssl_enabled: true, errors_on: [:key]3804 is adds the expected errors3805 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: false, errors_on: [:certificate, :key]3806 is adds the expected errors3807 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: true, errors_on: [:key]3808 is adds the expected errors3809 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: false, errors_on: []3810 is adds the expected errors3811 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: true, errors_on: []3812 is adds the expected errors3813 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: []3814 is adds the expected errors3815 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3816 is adds the expected errors3817 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, auto_ssl_enabled: false, errors_on: [:key]3818 is adds the expected errors3819 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, auto_ssl_enabled: true, errors_on: [:key]3820 is adds the expected errors3821 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: false, errors_on: [:key]3822 is adds the expected errors3823 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: true, errors_on: [:key]3824 is adds the expected errors3825 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: false, errors_on: []3826 is adds the expected errors3827 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", auto_ssl_enabled: true, errors_on: []3828 is adds the expected errors3829 when certificate is specified3830 saves validity time3831 validate certificate3832 with matching key3833 should be valid3834 when no certificate is specified3835 should not be valid3836 when no key is specified3837 should not be valid3838 for not matching key3839 should not be valid3840 when certificate is expired3841 when certificate is being changed3842 adds error to certificate3843 when certificate is already saved3844 doesn't add error to certificate3845 validations3846 should validate that :verification_code cannot be empty/falsy3847 #verification_code3848 is set automatically with 128 bits of SecureRandom data3849 #keyed_verification_code3850 should eq "gitlab-pages-verification-code=38ec83b311ce04e296631bb0ef4c436a"3851 #verification_domain3852 should be nil3853 is a well-known subdomain if the domain is present3854 #url3855 should eq "https://my25.domain.com"3856 without the certificate3857 should eq "http://my26.domain.com"3858 #has_matching_key?3859 should be truthy3860 for invalid key3861 should be falsey3862 #has_intermediates?3863 for self signed3864 should be truthy3865 for missing certificate chain3866 should be falsey3867 for trusted certificate chain3868 should be truthy3869 #expired?3870 for valid3871 should be falsey3872 for expired3873 should be truthy3874 #subject3875 should eq "/CN=test-certificate"3876 #certificate_text3877 should not be empty3878 #https?3879 when a certificate is present3880 should be https3881 when no certificate is present3882 should not be https3883 #update_daemon3884 runs when the domain is created3885 runs when the domain is destroyed3886 delegates to Projects::UpdatePagesConfigurationService3887 configuration updates when attributes change3888 attribute: :project, old_value: nil, new_value: :project1, update_expected: true3889 runs if a relevant attribute has changed3890 attribute: :project, old_value: :project1, new_value: :project1, update_expected: false3891 runs if a relevant attribute has changed3892 attribute: :project, old_value: :project1, new_value: :project2, update_expected: true3893 runs if a relevant attribute has changed3894 attribute: :project, old_value: :project1, new_value: nil, update_expected: true3895 runs if a relevant attribute has changed3896 attribute: :domain, old_value: "a.com", new_value: "a.com", update_expected: false3897 runs if a relevant attribute has changed3898 attribute: :domain, old_value: "a.com", new_value: "b.com", update_expected: true3899 runs if a relevant attribute has changed3900 attribute: :verification_code, old_value: "foo", new_value: "foo", update_expected: false3901 runs if a relevant attribute has changed3902 attribute: :verification_code, old_value: "foo", new_value: "bar", update_expected: false3903 runs if a relevant attribute has changed3904 attribute: :verified_at, old_value: nil, new_value: 2019-08-29 20:34:07 +0000, update_expected: false3905 runs if a relevant attribute has changed3906 attribute: :verified_at, old_value: 2019-08-29 20:34:07 +0000, new_value: 2019-08-29 20:34:07 +0000, update_expected: false3907 runs if a relevant attribute has changed3908 attribute: :verified_at, old_value: 2019-08-29 20:34:07 +0000, new_value: 2019-08-30 20:34:07 +0000, update_expected: false3909 runs if a relevant attribute has changed3910 attribute: :verified_at, old_value: 2019-08-29 20:34:07 +0000, new_value: nil, update_expected: false3911 runs if a relevant attribute has changed3912 attribute: :enabled_until, old_value: nil, new_value: 2019-08-29 20:34:07 +0000, update_expected: true3913 runs if a relevant attribute has changed3914 attribute: :enabled_until, old_value: 2019-08-29 20:34:07 +0000, new_value: 2019-08-29 20:34:07 +0000, update_expected: false3915 runs if a relevant attribute has changed3916 attribute: :enabled_until, old_value: 2019-08-29 20:34:07 +0000, new_value: 2019-08-30 20:34:07 +0000, update_expected: false3917 runs if a relevant attribute has changed3918 attribute: :enabled_until, old_value: 2019-08-29 20:34:07 +0000, new_value: nil, update_expected: true3919 runs if a relevant attribute has changed3920 TLS configuration3921 updates when added3922 updates when changed3923 updates when removed3924 #user_provided_key3925 when certificate is provided by user3926 returns key3927 when certificate is provided by gitlab3928 returns nil3929 #user_provided_certificate3930 when certificate is provided by user3931 returns key3932 when certificate is provided by gitlab3933 returns nil3934 #user_provided_key=3935 when value has been changed3936 assignes new value to key3937 changes certificate source3938 when value has not been not changed3939 does not change certificate source3940 #gitlab_provided_key=3941 when value has been changed3942 assignes new value to key3943 changes certificate source3944 when value has not been not changed3945 does not change certificate source3946 #user_provided_certificate=3947 when value has been changed3948 assignes new value to certificate3949 changes certificate source3950 when value has not been not changed3951 does not change certificate source3952 #gitlab_provided_certificate=3953 when value has been changed3954 assignes new value to certificate3955 changes certificate source3956 when value has not been not changed3957 does not change certificate source3958 .for_removal3959 when domain is not schedule for removal3960 does not return domain3961 when domain is scheduled for removal yesterday3962 returns domain3963 when domain is scheduled for removal tomorrow3964 does not return domain3965 .need_auto_ssl_renewal3966 contains only domains needing verification3967TagsFinder3968 #execute3969 sort only3970 sorts by name3971 sorts by recently_updated3972 sorts by last_updated3973 filter only3974 filters tags by name3975 does not find any tags with that name3976 filter and sort3977 filters tags by name and sorts by recently_updated3978 filters tags by name and sorts by last_updated3979Projects::GitlabProjectsImportService3980 #execute3981 behaves like gitlab projects import validations3982 with an invalid path3983 returns an invalid project3984 with a valid path3985 creates a project3986 override params3987 stores them as import data when passed3988 when there is a project with the same path3989 does not create the project3990 when overwrite param is set3991 creates a project in a temporary full_path3992Boards::Lists::GenerateService3993 #execute3994 when board lists is empty3995 creates the default lists3996 when board lists is not empty3997 does not creates the default lists3998 when project labels does not contains any list label3999 creates labels4000 when project labels contains some of list label4001 creates the missing labels4002Boards::Issues::CreateService4003 #execute4004 delegates the create proceedings to Issues::CreateService4005 creates a new issue4006 adds the label of the list to the issue4007gitlab:artifacts rake tasks4008 check4009 outputs the integrity check for each batch4010 errors out about missing files on the file system4011 errors out about invalid checksum4012 errors out about missing checksum4013Groups::CreateService#execute4014 visibility level restrictions4015 create groups without restricted visibility level4016 should be persisted4017 cannot create group with restricted visibility level4018 should not be persisted4019 creating a top level group4020 when user can create a group4021 should be persisted4022 when user can not create a group4023 should not be persisted4024 creating subgroup4025 as group owner4026 should be persisted4027 as guest4028 does not save group and returns an error4029 as owner4030 should be persisted4031 as maintainer4032 should be persisted4033 when visibility level is passed as a string4034 assigns the correct visibility level4035 creating a mattermost team4036 create the chat team with the group4037Gitlab::Kubernetes::KubeClient4038 #initialize4039 localhost address4040 behaves like local address4041 blocks local addresses4042 when local requests are allowed4043 allows local addresses4044 private network address4045 behaves like local address4046 blocks local addresses4047 when local requests are allowed4048 allows local addresses4049 #core_client4050 has the core API endpoint4051 has the api_version4052 behaves like a Kubeclient4053 is a Kubeclient::Client4054 has the kubeclient options4055 #rbac_client4056 has the RBAC API group endpoint4057 has the api_version4058 behaves like a Kubeclient4059 is a Kubeclient::Client4060 has the kubeclient options4061 #extensions_client4062 has the extensions API group endpoint4063 has the api_version4064 behaves like a Kubeclient4065 is a Kubeclient::Client4066 has the kubeclient options4067 #knative_client4068 has the extensions API group endpoint4069 has the api_version4070 behaves like a Kubeclient4071 is a Kubeclient::Client4072 has the kubeclient options4073 core API4074 #get_pods4075 does not follow redirects4076 delegates to the core client4077 responds to the method4078 #get_secrets4079 does not follow redirects4080 delegates to the core client4081 responds to the method4082 #get_config_map4083 does not follow redirects4084 delegates to the core client4085 responds to the method4086 #get_pod4087 does not follow redirects4088 delegates to the core client4089 responds to the method4090 #get_namespace4091 does not follow redirects4092 delegates to the core client4093 responds to the method4094 #get_secret4095 does not follow redirects4096 delegates to the core client4097 responds to the method4098 #get_service4099 does not follow redirects4100 delegates to the core client4101 responds to the method4102 #get_service_account4103 does not follow redirects4104 delegates to the core client4105 responds to the method4106 #delete_pod4107 does not follow redirects4108 delegates to the core client4109 responds to the method4110 #create_config_map4111 does not follow redirects4112 delegates to the core client4113 responds to the method4114 #create_namespace4115 does not follow redirects4116 delegates to the core client4117 responds to the method4118 #create_pod4119 does not follow redirects4120 delegates to the core client4121 responds to the method4122 #create_secret4123 does not follow redirects4124 delegates to the core client4125 responds to the method4126 #create_service_account4127 does not follow redirects4128 delegates to the core client4129 responds to the method4130 #update_config_map4131 does not follow redirects4132 delegates to the core client4133 responds to the method4134 #update_secret4135 does not follow redirects4136 delegates to the core client4137 responds to the method4138 #update_service_account4139 does not follow redirects4140 delegates to the core client4141 responds to the method4142 rbac API group4143 #create_role4144 does not follow redirects4145 delegates to the rbac client4146 responds to the method4147 #get_role4148 does not follow redirects4149 delegates to the rbac client4150 responds to the method4151 #update_role4152 does not follow redirects4153 delegates to the rbac client4154 responds to the method4155 #create_cluster_role_binding4156 does not follow redirects4157 delegates to the rbac client4158 responds to the method4159 #get_cluster_role_binding4160 does not follow redirects4161 delegates to the rbac client4162 responds to the method4163 #update_cluster_role_binding4164 does not follow redirects4165 delegates to the rbac client4166 responds to the method4167 extensions API group4168 #get_deployments4169 does not follow redirects4170 delegates to the extensions client4171 responds to the method4172 non-entity methods4173 does not proxy for non-entity methods4174 throws an error4175 #get_pod_log4176 is delegated to the core client4177 #watch_pod_log4178 is delegated to the core client4179 #create_or_update_cluster_role_binding4180 behaves like create_or_update method4181 resource exists4182 calls the update method4183 resource does not exist4184 calls the create method4185 #create_or_update_role_binding4186 behaves like create_or_update method4187 resource exists4188 calls the update method4189 resource does not exist4190 calls the create method4191 #create_or_update_service_account4192 behaves like create_or_update method4193 resource exists4194 calls the update method4195 resource does not exist4196 calls the create method4197 #create_or_update_secret4198 behaves like create_or_update method4199 resource exists4200 calls the update method4201 resource does not exist4202 calls the create method4203 methods that do not exist on any client4204 throws an error4205 returns false for respond_to4206Boards::Lists::ListService4207 #execute4208 when board parent is a project4209 behaves like lists list service4210 when the board has a backlog list4211 does not create a backlog list4212 returns board's lists4213 when the board does not have a backlog list4214 creates a backlog list4215 returns board's lists4216 when board parent is a group4217 behaves like lists list service4218 when the board has a backlog list4219 does not create a backlog list4220 returns board's lists4221 when the board does not have a backlog list4222 creates a backlog list4223 returns board's lists4224projects/diffs/_viewer.html.haml4225 when there is a render error4226 renders the error4227 when the viewer is collapsed4228 renders the collapsed view4229 when there is no render error4230 prepares the viewer4231 renders the viewer4232Gitlab::Ci::Status::Build::FailedUnmetPrerequisites4233 #illustration4234 should include :image, :size, :title, and :content4235 .matches?4236 when build has not failed4237 should be falsey4238 when build has failed4239 with unmet prerequisites42402019-08-29T20:45:56.801Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>247}4241 should be truthy4242 with a different error42432019-08-29T20:45:57.255Z 239 TID-gn5vtck1v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>248}4244 should be falsey4245Gitlab::Git::AttributesAtRefParser4246 loads .gitattributes blob4247 handles missing blobs4248 #attributes4249 returns the attributes as a Hash4250Gitlab::UrlBlocker4251 #validate!4252 when URI is nil4253 returns no URI and hostname4254 when URI is internal4255 returns URI and no hostname4256 when the URL hostname is a domain4257 returns URI and hostname4258 when the URL hostname is an IP address4259 returns URI and no hostname4260 disabled DNS rebinding protection4261 when URI is internal4262 returns URI and no hostname4263 when the URL hostname is a domain4264 returns URI and no hostname4265 when it cannot be resolved4266 raises error4267 when the URL hostname is an IP address4268 returns URI and no hostname4269 when it is invalid4270 raises an error4271 #blocked_url?4272 allows imports from configured web host and port4273 allows mirroring from configured SSH host and port4274 returns true for bad localhost hostname4275 returns true for bad port4276 returns true for bad scheme4277 returns true for bad protocol on configured web/SSH host and ports4278 returns true for localhost IPs4279 returns true for loopback IP4280 returns true for alternative version of 127.0.0.1 (0177.1)4281 returns true for alternative version of 127.0.0.1 (017700000001)4282 returns true for alternative version of 127.0.0.1 (0x7f.1)4283 returns true for alternative version of 127.0.0.1 (0x7f.0.0.1)4284 returns true for alternative version of 127.0.0.1 (0x7f000001)4285 returns true for alternative version of 127.0.0.1 (2130706433)4286 returns true for alternative version of 127.0.0.1 (127.000.000.001)4287 returns true for alternative version of 127.0.0.1 (127.0.1)4288 returns true for a non-alphanumeric hostname4289 returns true for invalid URL4290 returns false for legitimate URL4291 blocks urls with invalid ip address4292 blocks urls whose hostname cannot be resolved4293 with ipv6 mapped address4294 returns true for localhost IPs4295 returns true for loopback IPs4296 when allow_local_network is4297 true (default)4298 behaves like allows local requests4299 does not block urls from private networks4300 allows localhost endpoints4301 allows loopback endpoints4302 allows IPv4 link-local endpoints4303 allows IPv6 link-local endpoints4304 false4305 blocks urls from private networks4306 blocks IPv4 link-local endpoints4307 blocks IPv6 link-local endpoints4308 when local domain/IP is whitelisted4309 with IPs in whitelist4310 whitelists IP when dns_rebind_protection is disabled4311 behaves like allows local requests4312 does not block urls from private networks4313 allows localhost endpoints4314 allows loopback endpoints4315 allows IPv4 link-local endpoints4316 allows IPv6 link-local endpoints4317 with domains in whitelist4318 allows domains present in whitelist4319 works with unicode and idna encoded domains4320 with ip ranges in whitelist4321 blocks ipv4 range when not in whitelist4322 allows all ipv4s in the range when in whitelist4323 blocks ipv6 range when not in whitelist4324 allows all ipv6s in the range when in whitelist4325 blocks IPs outside the range4326 when enforce_user is4327 false (default)4328 does not block urls with a non-alphanumeric username4329 true4330 blocks urls with a non-alphanumeric username4331 when ascii_only is true4332 returns true for unicode domain4333 returns true for unicode tld4334 returns true for unicode path4335 returns true for IDNA deviations4336 #validate_hostname4337 does not raise error for valid Ip addresses4338Gitlab::Ci::Pipeline::Chain::Build4339 never breaks the chain4340 fills pipeline object with data4341 sets a valid config source4342 returns a valid pipeline4343 does not persist a pipeline4344 when pipeline is running for a tag4345 correctly indicated that this is a tagged pipeline4346 when pipeline is running for a merge request4347 correctly indicated that this is a merge request pipeline4348 correctly sets souce sha and target sha to pipeline4349shared/milestones/_top.html.haml4350 renders a deprecation message for a legacy milestone4351 renders a deprecation message for a dashboard milestone4352 does not render a deprecation message for a non-legacy and non-dashboard milestone4353Gitlab::Ci::Pipeline::Chain::Validate::Config4354 when pipeline has no YAML configuration4355 appends errors about missing configuration4356 breaks the chain4357 when YAML configuration contains errors4358 appends errors about YAML errors4359 breaks the chain4360 when saving incomplete pipeline is allowed4361 fails the pipeline4362 sets a config error failure reason4363 when saving incomplete pipeline is not allowed4364 does not drop pipeline4365 when pipeline contains configuration validation errors4366 appends configuration validation errors to pipeline errors4367 breaks the chain4368 when pipeline is correct and complete4369 does not invalidate the pipeline4370 does not break the chain4371 when pipeline source is merge request4372 when config contains 'merge_requests' keyword4373 does not break the chain4374 when config contains 'merge_request' keyword4375 does not break the chain4376AwardEmojis::CollectUserEmojiService4377 #execute4378 returns an Array containing the awarded emoji names4379 returns an empty Array when no user is given4380BuildHooksWorker4381 #perform4382 when build exists4383 calls build hooks4384 when build does not exist4385 does not raise exception4386Gitlab::Checks::PushCheck4387 #validate!4388 does not raise any error4389 when the user is not allowed to push to the repo4390 raises an error4391Email4392 normalize email value4393 validations4394 behaves like an object with email-formated attributes4395 specifically its :email attribute4396 with a value of 'info@example.com'4397 is valid4398 with a value of 'info+test@example.com'4399 is valid4400 with a value of 'o'reilly@example.com'4401 is valid4402 with a value of 'mailto:test@example.com'4403 is valid4404 with a value of 'lol!'+=?><#$%^&*()@gmail.com'4405 is valid4406 with a value of 'foobar'4407 is invalid4408 with a value of 'test@test@example.com'4409 is invalid4410 #update_invalid_gpg_signatures4411 synchronizes the gpg keys when the email is updated4412 scopes4413 scopes confirmed emails4414 delegation4415 delegates to :user4416admin/dashboard/index.html.haml4417 shows version of GitLab Workhorse4418 includes revision of GitLab4419Gitlab::BranchPushMergeCommitAnalyzer4420 #get_merge_commit4421 returns correct merge commit SHA for each commit4422 when one parent has two children4423 returns correct merge commit SHA for each commit4424 when relevant_commit_ids is provided4425 returns correct merge commit4426gitlab:uploads rake tasks4427 check4428 outputs the integrity check for each batch4429 errors out about missing files on the file system4430 errors out about invalid checksum4431Projects::Operations::UpdateService4432 #execute4433 metrics dashboard setting4434 without existing metrics dashboard setting4435 creates a setting4436 with existing metrics dashboard setting4437 updates the settings4438 with blank external_dashboard_url in params4439 destroys the metrics_setting entry in DB4440 error tracking4441 with existing error tracking setting4442 updates the settings4443 disable error tracking4444 can set api_url to nil4445 without an existing error tracking setting4446 creates a setting4447 with invalid parameters4448 does nothing4449 with inappropriate params4450 ignores params4451ChangeOutboundLocalRequestsWhitelistDefault4452NOTICE: trigger "trigger_50ffff51bd91" for relation "application_settings" does not exist, skipping4453NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4454 defaults to empty array4455NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4456NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4457ProtectedBranchPolicy4458 branches can be updated via project maintainers4459 branches can't be updated by guests4460Branches::DivergingCommitCountsService4461 #call4462 returns the commit counts behind and ahead of default branch4463 calls diverging_commit_count without max count4464BuildCoverageWorker4465 #perform4466 when build exists4467 updates code coverage4468 when build does not exist4469 does not raise exception4470Gitlab::Auth::OAuth::IdentityLinker4471 linked identity exists4472 doesn't create new identity4473 sets #changed? to false4474 identity already linked to different user4475 #changed? returns false4476 exposes error message4477 identity needs to be created4478 creates linked identity4479 sets identity provider4480 sets identity extern_uid4481 sets #changed? to true4482Gitlab::Metrics::Samplers::UnicornSampler4483 #sample4484 unicorn listens on unix sockets4485 samples socket data4486 stats collected4487 updates metrics type unix and with addr4488 unicorn listens on tcp sockets4489 samples socket data4490 stats collected4491 updates metrics type unix and with addr4492 unicorn workers4493 without http server4494 does set unicorn_workers to 04495 with http server4496 sets additional metrics4497 #start4498 when enabled4499 creates new thread4500 when disabled4501 doesn't create new thread4502ProfilesHelper4503 #commit_email_select_options4504 returns an array with private commit email along with all the verified emails4505 #selected_commit_email4506 returns main email when commit email attribute is nil4507 returns DB stored commit_email4508 #email_provider_label4509 returns nil for users without external email4510 returns omniauth provider label for users with external attributes4511 returns the correct omniauth provider label for users with some external attributes4512 returns 'LDAP' for users with external email but no email provider4513SystemCheck::Orphans::RepositoryCheck4514 #multi_check4515 all orphans4516 prints list of all orphaned namespaces except @hashed4517 few orphans with existing namespace4518 prints list of orphaned namespaces4519 few orphans with existing namespace and parents with same name as orphans4520 prints list of orphaned namespaces ignoring parents with same namespace as orphans4521 no orphans4522 prints an empty list ignoring @hashed4523Gitlab::Metrics::SidekiqMetricsExporter4524 when exporter is enabled4525 when exporter is stopped4526 #start4527 starts the exporter4528 with custom settings4529 starts server with port and address from settings4530 #stop4531 doesn't shutdown stopped server4532 when exporter is running4533 #start4534 doesn't start running server4535 #stop4536 shutdowns server4537 when exporter is disabled4538 #start4539 doesn't start4540 #stop4541 doesn't shutdown4542Gitlab::Diff::Parser4543 #parse4544 should eq 304545 lines4546 first line4547 should eq "match"4548 should eq 64549 should eq 64550 should eq "@@ -6,12 +6,18 @@ module Popen"4551 removal line4552 should eq "old"4553 should eq 144554 should eq 134555 should eq "- options = { chdir: path }"4556 addition line4557 should eq "new"4558 should eq 154559 should eq 184560 should eq "+ options = {"4561 unchanged line4562 should eq nil4563 should eq 244564 should eq 314565 should eq " @cmd_output << stderr.read"4566 \ No newline at end of file4567 parses nonewline in one file correctly4568 parses nonewline in two files correctly4569 when lines is empty4570 should eq []4571 should eq []4572 tolerates special diff markers in a content4573 counts lines correctly4574CommitsHelper4575 commit_author_link4576 escapes the author email4577 escapes the author name4578 commit_committer_link4579 escapes the committer email4580 escapes the committer name4581 #view_on_environment_button4582 returns a link tag linking to the file in the environment4583ProjectPathValidator4584 .valid_path?4585 handles invalid utf84586 #validates_each4587 adds a message when the path is not in the correct format4588 adds a message when the path is reserved when creating4589 adds a message when the path is reserved when updating4590ExpirePipelineCacheWorker4591 #perform4592 executes the service4593 doesn't do anything if the pipeline not exist4594UploadChecksumWorker4595 #perform4596 without a valid record4597 rescues ActiveRecord::RecordNotFound4598 with a valid record4599 calls calculate_checksum!4600 calls save!46016_validations4602 validate_storages_config4603 with correct settings4604 passes through4605 with invalid storage names4606 throws an error4607Knapsack report was generated. Preview:4608{4609 "spec/models/merge_request_spec.rb": 245.8093638420105,4610 "spec/services/ci/create_pipeline_service_spec.rb": 72.31915616989136,4611 "spec/models/cycle_analytics/issue_spec.rb": 51.28222942352295,4612 "spec/services/todos/destroy/entity_leave_service_spec.rb": 36.26121640205383,4613 "spec/models/group_spec.rb": 27.43041467666626,4614 "spec/services/merge_requests/merge_service_spec.rb": 20.436352729797363,4615 "spec/serializers/environment_status_entity_spec.rb": 17.2878201007843,4616 "spec/lib/api/helpers/pagination_spec.rb": 16.73901343345642,4617 "spec/models/members/project_member_spec.rb": 13.659262657165527,4618 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 12.257314682006836,4619 "spec/services/groups/destroy_service_spec.rb": 10.589070796966553,4620 "spec/lib/gitlab/asciidoc_spec.rb": 10.43309760093689,4621 "spec/lib/gitlab/cycle_analytics/issue_stage_spec.rb": 8.117520809173584,4622 "spec/tasks/gitlab/uploads/migrate_rake_spec.rb": 7.713963270187378,4623 "spec/finders/todos_finder_spec.rb": 7.024465322494507,4624 "spec/finders/projects/serverless/functions_finder_spec.rb": 7.6965110301971436,4625 "spec/models/deployment_metrics_spec.rb": 5.275100946426392,4626 "spec/lib/gitlab/background_migration/remove_restricted_todos_spec.rb": 5.131415605545044,4627 "spec/helpers/labels_helper_spec.rb": 4.788596868515015,4628 "spec/migrations/backfill_store_project_full_path_in_repo_spec.rb": 4.880459308624268,4629 "spec/models/label_spec.rb": 3.8617842197418213,4630 "spec/services/merge_requests/post_merge_service_spec.rb": 4.845160245895386,4631 "spec/uploaders/personal_file_uploader_spec.rb": 3.671262741088867,4632 "spec/lib/gitlab/badge/pipeline/status_spec.rb": 4.537460088729858,4633 "spec/lib/gitlab/diff/lines_unfolder_spec.rb": 3.391690492630005,4634 "spec/lib/gitlab/chat/responder/slack_spec.rb": 2.8847031593322754,4635 "spec/services/quick_actions/target_service_spec.rb": 3.1524853706359863,4636 "spec/services/issues/duplicate_service_spec.rb": 3.5721445083618164,4637 "spec/services/notes/build_service_spec.rb": 2.9962618350982666,4638 "spec/models/blob_spec.rb": 3.119788646697998,4639 "spec/lib/gitlab/ci/status/build/stop_spec.rb": 3.005453109741211,4640 "spec/lib/gitlab/plugin_spec.rb": 3.318777561187744,4641 "spec/lib/gitlab/url_builder_spec.rb": 2.250256061553955,4642 "spec/models/project_label_spec.rb": 2.316643238067627,4643 "spec/lib/banzai/pipeline/full_pipeline_spec.rb": 0.9974260330200195,4644 "spec/lib/gitlab/checks/lfs_check_spec.rb": 1.936537265777588,4645 "spec/lib/gitlab/sanitizers/exif_spec.rb": 2.340049982070923,4646 "spec/views/notify/pipeline_success_email.html.haml_spec.rb": 1.3637242317199707,4647 "spec/models/pages_domain_spec.rb": 1.4147710800170898,4648 "spec/finders/tags_finder_spec.rb": 1.9693331718444824,4649 "spec/services/projects/gitlab_projects_import_service_spec.rb": 2.0249950885772705,4650 "spec/services/boards/lists/generate_service_spec.rb": 1.5914678573608398,4651 "spec/services/boards/issues/create_service_spec.rb": 1.2505707740783691,4652 "spec/tasks/gitlab/artifacts/check_rake_spec.rb": 1.3074321746826172,4653 "spec/services/groups/create_service_spec.rb": 1.4497027397155762,4654 "spec/lib/gitlab/kubernetes/kube_client_spec.rb": 1.4204273223876953,4655 "spec/services/boards/lists/list_service_spec.rb": 1.2446529865264893,4656 "spec/views/projects/diffs/_viewer.html.haml_spec.rb": 1.4706847667694092,4657 "spec/lib/gitlab/ci/status/build/failed_unmet_prerequisites_spec.rb": 1.1433053016662598,4658 "spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb": 0.7027816772460938,4659 "spec/lib/gitlab/url_blocker_spec.rb": 0.5706496238708496,4660 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 0.7687463760375977,4661 "spec/views/shared/milestones/_top.html.haml_spec.rb": 0.7481389045715332,4662 "spec/lib/gitlab/ci/pipeline/chain/validate/config_spec.rb": 0.9454035758972168,4663 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 1.016817569732666,4664 "spec/workers/build_hooks_worker_spec.rb": 0.3014531135559082,4665 "spec/lib/gitlab/checks/push_check_spec.rb": 0.6457092761993408,4666 "spec/models/email_spec.rb": 0.6657929420471191,4667 "spec/views/admin/dashboard/index.html.haml_spec.rb": 0.5778687000274658,4668 "spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb": 0.861579179763794,4669 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 0.48897719383239746,4670 "spec/services/projects/operations/update_service_spec.rb": 0.5762007236480713,4671 "spec/migrations/change_outbound_local_requests_whitelist_default_spec.rb": 0.8317885398864746,4672 "spec/policies/protected_branch_policy_spec.rb": 1.285714864730835,4673 "spec/services/branches/diverging_commit_counts_service_spec.rb": 0.48187780380249023,4674 "spec/workers/build_coverage_worker_spec.rb": 0.4283928871154785,4675 "spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb": 0.41619110107421875,4676 "spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb": 0.4349238872528076,4677 "spec/helpers/profiles_helper_spec.rb": 0.4790329933166504,4678 "spec/lib/system_check/orphans/repository_check_spec.rb": 0.34592723846435547,4679 "spec/lib/gitlab/metrics/sidekiq_metrics_exporter_spec.rb": 0.12273621559143066,4680 "spec/lib/gitlab/diff/parser_spec.rb": 0.040266990661621094,4681 "spec/helpers/commits_helper_spec.rb": 0.2834467887878418,4682 "spec/validators/project_path_validator_spec.rb": 0.26285624504089355,4683 "spec/workers/expire_pipeline_cache_worker_spec.rb": 0.21266889572143555,4684 "spec/workers/upload_checksum_worker_spec.rb": 0.13035202026367188,4685 "spec/initializers/6_validations_spec.rb": 0.00385642051696777344686}4687Knapsack global time execution for tests: 11m 09s4688Pending: (Failures listed here are expected and do not affect your suite's status)4689 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required does not validate presence4690 # No reason given4691 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:354692 2) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #cache_dir behaves like matches the method pattern 4693 # No pattern provided, skipping.4694 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84695 3) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #work_dir behaves like matches the method pattern 4696 # No pattern provided, skipping.4697 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84698 4) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #relative_path is relative4699 # Path not set, skipping.4700 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394701 5) PersonalFileUploader object_store is LOCAL behaves like builds correct paths .base_dir behaves like matches the method pattern 4702 # No pattern provided, skipping.4703 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84704 6) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 4705 # No pattern provided, skipping.4706 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84707 7) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 4708 # No pattern provided, skipping.4709 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84710 8) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative4711 # Path not set, skipping.4712 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:394713 9) PersonalFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 4714 # No pattern provided, skipping.4715 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84716 10) PersonalFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 4717 # No pattern provided, skipping.4718 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:84719Finished in 12 minutes 15 seconds (files took 30.62 seconds to load)47201668 examples, 0 failures, 10 pending4721$ date4722Thu Aug 29 20:46:28 UTC 20194724$ date4725Thu Aug 29 20:46:31 UTC 20194728coverage/: found 5 matching files 4729knapsack/: found 4 matching files 4730rspec_flaky/: found 4 matching files 4731rspec_profiling/: found 1 matching files 4732WARNING: tmp/capybara/: no matching files 4733tmp/memory_test/: found 2 matching files 4734Uploading artifacts to coordinator... ok id=283641365 responseStatus=201 Created token=wyDsunQ14735Uploading artifacts...4736junit_rspec.xml: found 1 matching files 4737Uploading artifacts to coordinator... ok id=283641365 responseStatus=201 Created token=wyDsunQ14738Job succeeded