There was an error fetching the job.
rspec unit pg9 7/20
Passed Started
by
@nick.thomas

Nick Thomas
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com 8a6210b8 3 Using Docker executor with image registry.gitlab.com/gitlab-org/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:43
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:61c59b9a763f02dd11635b20ef117812dad973b95a68bd125f3a1767f9159cf9 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:f9d774eafe0d9aa813860e94490efffec6041d63a786133749974c15c055663e for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/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 ...13Using docker image sha256:a94eba80a84b7c7dacf920a5a92cf2e3bde001dce105a743a16950b506e477ef for registry.gitlab.com/gitlab-org/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 ... 14 Running on runner-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1571240453-bd9ffb36...
00:13
16Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/18 * [new ref] refs/pipelines/89282327 -> refs/pipelines/8928232719 82135aa53..4ec3d7972 master -> origin/master20Checking out 6f5714dc as master...21Removing .gitlab_shell_secret22Removing .gitlab_workhorse_secret23Removing .go/24Removing config/database.yml25Removing config/database_geo.yml26Removing config/gitlab.yml27Removing config/redis.cache.yml28Removing config/redis.queues.yml29Removing config/redis.shared_state.yml30Removing config/resque.yml31Removing config/secrets.yml32Removing coverage/33Removing junit_rspec.xml34Removing knapsack/35Removing log/api_json.log36Removing log/application.log37Removing log/external-policy-access-control.log38Removing log/gitaly-test.log39Removing log/grpc.log40Removing log/importer.log41Removing log/kubernetes.log42Removing log/test_json.log43Removing node_modules/44Removing public/assets/45Removing rspec_flaky/46Removing rspec_profiling/47Removing shared/lfs-objects/b6/48Removing shared/lfs-objects/b8/49Removing shared/lfs-objects/tmp/50Removing tmp/cache/51Removing tmp/memory_test/52Removing tmp/prometheus_multiproc_dir/counter_process_176-0.db53Removing tmp/prometheus_multiproc_dir/histogram_process_176-0.db54Removing tmp/tests/55Removing vendor/gitaly-ruby/56Removing vendor/ruby/57Skipping Git submodules setup59Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 60Successfully extracted cache62Downloading artifacts from coordinator... ok id=322922801 responseStatus=200 OK token=xdLK22P563Downloading artifacts for retrieve-tests-metadata (322922809)...64Downloading artifacts from coordinator... ok id=322922809 responseStatus=200 OK token=vWkPg6d_65Downloading artifacts for setup-test-env (322922804)...66Downloading artifacts from coordinator... ok id=322922804 responseStatus=200 OK token=2YUWrMkH67WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 69$ date70Wed Oct 16 17:04:31 UTC 201971$ export GOPATH=$CI_PROJECT_DIR/.go72$ mkdir -p $GOPATH73$ source scripts/utils.sh74$ source scripts/prepare_build.sh75Bundler version 1.17.276Warning: 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`.77The Gemfile's dependencies are satisfied78Successfully installed knapsack-1.18.0791 gem installed80CREATE ROLE81GRANT82Dropped database 'gitlabhq_test'83Created database 'gitlabhq_test'84-- enable_extension("pg_trgm")85 -> 0.0366s86-- enable_extension("plpgsql")87 -> 0.0032s88-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})89 -> 0.0043s90-- create_table("alerts_service_data", {:force=>:cascade})91 -> 0.0063s92-- create_table("allowed_email_domains", {:force=>:cascade})93 -> 0.0045s94-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})95 -> 0.0146s96-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})97 -> 0.0145s98-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})99 -> 0.0081s100-- create_table("analytics_repository_file_commits", {:force=>:cascade})101 -> 0.0065s102-- create_table("analytics_repository_file_edits", {:force=>:cascade})103 -> 0.0069s104-- create_table("analytics_repository_files", {:force=>:cascade})105 -> 0.0048s106-- create_table("appearances", {:id=>:serial, :force=>:cascade})107 -> 0.0035s108-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})109 -> 0.0025s110-- create_table("application_settings", {:id=>:serial, :force=>:cascade})111 -> 0.0970s112-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})113 -> 0.0064s114-- create_table("approval_merge_request_rules", {:force=>:cascade})115 -> 0.0153s116-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})117 -> 0.0072s118-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})119 -> 0.0063s120-- create_table("approval_merge_request_rules_users", {:force=>:cascade})121 -> 0.0063s122-- create_table("approval_project_rules", {:force=>:cascade})123 -> 0.0099s124-- create_table("approval_project_rules_groups", {:force=>:cascade})125 -> 0.0065s126-- create_table("approval_project_rules_users", {:force=>:cascade})127 -> 0.0064s128-- create_table("approvals", {:id=>:serial, :force=>:cascade})129 -> 0.0065s130-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})131 -> 0.0069s132-- create_table("approvers", {:id=>:serial, :force=>:cascade})133 -> 0.0067s134-- create_table("audit_events", {:id=>:serial, :force=>:cascade})135 -> 0.0071s136-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})137 -> 0.0071s138-- create_table("badges", {:id=>:serial, :force=>:cascade})139 -> 0.0070s140-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})141 -> 0.0063s142-- create_table("board_group_recent_visits", {:force=>:cascade})143 -> 0.0103s144-- create_table("board_labels", {:id=>:serial, :force=>:cascade})145 -> 0.0063s146-- create_table("board_project_recent_visits", {:force=>:cascade})147 -> 0.0106s148-- create_table("boards", {:id=>:serial, :force=>:cascade})149 -> 0.0093s150-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})151 -> 0.0053s152-- create_table("chat_names", {:id=>:serial, :force=>:cascade})153 -> 0.0070s154-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})155 -> 0.0047s156-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})157 -> 0.0046s158-- create_table("ci_build_trace_chunks", {:force=>:cascade})159 -> 0.0047s160-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})161 -> 0.0049s162-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})163 -> 0.0086s164-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})165 -> 0.0561s166-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})167 -> 0.0094s168-- create_table("ci_builds_runner_session", {:force=>:cascade})169 -> 0.0049s170-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})171 -> 0.0065s172-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})173 -> 0.0138s174-- create_table("ci_job_variables", {:force=>:cascade})175 -> 0.0079s176-- create_table("ci_pipeline_chat_data", {:force=>:cascade})177 -> 0.0070s178-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})179 -> 0.0055s180-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})181 -> 0.0097s182-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})183 -> 0.0054s184-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})185 -> 0.0310s186-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})187 -> 0.0066s188-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})189 -> 0.0062s190-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})191 -> 0.0184s192-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})193 -> 0.0125s194-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})195 -> 0.0115s196-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})197 -> 0.0073s198-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})199 -> 0.0074s200-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})201 -> 0.0071s202-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})203 -> 0.0064s204-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})205 -> 0.0050s206-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})207 -> 0.0062s208-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})209 -> 0.0083s210-- create_table("clusters", {:id=>:serial, :force=>:cascade})211 -> 0.0116s212-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})213 -> 0.0052s214-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})215 -> 0.0051s216-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})217 -> 0.0052s218-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})219 -> 0.0073s220-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})221 -> 0.0050s222-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})223 -> 0.0055s224-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})225 -> 0.0080s226-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})227 -> 0.0159s228-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})229 -> 0.0069s230-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})231 -> 0.0073s232-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})233 -> 0.0054s234-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})235 -> 0.0049s236-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})237 -> 0.0049s238-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})239 -> 0.0107s240-- create_table("deployments", {:id=>:serial, :force=>:cascade})241 -> 0.0243s242-- create_table("design_management_designs", {:force=>:cascade})243 -> 0.0068s244-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})245 -> 0.0097s246-- create_table("design_management_versions", {:force=>:cascade})247 -> 0.0090s248-- create_table("draft_notes", {:force=>:cascade})249 -> 0.0096s250-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})251 -> 0.0032s252-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})253 -> 0.0033s254-- create_table("emails", {:id=>:serial, :force=>:cascade})255 -> 0.0094s256-- create_table("environments", {:id=>:serial, :force=>:cascade})257 -> 0.0119s258-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})259 -> 0.0064s260-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})261 -> 0.0045s262-- create_table("epics", {:id=>:serial, :force=>:cascade})263 -> 0.0225s264-- create_table("events", {:id=>:serial, :force=>:cascade})265 -> 0.0177s266-- create_table("external_pull_requests", {:force=>:cascade})267 -> 0.0052s268-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})269 -> 0.0055s270-- create_table("features", {:id=>:serial, :force=>:cascade})271 -> 0.0052s272-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})273 -> 0.0085s274-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})275 -> 0.0049s276-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})277 -> 0.0054s278-- create_table("geo_cache_invalidation_events", {:force=>:cascade})279 -> 0.0028s280-- create_table("geo_container_repository_updated_events", {:force=>:cascade})281 -> 0.0043s282-- create_table("geo_event_log", {:force=>:cascade})283 -> 0.0300s284-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})285 -> 0.0050s286-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})287 -> 0.0050s288-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})289 -> 0.0049s290-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})291 -> 0.0047s292-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})293 -> 0.0086s294-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})295 -> 0.0066s296-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})297 -> 0.0136s298-- create_table("geo_repositories_changed_events", {:force=>:cascade})299 -> 0.0044s300-- create_table("geo_repository_created_events", {:force=>:cascade})301 -> 0.0050s302-- create_table("geo_repository_deleted_events", {:force=>:cascade})303 -> 0.0048s304-- create_table("geo_repository_renamed_events", {:force=>:cascade})305 -> 0.0050s306-- create_table("geo_repository_updated_events", {:force=>:cascade})307 -> 0.0078s308-- create_table("geo_reset_checksum_events", {:force=>:cascade})309 -> 0.0044s310-- create_table("geo_upload_deleted_events", {:force=>:cascade})311 -> 0.0051s312-- create_table("gitlab_subscriptions", {:force=>:cascade})313 -> 0.0079s314-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})315 -> 0.0089s316-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})317 -> 0.0094s318-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})319 -> 0.0137s320-- create_table("grafana_integrations", {:force=>:cascade})321 -> 0.0049s322-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})323 -> 0.0070s324-- create_table("historical_data", {:id=>:serial, :force=>:cascade})325 -> 0.0022s326-- create_table("identities", {:id=>:serial, :force=>:cascade})327 -> 0.0092s328-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})329 -> 0.0071s330-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})331 -> 0.0050s332-- create_table("insights", {:id=>:serial, :force=>:cascade})333 -> 0.0062s334-- create_table("internal_ids", {:force=>:cascade})335 -> 0.0105s336-- create_table("ip_restrictions", {:force=>:cascade})337 -> 0.0048s338-- create_table("issue_assignees", {:id=>false, :force=>:cascade})339 -> 0.0053s340-- create_table("issue_links", {:id=>:serial, :force=>:cascade})341 -> 0.0083s342-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})343 -> 0.0067s344-- create_table("issue_tracker_data", {:force=>:cascade})345 -> 0.0051s346-- create_table("issues", {:id=>:serial, :force=>:cascade})347 -> 0.0447s348-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})349 -> 0.0054s350-- create_table("jira_connect_installations", {:force=>:cascade})351 -> 0.0052s352-- create_table("jira_connect_subscriptions", {:force=>:cascade})353 -> 0.0083s354-- create_table("jira_tracker_data", {:force=>:cascade})355 -> 0.0051s356-- create_table("keys", {:id=>:serial, :force=>:cascade})357 -> 0.0097s358-- create_table("label_links", {:id=>:serial, :force=>:cascade})359 -> 0.0067s360-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})361 -> 0.0083s362-- create_table("labels", {:id=>:serial, :force=>:cascade})363 -> 0.0135s364-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})365 -> 0.0029s366-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})367 -> 0.0070s368-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})369 -> 0.0068s370-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})371 -> 0.0062s372-- create_table("licenses", {:id=>:serial, :force=>:cascade})373 -> 0.0025s374-- create_table("list_user_preferences", {:force=>:cascade})375 -> 0.0084s376-- create_table("lists", {:id=>:serial, :force=>:cascade})377 -> 0.0135s378-- create_table("members", {:id=>:serial, :force=>:cascade})379 -> 0.0185s380-- create_table("merge_request_assignees", {:force=>:cascade})381 -> 0.0083s382-- create_table("merge_request_blocks", {:force=>:cascade})383 -> 0.0064s384-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})385 -> 0.0060s386-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})387 -> 0.0042s388-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})389 -> 0.0073s390-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})391 -> 0.0189s392-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})393 -> 0.0495s394-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})395 -> 0.0065s396-- create_table("merge_trains", {:force=>:cascade})397 -> 0.0112s398-- create_table("milestone_releases", {:id=>false, :force=>:cascade})399 -> 0.0053s400-- create_table("milestones", {:id=>:serial, :force=>:cascade})401 -> 0.0160s402-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})403 -> 0.0035s404-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})405 -> 0.0065s406-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})407 -> 0.0046s408-- create_table("namespaces", {:id=>:serial, :force=>:cascade})409 -> 0.0451s410-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})411 -> 0.0052s412-- create_table("notes", {:id=>:serial, :force=>:cascade})413 -> 0.0260s414-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})415 -> 0.0102s416-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})417 -> 0.0050s418-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})419 -> 0.0112s420-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})421 -> 0.0081s422-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})423 -> 0.0052s424-- create_table("operations_feature_flag_scopes", {:force=>:cascade})425 -> 0.0078s426-- create_table("operations_feature_flags", {:force=>:cascade})427 -> 0.0049s428-- create_table("operations_feature_flags_clients", {:force=>:cascade})429 -> 0.0067s430-- create_table("packages_maven_metadata", {:force=>:cascade})431 -> 0.0051s432-- create_table("packages_package_files", {:force=>:cascade})433 -> 0.0055s434-- create_table("packages_package_metadata", {:force=>:cascade})435 -> 0.0049s436-- create_table("packages_package_tags", {:force=>:cascade})437 -> 0.0047s438-- create_table("packages_packages", {:force=>:cascade})439 -> 0.0073s440-- create_table("pages_domain_acme_orders", {:force=>:cascade})441 -> 0.0070s442-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})443 -> 0.0191s444-- create_table("path_locks", {:id=>:serial, :force=>:cascade})445 -> 0.0088s446-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})447 -> 0.0082s448-- create_table("plans", {:id=>:serial, :force=>:cascade})449 -> 0.0055s450-- create_table("pool_repositories", {:force=>:cascade})451 -> 0.0089s452-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})453 -> 0.0048s454-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})455 -> 0.0020s456-- create_table("project_aliases", {:force=>:cascade})457 -> 0.0069s458-- create_table("project_authorizations", {:id=>false, :force=>:cascade})459 -> 0.0054s460-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})461 -> 0.0048s462-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})463 -> 0.0052s464-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})465 -> 0.0068s466-- create_table("project_daily_statistics", {:force=>:cascade})467 -> 0.0044s468-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})469 -> 0.0064s470-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})471 -> 0.0026s472-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})473 -> 0.0088s474-- create_table("project_features", {:id=>:serial, :force=>:cascade})475 -> 0.0053s476-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})477 -> 0.0067s478-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})479 -> 0.0046s480-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})481 -> 0.0031s482-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})483 -> 0.0017s484-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})485 -> 0.0191s486-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})487 -> 0.0059s488-- create_table("project_repositories", {:force=>:cascade})489 -> 0.0089s490-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})491 -> 0.0156s492-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})493 -> 0.0093s494-- create_table("project_tracing_settings", {:force=>:cascade})495 -> 0.0047s496-- create_table("projects", {:id=>:serial, :force=>:cascade})497 -> 0.0699s498-- create_table("prometheus_alert_events", {:force=>:cascade})499 -> 0.0070s500-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})501 -> 0.0086s502-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})503 -> 0.0115s504-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})505 -> 0.0089s506-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})507 -> 0.0088s508-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})509 -> 0.0092s510-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})511 -> 0.0073s512-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})513 -> 0.0088s514-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})515 -> 0.0071s516-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})517 -> 0.0089s518-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})519 -> 0.0069s520-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})521 -> 0.0039s522-- create_table("push_rules", {:id=>:serial, :force=>:cascade})523 -> 0.0093s524-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})525 -> 0.0089s526-- create_table("release_links", {:force=>:cascade})527 -> 0.0067s528-- create_table("releases", {:id=>:serial, :force=>:cascade})529 -> 0.0069s530-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})531 -> 0.0082s532-- create_table("repository_languages", {:id=>false, :force=>:cascade})533 -> 0.0031s534-- create_table("resource_label_events", {:force=>:cascade})535 -> 0.0128s536-- create_table("reviews", {:force=>:cascade})537 -> 0.0082s538-- create_table("routes", {:id=>:serial, :force=>:cascade})539 -> 0.0090s540-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})541 -> 0.0055s542-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})543 -> 0.0050s544-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})545 -> 0.0050s546-- create_table("services", {:id=>:serial, :force=>:cascade})547 -> 0.0172s548-- create_table("shards", {:id=>:serial, :force=>:cascade})549 -> 0.0053s550-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})551 -> 0.0075s552-- create_table("smartcard_identities", {:force=>:cascade})553 -> 0.0074s554-- create_table("snippets", {:id=>:serial, :force=>:cascade})555 -> 0.0194s556-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})557 -> 0.0075s558-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})559 -> 0.0074s560-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})561 -> 0.0042s562-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})563 -> 0.0082s564-- create_table("suggestions", {:force=>:cascade})565 -> 0.0099s566-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})567 -> 0.0047s568-- create_table("taggings", {:id=>:serial, :force=>:cascade})569 -> 0.0111s570-- create_table("tags", {:id=>:serial, :force=>:cascade})571 -> 0.0070s572-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})573 -> 0.0088s574-- create_table("timelogs", {:id=>:serial, :force=>:cascade})575 -> 0.0086s576-- create_table("todos", {:id=>:serial, :force=>:cascade})577 -> 0.0214s578-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})579 -> 0.0041s580-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})581 -> 0.0079s582-- create_table("uploads", {:id=>:serial, :force=>:cascade})583 -> 0.0112s584-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})585 -> 0.0055s586-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})587 -> 0.0063s588-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})589 -> 0.0071s590-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})591 -> 0.0051s592-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})593 -> 0.0070s594-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})595 -> 0.0051s596-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})597 -> 0.0060s598-- create_table("users", {:id=>:serial, :force=>:cascade})599 -> 0.0690s600-- create_table("users_ops_dashboard_projects", {:force=>:cascade})601 -> 0.0065s602-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})603 -> 0.0065s604-- create_table("vulnerabilities", {:force=>:cascade})605 -> 0.0231s606-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})607 -> 0.0154s608-- create_table("vulnerability_identifiers", {:force=>:cascade})609 -> 0.0051s610-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})611 -> 0.0064s612-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})613 -> 0.0069s614-- create_table("vulnerability_occurrences", {:force=>:cascade})615 -> 0.0137s616-- create_table("vulnerability_scanners", {:force=>:cascade})617 -> 0.0049s618-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})619 -> 0.0071s620-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})621 -> 0.0123s622-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})623 -> 0.0024s624-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})625 -> 0.0024s626-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})627 -> 0.0020s628-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})629 -> 0.0015s630-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})631 -> 0.0015s632-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})633 -> 0.0015s634-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})635 -> 0.0012s636-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})637 -> 0.0029s638-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})639 -> 0.0015s640-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})641 -> 0.0016s642-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})643 -> 0.0016s644-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})645 -> 0.0016s646-- add_foreign_key("analytics_repository_file_edits", "analytics_repository_files", {:on_delete=>:cascade})647 -> 0.0015s648-- add_foreign_key("analytics_repository_file_edits", "projects", {:on_delete=>:cascade})649 -> 0.0019s650-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})651 -> 0.0016s652-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})653 -> 0.0036s654-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})655 -> 0.0025s656-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})657 -> 0.0024s658-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})659 -> 0.0036s660-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})661 -> 0.0018s662-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})663 -> 0.0015s664-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})665 -> 0.0030s666-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})667 -> 0.0015s668-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})669 -> 0.0017s670-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})671 -> 0.0015s672-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})673 -> 0.0014s674-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})675 -> 0.0015s676-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})677 -> 0.0016s678-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})679 -> 0.0017s680-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})681 -> 0.0014s682-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})683 -> 0.0015s684-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})685 -> 0.0014s686-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})687 -> 0.0016s688-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})689 -> 0.0016s690-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})691 -> 0.0016s692-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})693 -> 0.0015s694-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})695 -> 0.0017s696-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})697 -> 0.0015s698-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})699 -> 0.0015s700-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})701 -> 0.0016s702-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})703 -> 0.0015s704-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})705 -> 0.0017s706-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})707 -> 0.0014s708-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})709 -> 0.0014s710-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})711 -> 0.0015s712-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})713 -> 0.0017s714-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})715 -> 0.0017s716-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})717 -> 0.0014s718-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})719 -> 0.0018s720-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})721 -> 0.0017s722-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})723 -> 0.0027s724-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})725 -> 0.0019s726-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})727 -> 0.0019s728-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})729 -> 0.0014s730-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})731 -> 0.0014s732-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})733 -> 0.0017s734-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})735 -> 0.0022s736-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})737 -> 0.0015s738-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})739 -> 0.0015s740-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})741 -> 0.0016s742-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})743 -> 0.0021s744-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})745 -> 0.0016s746-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})747 -> 0.0018s748-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})749 -> 0.0015s750-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})751 -> 0.0015s752-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})753 -> 0.0019s754-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})755 -> 0.0018s756-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})757 -> 0.0017s758-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})759 -> 0.0017s760-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})761 -> 0.0014s762-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})763 -> 0.0016s764-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})765 -> 0.0018s766-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})767 -> 0.0017s768-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})769 -> 0.0015s770-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})771 -> 0.0014s772-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})773 -> 0.0014s774-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})775 -> 0.0015s776-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})777 -> 0.0016s778-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})779 -> 0.0020s780-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})781 -> 0.0017s782-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})783 -> 0.0015s784-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})785 -> 0.0020s786-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})787 -> 0.0018s788-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})789 -> 0.0013s790-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})791 -> 0.0013s792-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})793 -> 0.0024s794-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})795 -> 0.0017s796-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})797 -> 0.0014s798-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})799 -> 0.0018s800-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})801 -> 0.0015s802-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})803 -> 0.0017s804-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})805 -> 0.0017s806-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})807 -> 0.0018s808-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})809 -> 0.0017s810-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})811 -> 0.0014s812-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})813 -> 0.0015s814-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})815 -> 0.0014s816-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})817 -> 0.0017s818-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})819 -> 0.0015s820-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})821 -> 0.0017s822-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})823 -> 0.0018s824-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})825 -> 0.0016s826-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})827 -> 0.0015s828-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})829 -> 0.0016s830-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})831 -> 0.0014s832-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})833 -> 0.0015s834-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})835 -> 0.0014s836-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})837 -> 0.0014s838-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})839 -> 0.0014s840-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})841 -> 0.0014s842-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})843 -> 0.0017s844-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})845 -> 0.0013s846-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})847 -> 0.0016s848-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})849 -> 0.0018s850-- add_foreign_key("container_repositories", "projects")851 -> 0.0019s852-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})853 -> 0.0016s854-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})855 -> 0.0017s856-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})857 -> 0.0019s858-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})859 -> 0.0018s860-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})861 -> 0.0018s862-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})863 -> 0.0024s864-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})865 -> 0.0017s866-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})867 -> 0.0014s868-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})869 -> 0.0014s870-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})871 -> 0.0015s872-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})873 -> 0.0017s874-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})875 -> 0.0017s876-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})877 -> 0.0017s878-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})879 -> 0.0016s880-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})881 -> 0.0019s882-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})883 -> 0.0018s884-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})885 -> 0.0020s886-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})887 -> 0.0015s888-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})889 -> 0.0015s890-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})891 -> 0.0013s892-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})893 -> 0.0017s894-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})895 -> 0.0015s896-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})897 -> 0.0017s898-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})899 -> 0.0017s900-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})901 -> 0.0017s902-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})903 -> 0.0019s904-- add_foreign_key("events", "projects", {:on_delete=>:cascade})905 -> 0.0019s906-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})907 -> 0.0016s908-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})909 -> 0.0019s910-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})911 -> 0.0015s912-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})913 -> 0.0016s914-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})915 -> 0.0017s916-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})917 -> 0.0015s918-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})919 -> 0.0017s920-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})921 -> 0.0014s922-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})923 -> 0.0020s924-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})925 -> 0.0012s926-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})927 -> 0.0016s928-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})929 -> 0.0014s930-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})931 -> 0.0013s932-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})933 -> 0.0013s934-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})935 -> 0.0023s936-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})937 -> 0.0013s938-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})939 -> 0.0015s940-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})941 -> 0.0037s942-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})943 -> 0.0017s944-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})945 -> 0.0018s946-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})947 -> 0.0019s948-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})949 -> 0.0017s950-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})951 -> 0.0018s952-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})953 -> 0.0015s954-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})955 -> 0.0017s956-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})957 -> 0.0014s958-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})959 -> 0.0018s960-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})961 -> 0.0018s962-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})963 -> 0.0017s964-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})965 -> 0.0016s966-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})967 -> 0.0016s968-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})969 -> 0.0013s970-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})971 -> 0.0016s972-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})973 -> 0.0017s974-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})975 -> 0.0015s976-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})977 -> 0.0014s978-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})979 -> 0.0019s980-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})981 -> 0.0019s982-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})983 -> 0.0017s984-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})985 -> 0.0015s986-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})987 -> 0.0020s988-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})989 -> 0.0019s990-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})991 -> 0.0017s992-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})993 -> 0.0018s994-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})995 -> 0.0019s996-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})997 -> 0.0018s998-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})999 -> 0.0016s1000-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1001 -> 0.0015s1002-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1003 -> 0.0016s1004-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1005 -> 0.0016s1006-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1007 -> 0.0013s1008-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1009 -> 0.0017s1010-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1011 -> 0.0015s1012-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1013 -> 0.0014s1014-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1015 -> 0.0013s1016-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1017 -> 0.0015s1018-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1019 -> 0.0020s1020-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1021 -> 0.0018s1022-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1023 -> 0.0017s1024-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1025 -> 0.0017s1026-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1027 -> 0.0016s1028-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1029 -> 0.0015s1030-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1031 -> 0.0015s1032-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1033 -> 0.0015s1034-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1035 -> 0.0015s1036-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1037 -> 0.0015s1038-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1039 -> 0.0015s1040-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1041 -> 0.0018s1042-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1043 -> 0.0015s1044-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1045 -> 0.0020s1046-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1047 -> 0.0021s1048-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1049 -> 0.0018s1050-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1051 -> 0.0017s1052-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1053 -> 0.0019s1054-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1055 -> 0.0013s1056-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1057 -> 0.0014s1058-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1059 -> 0.0013s1060-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1061 -> 0.0018s1062-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1063 -> 0.0021s1064-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1065 -> 0.0017s1066-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1067 -> 0.0017s1068-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1069 -> 0.0016s1070-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1071 -> 0.0014s1072-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1073 -> 0.0016s1074-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1075 -> 0.0014s1076-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1077 -> 0.0017s1078-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1079 -> 0.0019s1080-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1081 -> 0.0015s1082-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1083 -> 0.0021s1084-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1085 -> 0.0017s1086-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1087 -> 0.0016s1088-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1089 -> 0.0014s1090-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1091 -> 0.0016s1092-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1093 -> 0.0019s1094-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1095 -> 0.0020s1096-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1097 -> 0.0019s1098-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1099 -> 0.0018s1100-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1101 -> 0.0018s1102-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1103 -> 0.0018s1104-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1105 -> 0.0017s1106-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1107 -> 0.0015s1108-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1109 -> 0.0016s1110-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1111 -> 0.0016s1112-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1113 -> 0.0017s1114-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1115 -> 0.0018s1116-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1117 -> 0.0014s1118-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1119 -> 0.0014s1120-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1121 -> 0.0015s1122-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1123 -> 0.0018s1124-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1125 -> 0.0015s1126-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1127 -> 0.0016s1128-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1129 -> 0.0015s1130-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1131 -> 0.0015s1132-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1133 -> 0.0015s1134-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1135 -> 0.0071s1136-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1137 -> 0.0034s1138-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1139 -> 0.0040s1140-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1141 -> 0.0020s1142-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1143 -> 0.0030s1144-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1145 -> 0.0015s1146-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1147 -> 0.0014s1148-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1149 -> 0.0020s1150-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1151 -> 0.0022s1152-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1153 -> 0.0015s1154-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1155 -> 0.0013s1156-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1157 -> 0.0013s1158-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1159 -> 0.0012s1160-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1161 -> 0.0019s1162-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1163 -> 0.0019s1164-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1165 -> 0.0019s1166-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1167 -> 0.0025s1168-- add_foreign_key("path_locks", "users")1169 -> 0.0020s1170-- add_foreign_key("personal_access_tokens", "users")1171 -> 0.0024s1172-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1173 -> 0.0021s1174-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1175 -> 0.0015s1176-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1177 -> 0.0019s1178-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1179 -> 0.0018s1180-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1181 -> 0.0018s1182-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1183 -> 0.0018s1184-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1185 -> 0.0018s1186-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1187 -> 0.0018s1188-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1189 -> 0.0023s1190-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1191 -> 0.0019s1192-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1193 -> 0.0016s1194-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1195 -> 0.0018s1196-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1197 -> 0.0019s1198-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1199 -> 0.0021s1200-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1201 -> 0.0018s1202-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1203 -> 0.0019s1204-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1205 -> 0.0018s1206-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1207 -> 0.0048s1208-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1209 -> 0.0025s1210-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1211 -> 0.0022s1212-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1213 -> 0.0021s1214-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1215 -> 0.0023s1216-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1217 -> 0.0014s1218-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1219 -> 0.0022s1220-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1221 -> 0.0021s1222-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1223 -> 0.0019s1224-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1225 -> 0.0021s1226-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1227 -> 0.0018s1228-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1229 -> 0.0021s1230-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1231 -> 0.0042s1232-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1233 -> 0.0033s1234-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1235 -> 0.0022s1236-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1237 -> 0.0020s1238-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1239 -> 0.0018s1240-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1241 -> 0.0016s1242-- add_foreign_key("protected_branch_merge_access_levels", "users")1243 -> 0.0021s1244-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1245 -> 0.0018s1246-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1247 -> 0.0013s1248-- add_foreign_key("protected_branch_push_access_levels", "users")1249 -> 0.0018s1250-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1251 -> 0.0017s1252-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1253 -> 0.0013s1254-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1255 -> 0.0017s1256-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1257 -> 0.0020s1258-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1259 -> 0.0017s1260-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1261 -> 0.0017s1262-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1263 -> 0.0018s1264-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1265 -> 0.0018s1266-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1267 -> 0.0018s1268-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1269 -> 0.0015s1270-- add_foreign_key("protected_tag_create_access_levels", "users")1271 -> 0.0017s1272-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1273 -> 0.0020s1274-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1275 -> 0.0014s1276-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1277 -> 0.0021s1278-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1279 -> 0.0014s1280-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1281 -> 0.0019s1282-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1283 -> 0.0017s1284-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1285 -> 0.0019s1286-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1287 -> 0.0018s1288-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1289 -> 0.0017s1290-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1291 -> 0.0016s1292-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1293 -> 0.0013s1294-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1295 -> 0.0015s1296-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1297 -> 0.0017s1298-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1299 -> 0.0016s1300-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1301 -> 0.0019s1302-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1303 -> 0.0016s1304-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1305 -> 0.0015s1306-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1307 -> 0.0015s1308-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1309 -> 0.0019s1310-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1311 -> 0.0014s1312-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1313 -> 0.0018s1314-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1315 -> 0.0022s1316-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1317 -> 0.0019s1318-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1319 -> 0.0014s1320-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1321 -> 0.0021s1322-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1323 -> 0.0015s1324-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1325 -> 0.0014s1326-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1327 -> 0.0014s1328-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1329 -> 0.0017s1330-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1331 -> 0.0017s1332-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1333 -> 0.0015s1334-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1335 -> 0.0019s1336-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1337 -> 0.0014s1338-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1339 -> 0.0020s1340-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1341 -> 0.0017s1342-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1343 -> 0.0017s1344-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1345 -> 0.0019s1346-- add_foreign_key("u2f_registrations", "users")1347 -> 0.0019s1348-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1349 -> 0.0018s1350-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1351 -> 0.0019s1352-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1353 -> 0.0019s1354-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1355 -> 0.0016s1356-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1357 -> 0.0019s1358-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1359 -> 0.0017s1360-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1361 -> 0.0018s1362-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1363 -> 0.0017s1364-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1365 -> 0.0021s1366-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1367 -> 0.0021s1368-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1369 -> 0.0017s1370-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1371 -> 0.0020s1372-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1373 -> 0.0019s1374-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1375 -> 0.0015s1376-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1377 -> 0.0014s1378-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1379 -> 0.0014s1380-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1381 -> 0.0020s1382-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1383 -> 0.0053s1384-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1385 -> 0.0018s1386-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1387 -> 0.0018s1388-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1389 -> 0.0018s1390-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1391 -> 0.0018s1392-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1393 -> 0.0015s1394-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1395 -> 0.0015s1396-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1397 -> 0.0019s1398-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1399 -> 0.0017s1400-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1401 -> 0.0017s1402-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1403 -> 0.0021s1404-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1405 -> 0.0013s1406-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1407 -> 0.0015s1408-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1409 -> 0.0016s1410-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1411 -> 0.0012s1412-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1413 -> 0.0019s1414-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1415 -> 0.0015s1416-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1417 -> 0.0012s1418-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1419 -> 0.0013s1420-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1421 -> 0.0018s1422-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1423 -> 0.0017s1424-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1425 -> 0.0020s1426Dropped database 'gitlabhq_geo_test'1427Created database 'gitlabhq_geo_test'1428-- enable_extension("plpgsql")1429 -> 0.0171s1430-- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade})1431 -> 0.0129s1432-- create_table("design_registry", {:id=>:serial, :force=>:cascade})1433 -> 0.0095s1434-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1435 -> 0.0021s1436-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1437 -> 0.0122s1438-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1439 -> 0.0098s1440-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1441 -> 0.0467s1442$ date1443Wed Oct 16 17:05:16 UTC 20191444$ source scripts/rspec_helpers.sh1445$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1446KNAPSACK_TEST_FILE_PATTERN: spec/{bin,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,migrations,models,policies,presenters,rack_servers,routing,rubocop,serializers,services,sidekiq,tasks,uploaders,validators,views,workers,elastic_integration}{,/**/}*_spec.rb1447Checking gitaly-ruby bundle...1448Warning: 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`.1449The Gemfile's dependencies are satisfied1450Trying to connect to gitaly: ...... OK1451Knapsack report generator started!1452Run options:1453 include {:focus=>true}1454 exclude {:quarantine=>true, :geo=>true}1455All examples were filtered out; ignoring {:focus=>true}1456==> Setting up GitLab Shell...1457 GitLab Shell set up in 0.233538774 seconds...1458==> Setting up Gitaly...1459 Gitaly set up in 0.000211468 seconds...1460==> Setting up GitLab Elasticsearch Indexer...1461 GitLab Elasticsearch Indexer set up in 0.000374782 seconds...1462TodoService1463 updates cached counts when a todo is created1464 Issues1465 #new_issue1466 creates a todo if assigned1467 does not create a todo if unassigned1468 creates a todo if assignee is the current user1469 creates a todo for each valid mentioned user1470 creates a directly addressed todo for each valid addressed user1471 creates correct todos for each valid user based on the type of mention1472 does not create todo if user can not see the issue when issue is confidential1473 does not create directly addressed todo if user cannot see the issue when issue is confidential1474 when a private group is mentioned1475 creates a todo for group members1476 #update_issue1477 creates a todo for each valid mentioned user not included in skip_users1478 creates a todo for each valid user not included in skip_users based on the type of mention1479 creates a directly addressed todo for each valid addressed user not included in skip_users1480 does not create a todo if user was already mentioned and todo is pending1481 does not create a todo if user was already mentioned and todo is done1482 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending1483 does not create a directly addressed todo if user was already mentioned or addressed and todo is done1484 does not create todo if user can not see the issue when issue is confidential1485 does not create a directly addressed todo if user can not see the issue when issue is confidential1486 issues with a task list1487 does not create todo when tasks are marked as completed1488 does not create directly addressed todo when tasks are marked as completed1489 does not raise an error when description not change1490 #close_issue1491 marks related pending todos to the target for the user as done1492 #destroy_target1493 refreshes the todos count cache for users with todos on the target1494 does not refresh the todos count cache for users with only done todos on the target1495 yields the target to the caller1496 #mark_pending_todos_as_done1497 marks related pending todos to the target for the user as done1498 cached counts1499 updates when todos change1500 #mark_todos_as_done1501 behaves like updating todos state1502 updates related todos for the user with the new_state1503 returns the updated ids1504 cached counts1505 updates when todos change1506 #mark_todos_as_done_by_ids1507 behaves like updating todos state1508 updates related todos for the user with the new_state1509 returns the updated ids1510 cached counts1511 updates when todos change1512 #mark_todos_as_pending1513 behaves like updating todos state1514 updates related todos for the user with the new_state1515 returns the updated ids1516 cached counts1517 updates when todos change1518 #mark_todos_as_pending_by_ids1519 behaves like updating todos state1520 updates related todos for the user with the new_state1521 returns the updated ids1522 cached counts1523 updates when todos change1524 #new_note1525 mark related pending todos to the noteable for the note author as done1526 does not mark related pending todos it is a system note1527 creates a todo for each valid mentioned user1528 creates a todo for each valid user based on the type of mention1529 creates a directly addressed todo for each valid addressed user1530 does not create todo if user can not see the issue when leaving a note on a confidential issue1531 does not create a directly addressed todo if user can not see the issue when leaving a note on a confidential issue1532 does not create todo when leaving a note on snippet1533 commits1534 leaving a note on a commit in a public project1535 creates a todo for each valid mentioned user1536 creates a directly addressed todo for each valid mentioned user1537 leaving a note on a commit in a public project with private code1538 creates a todo for each valid mentioned user1539 creates a directly addressed todo for each valid mentioned user1540 leaving a note on a commit in a private project1541 creates a todo for each valid mentioned user1542 creates a directly addressed todo for each valid mentioned user1543 #mark_todo1544 creates a todo from a issue1545 #todo_exists?1546 returns false when no todo exist for the given issuable1547 returns true when a todo exist for the given issuable1548 #reassigned_issuable1549 issuable is a merge request1550 behaves like reassigned issuable1551 creates a pending todo for new assignee1552 does not create a todo if unassigned1553 creates a todo if new assignee is the current user1554 does not create a todo for guests1555 does not create a directly addressed todo for guests1556 issuable is an issue1557 behaves like reassigned issuable1558 creates a pending todo for new assignee1559 does not create a todo if unassigned1560 creates a todo if new assignee is the current user1561 does not create a todo for guests1562 does not create a directly addressed todo for guests1563 Merge Requests1564 #new_merge_request1565 creates a pending todo if assigned1566 does not create a todo if unassigned1567 does not create a todo if assignee is the current user1568 creates a todo for each valid mentioned user1569 creates a todo for each valid user based on the type of mention1570 creates a directly addressed todo for each valid addressed user1571 #update_merge_request1572 creates a todo for each valid mentioned user not included in skip_users1573 creates a todo for each valid user not included in skip_users based on the type of mention1574 creates a directly addressed todo for each valid addressed user not included in skip_users1575 does not create a todo if user was already mentioned and todo is pending1576 does not create a todo if user was already mentioned and todo is done1577 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending1578 does not create a directly addressed todo if user was already mentioned or addressed and todo is done1579 with a task list1580 does not create todo when tasks are marked as completed1581 does not create directly addressed todo when tasks are marked as completed1582 does not raise an error when description not change1583 #close_merge_request1584 marks related pending todos to the target for the user as done1585 #merge_merge_request1586 marks related pending todos to the target for the user as done1587 does not create todo for guests1588 does not create directly addressed todo for guests1589 #new_award_emoji1590 marks related pending todos to the target for the user as done1591 #merge_request_build_failed1592 creates a pending todo for each merge_participant1593 #merge_request_push1594 marks related pending todos to the target for the user as done1595 #merge_request_became_unmergeable1596 creates a pending todo for each merge_participant1597 #mark_todo1598 creates a todo from a merge request1599 #new_note1600 creates a todo for mentioned user on new diff note1601 creates a directly addressed todo for addressed user on new diff note1602 creates a todo for mentioned user on legacy diff note1603 does not create todo for guests1604 #update_note1605 creates a todo for each valid mentioned user not included in skip_users1606 creates a todo for each valid user not included in skip_users based on the type of mention1607 creates a directly addressed todo for each valid addressed user not included in skip_users1608 does not create a todo if user was already mentioned and todo is pending1609 does not create a todo if user was already mentioned and todo is done1610 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending1611 does not create a directly addressed todo if user was already mentioned or addressed and todo is done1612 #mark_todos_as_done1613 marks a relation of todos as done1614 marks an array of todos as done1615 returns the ids of updated todos1616 when some of the todos are done already1617 returns the ids of those still pending1618 returns an empty array if all are done1619 #mark_todos_as_done_by_ids1620 marks an array of todo ids as done1621 marks a single todo id as done1622 caches the number of todos of a user1623HasStatus1624 .slow_composite_status1625 ci_composite_status: false1626 ci build statuses1627 behaves like build status summary1628 all successful1629 should eq "success"1630 at least one failed1631 should eq "failed"1632 at least one running1633 should eq "running"1634 at least one pending1635 should eq "running"1636 all preparing1637 should eq "preparing"1638 at least one preparing1639 should eq "preparing"1640 success and failed but allowed to fail1641 should eq "success"1642 one failed but allowed to fail1643 should eq "success"1644 success and canceled1645 should eq "canceled"1646 one failed and one canceled1647 should eq "failed"1648 one failed but allowed to fail and one canceled1649 should eq "canceled"1650 one running one canceled1651 should eq "running"1652 all canceled1653 should eq "canceled"1654 success and canceled but allowed to fail1655 should eq "success"1656 one finished and second running but allowed to fail1657 should eq "running"1658 when one status finished and second is still created1659 should eq "running"1660 when there is a manual status before created status1661 should eq "manual"1662 when one status is a blocking manual action1663 should eq "manual"1664 when one status is a non-blocking manual action1665 should eq "failed"1666 generic commit statuses1667 behaves like build status summary1668 all successful1669 should eq "success"1670 at least one failed1671 should eq "failed"1672 at least one running1673 should eq "running"1674 at least one pending1675 should eq "running"1676 all preparing1677 should eq "preparing"1678 at least one preparing1679 should eq "preparing"1680 success and failed but allowed to fail1681 should eq "success"1682 one failed but allowed to fail1683 should eq "success"1684 success and canceled1685 should eq "canceled"1686 one failed and one canceled1687 should eq "failed"1688 one failed but allowed to fail and one canceled1689 should eq "canceled"1690 one running one canceled1691 should eq "running"1692 all canceled1693 should eq "canceled"1694 success and canceled but allowed to fail1695 should eq "success"1696 one finished and second running but allowed to fail1697 should eq "running"1698 when one status finished and second is still created1699 should eq "running"1700 when there is a manual status before created status1701 should eq "manual"1702 when one status is a blocking manual action1703 should eq "manual"1704 when one status is a non-blocking manual action1705 should eq "failed"1706 ci_composite_status: true1707 ci build statuses1708 behaves like build status summary1709 all successful1710 should eq "success"1711 at least one failed1712 should eq "failed"1713 at least one running1714 should eq "running"1715 at least one pending1716 should eq "running"1717 all preparing1718 should eq "preparing"1719 at least one preparing1720 should eq "preparing"1721 success and failed but allowed to fail1722 should eq "success"1723 one failed but allowed to fail1724 should eq "success"1725 success and canceled1726 should eq "canceled"1727 one failed and one canceled1728 should eq "failed"1729 one failed but allowed to fail and one canceled1730 should eq "canceled"1731 one running one canceled1732 should eq "running"1733 all canceled1734 should eq "canceled"1735 success and canceled but allowed to fail1736 should eq "success"1737 one finished and second running but allowed to fail1738 should eq "running"1739 when one status finished and second is still created1740 should eq "running"1741 when there is a manual status before created status1742 should eq "manual"1743 when one status is a blocking manual action1744 should eq "manual"1745 when one status is a non-blocking manual action1746 should eq "failed"1747 generic commit statuses1748 behaves like build status summary1749 all successful1750 should eq "success"1751 at least one failed1752 should eq "failed"1753 at least one running1754 should eq "running"1755 at least one pending1756 should eq "running"1757 all preparing1758 should eq "preparing"1759 at least one preparing1760 should eq "preparing"1761 success and failed but allowed to fail1762 should eq "success"1763 one failed but allowed to fail1764 should eq "success"1765 success and canceled1766 should eq "canceled"1767 one failed and one canceled1768 should eq "failed"1769 one failed but allowed to fail and one canceled1770 should eq "canceled"1771 one running one canceled1772 should eq "running"1773 all canceled1774 should eq "canceled"1775 success and canceled but allowed to fail1776 should eq "success"1777 one finished and second running but allowed to fail1778 should eq "running"1779 when one status finished and second is still created1780 should eq "running"1781 when there is a manual status before created status1782 should eq "manual"1783 when one status is a blocking manual action1784 should eq "manual"1785 when one status is a non-blocking manual action1786 should eq "failed"1787 for scope with one status1788 behaves like having a job1789 when it's created ci_build job1790 .created1791 contains the job1792 .relevant1793 contains nothing1794 when it's created generic_commit_status job1795 .created1796 contains the job1797 .relevant1798 contains nothing1799 behaves like having a job1800 when it's preparing ci_build job1801 .preparing1802 contains the job1803 .relevant1804 contains the job1805 when it's preparing generic_commit_status job1806 .preparing1807 contains the job1808 .relevant1809 contains the job1810 behaves like having a job1811 when it's running ci_build job1812 .running1813 contains the job1814 .relevant1815 contains the job1816 when it's running generic_commit_status job1817 .running1818 contains the job1819 .relevant1820 contains the job1821 behaves like having a job1822 when it's pending ci_build job1823 .pending1824 contains the job1825 .relevant1826 contains the job1827 when it's pending generic_commit_status job1828 .pending1829 contains the job1830 .relevant1831 contains the job1832 behaves like having a job1833 when it's success ci_build job1834 .success1835 contains the job1836 .relevant1837 contains the job1838 when it's success generic_commit_status job1839 .success1840 contains the job1841 .relevant1842 contains the job1843 behaves like having a job1844 when it's failed ci_build job1845 .failed1846 contains the job1847 .relevant1848 contains the job1849 when it's failed generic_commit_status job1850 .failed1851 contains the job1852 .relevant1853 contains the job1854 behaves like having a job1855 when it's canceled ci_build job1856 .canceled1857 contains the job1858 .relevant1859 contains the job1860 when it's canceled generic_commit_status job1861 .canceled1862 contains the job1863 .relevant1864 contains the job1865 behaves like having a job1866 when it's skipped ci_build job1867 .skipped1868 contains the job1869 .relevant1870 contains the job1871 when it's skipped generic_commit_status job1872 .skipped1873 contains the job1874 .relevant1875 contains the job1876 for scope with more statuses1877 .running_or_pending1878 behaves like containing the job1879 when it's running ci_build job1880 contains the job1881 when it's running generic_commit_status job1882 contains the job1883 behaves like containing the job1884 when it's pending ci_build job1885 contains the job1886 when it's pending generic_commit_status job1887 contains the job1888 behaves like not containing the job1889 when it's created ci_build job1890 contains nothing1891 when it's created generic_commit_status job1892 contains nothing1893 behaves like not containing the job1894 when it's failed ci_build job1895 contains nothing1896 when it's failed generic_commit_status job1897 contains nothing1898 behaves like not containing the job1899 when it's success ci_build job1900 contains nothing1901 when it's success generic_commit_status job1902 contains nothing1903 .alive1904 behaves like containing the job1905 when it's running ci_build job1906 contains the job1907 when it's running generic_commit_status job1908 contains the job1909 behaves like containing the job1910 when it's pending ci_build job1911 contains the job1912 when it's pending generic_commit_status job1913 contains the job1914 behaves like containing the job1915 when it's preparing ci_build job1916 contains the job1917 when it's preparing generic_commit_status job1918 contains the job1919 behaves like containing the job1920 when it's created ci_build job1921 contains the job1922 when it's created generic_commit_status job1923 contains the job1924 behaves like not containing the job1925 when it's failed ci_build job1926 contains nothing1927 when it's failed generic_commit_status job1928 contains nothing1929 behaves like not containing the job1930 when it's success ci_build job1931 contains nothing1932 when it's success generic_commit_status job1933 contains nothing1934 .alive_or_scheduled1935 behaves like containing the job1936 when it's running ci_build job1937 contains the job1938 when it's running generic_commit_status job1939 contains the job1940 behaves like containing the job1941 when it's pending ci_build job1942 contains the job1943 when it's pending generic_commit_status job1944 contains the job1945 behaves like containing the job1946 when it's preparing ci_build job1947 contains the job1948 when it's preparing generic_commit_status job1949 contains the job1950 behaves like containing the job1951 when it's created ci_build job1952 contains the job1953 when it's created generic_commit_status job1954 contains the job1955 behaves like containing the job1956 when it's scheduled ci_build job1957 contains the job1958 when it's scheduled generic_commit_status job1959 contains the job1960 behaves like not containing the job1961 when it's failed ci_build job1962 contains nothing1963 when it's failed generic_commit_status job1964 contains nothing1965 behaves like not containing the job1966 when it's success ci_build job1967 contains nothing1968 when it's success generic_commit_status job1969 contains nothing1970 behaves like not containing the job1971 when it's canceled ci_build job1972 contains nothing1973 when it's canceled generic_commit_status job1974 contains nothing1975 behaves like not containing the job1976 when it's skipped ci_build job1977 contains nothing1978 when it's skipped generic_commit_status job1979 contains nothing1980 .created_or_pending1981 behaves like containing the job1982 when it's created ci_build job1983 contains the job1984 when it's created generic_commit_status job1985 contains the job1986 behaves like containing the job1987 when it's pending ci_build job1988 contains the job1989 when it's pending generic_commit_status job1990 contains the job1991 behaves like not containing the job1992 when it's running ci_build job1993 contains nothing1994 when it's running generic_commit_status job1995 contains nothing1996 behaves like not containing the job1997 when it's failed ci_build job1998 contains nothing1999 when it's failed generic_commit_status job2000 contains nothing2001 behaves like not containing the job2002 when it's success ci_build job2003 contains nothing2004 when it's success generic_commit_status job2005 contains nothing2006 .finished2007 behaves like containing the job2008 when it's success ci_build job2009 contains the job2010 when it's success generic_commit_status job2011 contains the job2012 behaves like containing the job2013 when it's failed ci_build job2014 contains the job2015 when it's failed generic_commit_status job2016 contains the job2017 behaves like containing the job2018 when it's canceled ci_build job2019 contains the job2020 when it's canceled generic_commit_status job2021 contains the job2022 behaves like not containing the job2023 when it's created ci_build job2024 contains nothing2025 when it's created generic_commit_status job2026 contains nothing2027 behaves like not containing the job2028 when it's running ci_build job2029 contains nothing2030 when it's running generic_commit_status job2031 contains nothing2032 behaves like not containing the job2033 when it's pending ci_build job2034 contains nothing2035 when it's pending generic_commit_status job2036 contains nothing2037 .cancelable2038 behaves like containing the job2039 when it's running ci_build job2040 contains the job2041 when it's running generic_commit_status job2042 contains the job2043 behaves like containing the job2044 when it's pending ci_build job2045 contains the job2046 when it's pending generic_commit_status job2047 contains the job2048 behaves like containing the job2049 when it's preparing ci_build job2050 contains the job2051 when it's preparing generic_commit_status job2052 contains the job2053 behaves like containing the job2054 when it's created ci_build job2055 contains the job2056 when it's created generic_commit_status job2057 contains the job2058 behaves like containing the job2059 when it's scheduled ci_build job2060 contains the job2061 when it's scheduled generic_commit_status job2062 contains the job2063 behaves like not containing the job2064 when it's failed ci_build job2065 contains nothing2066 when it's failed generic_commit_status job2067 contains nothing2068 behaves like not containing the job2069 when it's success ci_build job2070 contains nothing2071 when it's success generic_commit_status job2072 contains nothing2073 behaves like not containing the job2074 when it's skipped ci_build job2075 contains nothing2076 when it's skipped generic_commit_status job2077 contains nothing2078 behaves like not containing the job2079 when it's canceled ci_build job2080 contains nothing2081 when it's canceled generic_commit_status job2082 contains nothing2083 behaves like not containing the job2084 when it's manual ci_build job2085 contains nothing2086 when it's manual generic_commit_status job2087 contains nothing2088 .manual2089 behaves like containing the job2090 when it's manual ci_build job2091 contains the job2092 when it's manual generic_commit_status job2093 contains the job2094 behaves like not containing the job2095 when it's failed ci_build job2096 contains nothing2097 when it's failed generic_commit_status job2098 contains nothing2099 behaves like not containing the job2100 when it's success ci_build job2101 contains nothing2102 when it's success generic_commit_status job2103 contains nothing2104 behaves like not containing the job2105 when it's skipped ci_build job2106 contains nothing2107 when it's skipped generic_commit_status job2108 contains nothing2109 behaves like not containing the job2110 when it's canceled ci_build job2111 contains nothing2112 when it's canceled generic_commit_status job2113 contains nothing2114 .scheduled2115 behaves like containing the job2116 when it's scheduled ci_build job2117 contains the job2118 when it's scheduled generic_commit_status job2119 contains the job2120 behaves like not containing the job2121 when it's failed ci_build job2122 contains nothing2123 when it's failed generic_commit_status job2124 contains nothing2125 behaves like not containing the job2126 when it's success ci_build job2127 contains nothing2128 when it's success generic_commit_status job2129 contains nothing2130 behaves like not containing the job2131 when it's skipped ci_build job2132 contains nothing2133 when it's skipped generic_commit_status job2134 contains nothing2135 behaves like not containing the job2136 when it's canceled ci_build job2137 contains nothing2138 when it's canceled generic_commit_status job2139 contains nothing2140 ::DEFAULT_STATUS2141 is a status created2142 ::BLOCKED_STATUS2143 is a status manual2144 blocked?2145 when status is scheduled2146 should be truthy2147 when status is manual2148 should be truthy2149 when status is created2150 should be falsy2151 when status is scheduled2152 should be truthy2153 when status is manual2154 should be truthy2155 when status is created2156 should be falsy2157 when status is scheduled2158 should be truthy2159 when status is manual2160 should be truthy2161 when status is created2162 should be falsy2163 when status is scheduled2164 should be truthy2165 when status is manual2166 should be truthy2167 when status is created2168 should be falsy2169 .legacy_status_sql2170 returns SQL2171Note2172 associations2173 should belong to project required:2174 should belong to noteable required:2175 should belong to author class_name => User required:2176 should have many todos2177 modules2178 should includes the Participable module2179 should includes the Mentionable module2180 should includes the Awardable module2181 validation2182 should validate that the length of :note is at most 10000002183 should validate that :note cannot be empty/falsy2184 should validate that :project cannot be empty/falsy2185 when note is on commit2186 should validate that :commit_id cannot be empty/falsy2187 should not validate that :noteable_id cannot be empty/falsy2188 when note is not on commit2189 should not validate that :commit_id cannot be empty/falsy2190 should validate that :noteable_id cannot be empty/falsy2191 when noteable and note project differ2192 should be invalid2193 when noteable and note project are the same2194 should be valid2195 when project is missing for a project related note2196 should be invalid2197 when noteable is a personal snippet2198 is valid without project2199 max notes limit2200 when creating a system note2201 should be valid2202 when creating a user note2203 should not be valid2204 when updating an existing note on a noteable that already exceeds the limit2205 should be valid2206 Commit notes2207 is accessible through #noteable2208 saves a valid note2209 is recognized by #for_commit?2210 keeps the commit around2211 does not generate N+1 queries for participants2212 authorization2213 read2214 should be falsey2215 should be truthy2216 should be falsey2217 write2218 should be falsey2219 should be truthy2220 should be falsey2221 admin2222 should be falsey2223 should be truthy2224 should be falsey2225 behaves like an editable mentionable2226 creates new cross-reference notes when the mentionable text is edited2227 behaves like a mentionable2228 generates a descriptive back-reference2229 extracts references from its reference property2230 creates cross-reference notes2231 when there are cached markdown fields2232 sends in cached markdown fields when appropriate2233 when there are cached markdown fields2234 refreshes markdown cache if necessary2235 #all_references2236 reads the rendered note body from the cache2237 editable?2238 returns true2239 returns false2240 edited?2241 with updated_by2242 returns true2243 without updated_by2244 returns false2245 confidential?2246 delegates to noteable2247 is falsey when noteable can't be confidential2248 cross_reference_not_visible_for?2249 when there is one reference in note2250 behaves like checks references2251 returns true2252 returns false2253 returns false if user visible reference count set2254 returns true if ref count is 02255 when there are two references in note2256 returns true if user visible reference count set and there is a private reference2257 behaves like checks references2258 returns true2259 returns false2260 returns false if user visible reference count set2261 returns true if ref count is 02262 #cross_reference?2263 falsey for user-generated notes2264 when the note might contain cross references2265 delegates to the cross-reference regex2266 delegates to the cross-reference regex2267 delegates to the cross-reference regex2268 delegates to the cross-reference regex2269 delegates to the cross-reference regex2270 delegates to the cross-reference regex2271 delegates to the cross-reference regex2272 delegates to the cross-reference regex2273 delegates to the cross-reference regex2274 delegates to the cross-reference regex2275 delegates to the cross-reference regex2276 delegates to the cross-reference regex2277 delegates to the cross-reference regex2278 delegates to the cross-reference regex2279 when the note cannot contain cross references2280 scan for a `mentioned in` prefix2281 clear_blank_line_code!2282 clears a blank line code before validation2283 #participants2284 includes the note author2285 .find_discussion2286 returns a discussion with multiple notes2287 .grouped_diff_discussions2288 active diff discussions2289 includes active discussions2290 doesn't include outdated discussions2291 groups the discussions by line code2292 with image discussions2293 groups image discussions by file identifier2294 groups text discussions by line code2295 diff discussions for older diff refs2296 for diff refs a discussion was created at2297 includes discussions that were created then2298 groups the discussions by original line code2299 for diff refs a discussion was last active at2300 includes discussions that were last active2301 groups the discussions by line code2302 #for_personal_snippet?2303 returns false for a project snippet note2304 returns true for a personal snippet note2305 #to_ability_name2306 returns snippet for a project snippet note2307 returns personal_snippet for a personal snippet note2308 returns merge_request for an MR note2309 returns issue for an issue note2310 returns issue for a commit note2311 #cache_markdown_field2312 note for a project snippet2313 creates a note2314 note for a personal snippet2315 creates a note2316 #can_be_discussion_note?2317 for a note on a merge request2318 returns true2319 for a note on an issue2320 returns true2321 for a note on a commit2322 returns true2323 for a note on a snippet2324 returns true2325 for a diff note on merge request2326 returns false2327 for a diff note on commit2328 returns false2329 for a discussion note2330 returns false2331 #discussion_class2332 when the note is displayed out of context2333 returns OutOfContextDiscussion2334 when the note is displayed in the original context2335 returns IndividualNoteDiscussion2336 #discussion_id2337 when it is newly created2338 has a discussion id2339 when it didn't store a discussion id before2340 has a discussion id2341 when the note is displayed out of context2342 overrides the discussion id2343 #to_discussion2344 returns a discussion with just this note2345 #discussion2346 when the note is part of a discussion2347 returns the discussion this note is in2348 when the note is not part of a discussion2349 returns a discussion with just this note2350 #part_of_discussion?2351 for a regular note2352 returns false2353 for a diff note2354 returns true2355 for a discussion note2356 returns true2357 #in_reply_to?2358 for a note2359 when part of a discussion2360 checks if the note is in reply to the other discussion2361 when not part of a discussion2362 checks if the note is in reply to the other noteable2363 for a discussion2364 when part of the same discussion2365 returns true2366 when not part of the same discussion2367 returns false2368 for a noteable2369 when a comment on the same noteable2370 returns true2371 when not a comment on the same noteable2372 returns false2373 #references2374 when part of a discussion2375 references all earlier notes in the discussion2376 when not part of a discussion2377 returns the noteable2378 expiring ETag cache2379 expires cache for note's issue when note is saved2380 expires cache for note's issue when note is destroyed2381 when issuable etag caching is disabled2382 does not store cache key2383 #with_notes_filter2384 when notes filter is nil2385 should include #<Note id: 158, note: "My title 417", noteable_type: "Issue", author_id: 1433, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil> and #<Note id: 159, note: "My title 419", noteable_type: "Issue", author_id: 1434, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2386 when notes filter is set to all notes2387 should include #<Note id: 160, note: "My title 421", noteable_type: "Issue", author_id: 1435, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil> and #<Note id: 161, note: "My title 423", noteable_type: "Issue", author_id: 1436, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2388 when notes filter is set to only comments2389 should include #<Note id: 162, note: "My title 425", noteable_type: "Issue", author_id: 1437, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2390 should not include #<Note id: 165, note: "My title 431", noteable_type: "Issue", author_id: 1440, created_at: "2019-10-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2391 #special_role=2392 assigns role2393 does not assign unknown role2394 #parent2395 returns project for project notes2396 returns nil for personal snippet note2397 scopes2398 #for_note_or_capitalized_note2399 returns the expected matching note2400 returns the expected capitalized note2401 does not support pattern matching2402 #like_note_or_capitalized_note2403 returns the expected matching note2404 returns the expected capitalized note2405 supports pattern matching2406Gitlab::ImportExport::ProjectTreeRestorer2407 restore project tree2408 JSON2409 restores models based on JSON2410 restore correct project features2411 has the project description2412 has the same label associated to two issues2413 has milestones associated to two separate issues2414 creates a valid pipeline note2415 pipeline has the correct user ID2416 restores pipelines with missing ref2417 restores pipeline for merge request2418 preserves updated_at on issues2419 has multiple issue assignees2420 contains the merge access levels on a protected branch2421 contains the push access levels on a protected branch2422 contains the create access levels on a protected tag2423 restores issue resource label events2424 restores merge requests resource label events2425 restores suggestion2426 has the correct data for merge request diff files2427 has the correct data for merge request diff commits2428 has the correct data for merge request latest_merge_request_diff2429 has labels associated to label links, associated to issues2430 has project labels2431 has no group labels2432 has issue boards2433 has lists associated with the issue board2434 has a project feature2435 has custom attributes2436 has badges2437 restores the correct service2438 when importing a project with cached_markdown_version and note_html2439 for an Issue2440 does not import note_html2441 for a Merge Request2442 does not import note_html2443 event at forth level of the tree2444 restores the event2445 has the action2446 event belongs to note, belongs to merge request, belongs to a project2447 Merge requests2448 always has the new project as a target2449 has the same source project as originally if source/target are the same2450 has the new project as target if source/target differ2451 has no source if source/target differ2452 tokens are regenerated2453 has new CI trigger tokens2454 has a new CI build token2455 has restored the correct number of records2456 has the correct number of merge requests2457 only restores valid triggers2458 has the correct number of pipelines and statuses2459 when restoring hierarchy of pipeline, stages and jobs2460 restores pipelines2461 restores pipeline stages2462 correctly restores association between stage and a pipeline2463 restores statuses2464 correctly restores association between a stage and a job2465 correctly restores association between a pipeline and a job2466 Light JSON2467 with a simple project2468 behaves like restores project correctly2469 restores the project2470 has labels2471 has label priorities2472 has milestones2473 has issues2474 does not set params that are excluded from import_export settings2475 project.json file access check2476 does not read a symlink2477 when there is an existing build with build token2478 behaves like restores project correctly2479 restores the project2480 has labels2481 has label priorities2482 has milestones2483 has issues2484 does not set params that are excluded from import_export settings2485 when the project has overridden params in import data2486 handles string versions of visibility_level2487 overwrites the params stored in the JSON2488 does not allow setting params that are excluded from import_export settings2489 overrides project feature access levels2490 with a project that has a group2491 behaves like restores project correctly2492 restores the project2493 has labels2494 has label priorities2495 has milestones2496 has issues2497 does not set params that are excluded from import_export settings2498 behaves like restores group correctly2499 has group label2500 has group milestone2501 has the correct visibility level2502 with existing group models2503 does not import any templated services2504 imports labels2505 imports milestones2506 with clashing milestones on IID2507 preserves the project milestone IID2508 with external authorization classification labels2509 converts empty external classification authorization labels to nil2510 preserves valid external classification authorization labels2511 Minimal JSON2512 no group visibility2513 uses the project visibility2514 with restricted internal visibility2515 internal project2516 uses private visibility2517 with group visibility2518 private group visibility2519 uses the group visibility2520 public group visibility2521 uses the project visibility2522 internal group visibility2523 uses the group visibility2524 with restricted internal visibility2525 sets private visibility2526PipelineSerializer2527 #represent2528 when used without pagination2529 created a not paginated serializer2530 when a single object is being serialized2531 serializers the pipeline object2532 when multiple objects are being serialized2533 serializers the array of pipelines2534 when used with pagination2535 created a paginated serializer2536 when resource is not paginatable2537 when a single pipeline object is being serialized2538 raises error2539 when resource is paginatable relation2540 when a single pipeline object is present in relation2541 serializes pipeline relation2542 when a multiple pipeline objects are being serialized2543 serializes appropriate number of objects2544 appends relevant headers2545 when there are pipelines for merge requests2546 includes merge requests information2547 preloads related merge requests2548 number of queries when preloaded2549 with the same ref2550 verifies number of queries2551 with different refs2552 verifies number of queries2553 #represent_status2554 when represents only status2555 serializes only status2556Suggestions::ApplyService2557 patch is appliable2558 non-fork project2559 behaves like successfully creates commit and updates suggestion2560 updates the file with the new contents2561 updates suggestion applied and commit_id columns2562 created commit has users email and name2563 when it fails to apply because the file was changed2564 returns error message2565 when HEAD from position is different from source branch HEAD on repo2566 returns error message2567 multiple suggestions applied2568 applies multiple suggestions in subsequent versions correctly2569 multi-line suggestion2570 behaves like successfully creates commit and updates suggestion2571 updates the file with the new contents2572 updates suggestion applied and commit_id columns2573 created commit has users email and name2574 remove an empty line suggestion2575 behaves like successfully creates commit and updates suggestion2576 updates the file with the new contents2577 updates suggestion applied and commit_id columns2578 created commit has users email and name2579 fork-project2580 updates file in the source project2581 no permission2582 user cannot write in project repo2583 returns error2584 patch is not appliable2585 diff file was not found2586 returns error message2587 suggestion is eligible to be outdated2588 returns error message2589 suggestion was already applied2590 returns success status2591 note is outdated2592 returns error message2593 suggestion was already applied2594 returns error message2595ProjectWiki2596 should delegate #repository_storage to the #project object2597 should delegate #hashed_storage? to the #project object2598 #full_path2599 returns the project path with namespace with the .wiki extension2600 returns the same value as #full_path2601 #web_url2602 returns the full web URL to the wiki2603 #url_to_repo2604 returns the correct ssh url to the repo2605 #ssh_url_to_repo2606 equals #url_to_repo2607 #http_url_to_repo2608 returns the full http url to the repo2609 #wiki_base_path2610 returns the wiki base path2611 #wiki2612 contains a Gitlab::Git::Wiki instance2613 creates a new wiki repo if one does not yet exist2614 creates a new wiki repo with a default commit message2615 raises CouldNotCreateWikiError if it can't create the wiki repository2616 #empty?2617 when the wiki repository is empty2618 #empty?2619 should be truthy2620 when the wiki has pages2621 #empty?2622 should be falsey2623 only instantiates a Wiki page once2624 #list_pages2625 returns an array of WikiPage instances2626 does not load WikiPage content by default2627 returns all pages by default2628 with limit option2629 returns limited set of pages2630 with sorting options2631 returns pages sorted by title by default2632 returns pages sorted by created_at2633 with load_content option2634 loads WikiPage content2635 #find_page2636 returns the latest version of the page if it exists2637 returns nil if the page does not exist2638 can find a page by slug2639 returns a WikiPage instance2640 pages with multibyte-character title2641 can find a page by slug2642 pages with invalidly-encoded content2643 can find the page2644 #find_sidebar2645 finds the page defined as _sidebar2646 #find_file2647 returns the latest version of the file if it exists2648 returns nil if the page does not exist2649 returns a Gitlab::Git::WikiFile instance2650 returns the whole file2651 #create_page2652 creates a new wiki page2653 returns false when a duplicate page exists2654 stores an error message when a duplicate page exists2655 sets the correct commit message2656 sets the correct commit email2657 updates project activity2658 #update_page2659 updates the content of the page2660 sets the correct commit message2661 sets the correct commit email2662 updates project activity2663 #delete_page2664 deletes the page2665 sets the correct commit email2666 updates project activity2667 #create_repo!2668 creates a repository2669 #ensure_repository2670 creates the repository if it not exist2671 does not create the repository if it exists2672 #hook_attrs2673 returns a hash with values2674Gitlab::UsageData2675 #data2676unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.2677unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.2678 gathers usage data2679 gathers usage counts2680 gathers projects data correctly2681 works when queries time out2682 #usage_data_counters2683 should all respond to #totals2684 does not have any conflicts2685 the results of calling #totals on all objects in the array2686 should all be a kind of Hash2687 should all have attributes {:keys => (all be a kind of Symbol), :values => (all be a kind of Integer)}2688 #features_usage_data_ce2689 gathers feature usage data2690 #components_usage_data2691 gathers components usage data2692 #license_usage_data2693 gathers license data2694 #count2695 returns the count when counting succeeds2696 returns the count for count_by when provided2697 returns the fallback value when counting fails2698 #approximate_counts2699 gets approximate counts for selected models2700 returns default values if counts can not be retrieved2701Gitlab::Email::Handler::CreateMergeRequestHandler2702 behaves like reply_processing_shared_examples2703 when the user could not be found2704 raises a UserNotFoundError2705 when the user is not authorized to the project2706 raises a ProjectNotFound2707 when email key2708 matches the new format2709 matches the legacy format2710 doesn't match either format2711 as a non-developer2712 raises UserNotAuthorizedError if the user is not a member2713 as a developer2714 when everything is fine2715 behaves like a new merge request2716 creates a new merge request2717 creates a new merge request with legacy email address2718 behaves like a new merge request2719 creates a new merge request2720 something is wrong2721 when the merge request could not be saved2722 raises an InvalidMergeRequestError2723 when we can't find the incoming_email_token2724 raises an UserNotFoundError2725 when the subject is blank2726 raises an InvalidMergeRequestError2727 when the message body is blank2728 creates a new merge request with description set from the last commit2729 when the email contains patch attachments2730 creates the source branch and applies the patches2731 creates the merge request2732 does not mention the patches in the created merge request2733 when the patch could not be applied2734 raises an error2735 when specifying the target branch using quick actions2736 creates the merge request with the correct target branch2737 based the merge request of the target_branch2738 #patch_attachments2739 orders attachments ending in `.patch` by name2740CycleAnalytics#review2741 start condition: merge request that closes issue is created2742 end condition: merge request that closes issue is merged2743 finds the median of available durations between the two conditions2744 when the data belongs to another project2745 returns nil2746 when the end condition happens before the start condition2747 returns nil2748 start condition NOT PRESENT: merge request that closes issue is created2749 end condition: merge request that closes issue is merged2750 returns nil2751 start condition: merge request that closes issue is created2752 end condition NOT PRESENT: merge request that closes issue is merged2753 returns nil2754 when none of the start / end conditions are matched2755 returns nil2756 when a regular merge request (that doesn't close the issue) is created and merged2757 returns nil2758SentNotification2759 validation2760 note validity2761 when the project doesn't match the noteable's project2762 is invalid2763 when the project doesn't match the discussion project2764 is invalid2765 when the noteable project and discussion project match2766 is valid2767 .record2768 behaves like a successful sent notification2769 creates a new SentNotification2770 .record_note2771 for a discussion note2772 sets in_reply_to_discussion_id2773 behaves like a successful sent notification2774 creates a new SentNotification2775 for an individual note2776 does not set in_reply_to_discussion_id2777 behaves like a successful sent notification2778 creates a new SentNotification2779 #unsubscribable?2780 behaves like an unsubscribable notification2781 for issue2782 should be unsubscribable2783 behaves like an unsubscribable notification2784 for merge request2785 should be unsubscribable2786 behaves like a non-unsubscribable notification2787 for a commit2788 should not be unsubscribable2789 behaves like a non-unsubscribable notification2790 for a personal snippet2791 should not be unsubscribable2792 behaves like a non-unsubscribable notification2793 for a project snippet2794 should not be unsubscribable2795 #for_commit?2796 behaves like a non-commit notification2797 for a issue2798 should not be for commit2799 behaves like a non-commit notification2800 for a merge request2801 should not be for commit2802 behaves like a commit notification2803 for commit2804 should be for commit2805 behaves like a non-commit notification2806 for a personal snippet2807 should not be for commit2808 behaves like a non-commit notification2809 for a project snippet2810 should not be for commit2811 #for_snippet?2812 behaves like a non-snippet notification2813 for a issue2814 should not be for snippet2815 behaves like a non-snippet notification2816 for a merge request2817 should not be for snippet2818 behaves like a non-snippet notification2819 for a commit2820 should not be for snippet2821 behaves like a snippet notification2822 for personal snippet2823 should be for snippet2824 behaves like a snippet notification2825 for project snippet2826 should be for snippet2827 #create_reply2828 for issue2829 creates a comment on the issue2830 for issue comment2831 creates a comment on the issue2832 for issue discussion2833 creates a reply on the discussion2834 for merge request2835 creates a comment on the merge_request2836 for merge request comment2837 creates a comment on the merge request2838 for merge request diff discussion2839 creates a reply on the discussion2840 for merge request non-diff discussion2841 creates a reply on the discussion2842 for commit2843 creates a comment on the commit2844 for commit comment2845 creates a comment on the commit2846 for commit diff discussion2847 creates a reply on the discussion2848 for commit non-diff discussion2849 creates a reply on the discussion2850WaitableWorker2851 .bulk_perform_and_wait2852 schedules the jobs and waits for them to complete2853 inlines workloads <= 3 jobs2854 runs > 3 jobs using sidekiq2855 .bulk_perform_inline2856 runs the jobs inline2857 enqueues jobs if an error is raised2858 #perform2859 when the worker takes arguments2860 behaves like perform2861 notifies the JobWaiter when done if the key is provided2862 does not notify the JobWaiter when done if no key is provided2863 when the worker takes no arguments2864 behaves like perform2865 notifies the JobWaiter when done if the key is provided2866 does not notify the JobWaiter when done if no key is provided2867Gitlab::Gpg2868 .fingerprints_from_key2869 returns CurrentKeyChain.fingerprints_from_key2870 .primary_keyids_from_key2871 returns the keyid2872 returns an empty array when the key is invalid2873 .subkeys_from_key2874 returns the subkeys by primary key2875 returns an empty array when there are not subkeys2876 .user_infos_from_key2877 returns the names and emails2878 returns an empty array when the key is invalid2879 downcases the email2880 rejects non UTF-8 names and addresses2881 .current_home_dir2882 returns the default value when no explicit home dir has been set2883 returns the explicitly set home dir2884 returns the default value when explicitly setting the home dir to nil2885 .using_tmp_keychain2886 the second thread does not change the first thread's directory2887 allows recursive execution in the same thread2888Gitlab::Gpg::CurrentKeyChain2889 .add2890 stores the key in the keychain2891 .fingerprints_from_key2892 returns the fingerprint2893 returns an empty array when the key is invalid2894NotificationRecipient2895 #notifiable?2896 when emails are disabled2897 returns false if group disabled2898 returns false if project disabled2899 when emails are enabled2900 returns true if group enabled2901 returns true if project enabled2902 #has_access?2903 user cannot read cross project2904 returns false2905 user cannot read build2906 returns false2907 user cannot read commit2908 returns false2909 target has no policy2910 returns true2911 #notification_setting2912 for child groups2913 when notification setting is global2914 considers notification setting from the first parent without global setting2915 when notification setting is not global2916 considers notification setting from lowest group member in hierarchy2917 #suitable_notification_level?2918 when notification level is mention2919 when type is mention2920 returns true2921 when type is not mention2922 returns false2923 when notification level is participating2924 when type is participating2925 returns true2926 when type is mention2927 returns true2928 with custom action2929 when action is failed_pipeline2930 returns true2931 when action is not failed_pipeline2932 returns false2933 when notification level is custom2934 when type is participating2935 with custom event enabled2936 returns true2937 without custom event enabled2938 returns true2939 when type is mention2940 with custom event enabled2941 returns true2942 without custom event enabled2943 returns true2944 when type is watch2945 with custom event enabled2946 returns true2947 without custom event enabled2948 returns false2949 when notification level is watch2950 when type is watch2951 without excluded watcher events2952 returns true2953 with excluded watcher events2954 returns false2955 when type is not watch2956 without excluded watcher events2957 returns true2958 with excluded watcher events2959 returns true2960BackportEnterpriseSchema2961NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping2962NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2963NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2964 #up2965NOTICE: table "design_management_designs" does not exist, skipping2966NOTICE: table "design_management_designs_versions" does not exist, skipping2967NOTICE: table "design_management_versions" does not exist, skipping2968 creates new EE tables2969 missing EE columns2970 flags an error2971NOTICE: table "design_management_designs" does not exist, skipping2972NOTICE: table "design_management_designs_versions" does not exist, skipping2973NOTICE: table "design_management_versions" does not exist, skipping2974NOTICE: table "geo_container_repository_updated_events" does not exist, skipping2975NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2976NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2977NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping2978GlobalMilestone2979 .build_collection2980 when building a collection of milestones2981 has all project milestones2982 has all project milestones titles2983 has all project milestones2984 sorts collection by due date2985 filters milestones by search_title when params[:search_title] is present2986 when adding new milestones2987 does not add more queries2988 .states_count2989 when the projects have milestones2990 returns the quantity of global milestones and group milestones in each possible state2991 returns the quantity of global milestones in each possible state2992 when the projects do not have milestones2993 returns 0 as the quantity of global milestones in each state2994 #initialize2995 has exactly one group milestone2996 has all project milestones with the same title2997 #safe_title2998 strips out slashes and spaces2999 #state3000 when at least one milestone is active3001 returns active3002 when all milestones are closed3003 returns closed3004Gitlab::ImportExport::MembersMapper3005 map members3006 includes the exported user ID in the map3007 maps a project member3008 defaults to importer project member if it does not exist3009 has invited members with no user3010 authorizes the users to the project3011 maps an owner as a maintainer3012 removes old user_id from member_hash to avoid conflict with user key3013 user is not an admin3014 does not map a project member3015 defaults to importer project member if it does not exist3016 chooses the one with an email first3017 maps the project member that has a matching email first3018 importer same as group member3019 maps the project member3020 maps the project member if it already exists3021 importing group members3022 maps the importer3023 maps the group member3024 when importer mapping fails3025 includes importer specific error message3026Gitlab::Chat::Command3027 #try_create_pipeline3028 returns nil when the command is not valid3029 tries to create the pipeline when a command is valid3030 #create_pipeline3031 creates the pipeline3032 creates the chat data for the pipeline3033 stores the chat name ID in the chat data3034 stores the response URL in the chat data3035 creates the environment variables for the pipeline3036Gitlab::ImportExport::AfterExportStrategies::BaseAfterExportStrategy3037 #execute3038 returns if project exported file is not found3039 creates a lock file in the export dir3040 when the method succeeds3041 removes the lock file3042 removes the archive path3043 when the method fails3044 when validation fails3045 does not create the lock file3046 does not execute main logic3047 logs validation errors in shared context3048 removes the archive path3049 when an exception is raised3050 removes the lock3051 #log_validation_errors3052 add the message to the shared context3053 #to_json3054 adds the current strategy class to the serialized attributes3055Git::TagHooksService3056 System hooks3057 Executes system hooks3058 Webhooks3059 executes hooks on the project3060 Pipelines3061 creates a new pipeline3062 Push data3063 annotated tag3064 has expected push data attributes3065 with repository data3066 has expected repository attributes3067 with commits3068 should be a kind of Array3069 has 1 element3070 the commit3071 should include {:timestamp => "2014-02-27T09:01:38Z"}3072 has expected commit attributes3073 with an author3074 has expected author attributes3075 lightweight tag3076 has expected push data attributes3077 with repository data3078 has expected repository attributes3079 with commits3080 should be a kind of Array3081 has 1 element3082 the commit3083 should include {:timestamp => "2014-02-27T09:01:38Z"}3084 has expected commit attributes3085 with an author3086 has expected author attributes3087RemoveRedundantPipelineStages3088NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3089NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3090NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3091NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping3092 removes ambiguous stages and preserves builds3093 retries when incorrectly added index exception is caught3094 does not retry when unknown exception is being raised3095NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping3096NOTICE: table "design_management_designs" does not exist, skipping3097NOTICE: table "design_management_designs_versions" does not exist, skipping3098NOTICE: table "design_management_versions" does not exist, skipping3099NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3100NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3101NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3102NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3103Gitlab::BackgroundMigration::BackfillProjectRepositories3104 Gitlab::BackgroundMigration::BackfillProjectRepositories::ShardFinder3105 #find_shard_id3106 creates a new shard when it does not exist yet3107 returns the shard when it exists3108 only queries the database once to retrieve shards3109 Gitlab::BackgroundMigration::BackfillProjectRepositories::Project3110 .on_hashed_storage3111 finds projects with repository on hashed storage3112 .on_legacy_storage3113 finds projects with repository on legacy storage3114 .without_project_repository3115 finds projects which do not have a projects_repositories entry3116 #disk_path3117 for projects on hashed storage3118 returns the correct disk_path3119 for projects on legacy storage3120 returns the correct disk_path3121 returns the correct disk_path using the route entry3122 raises OrphanedNamespaceError when any parent namespace does not exist3123Milestones::DestroyService3124 #execute3125 deletes milestone3126 deletes milestone id from issuables3127 logs destroy event3128 group milestones3129 should eq #<Milestone id:119 %"My title 576">3130 deletes milestone id from issuables3131 does not log destroy event3132 when a release is tied to a milestone3133 destroys the milestone but not the associated release3134Gitlab::Ci::Trace::ChunkedIO3135 #initialize3136 when a chunk exists3137 should eq 33138 when two chunks exist3139 should eq 63140 when no chunks exists3141 should eq 03142 #seek3143 when moves pos to end of the file3144 should eq 1927113145 when moves pos to middle of the file3146 should eq 963553147 when moves pos around3148 matches the result3149 #eof?3150 when current pos is at end of the file3151 should be truthy3152 when current pos is not at end of the file3153 should be falsey3154 #each_line3155 when buffer size is smaller than file size3156 yields lines3157 when buffer size is larger than file size3158 calls get_chunk only once3159 when buffer consist of many empty lines3160 yields lines3161 #read3162 when read the whole size3163 when buffer size is smaller than file size3164 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3165 when buffer size is larger than file size3166 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3167 when chunk is missing data3168 raises an error3169 when read only first 100 bytes3170 when buffer size is smaller than file size3171 reads a trace3172 when buffer size is larger than file size3173 reads a trace3174 when tries to read oversize3175 when buffer size is smaller than file size3176 reads a trace3177 when buffer size is larger than file size3178 reads a trace3179 when tries to read 0 bytes3180 when buffer size is smaller than file size3181 reads a trace3182 when buffer size is larger than file size3183 reads a trace3184 #readline3185 when buffer size is smaller than file size3186 behaves like all line matching3187 should eq "\e[0;m\n"3188 when buffer size is larger than file size3189 behaves like all line matching3190 should eq "\e[0;m\n"3191 when pos is at middle of the file3192 reads from pos3193 when chunk is missing data3194 raises an error3195 when utf-8 is being used3196 has known length3197 behaves like all line matching3198 should eq "\xF0\x9F\x98\xBA"3199 #write3200 when data does not exist3201 when buffer size is smaller than file size3202 behaves like writes a trace3203 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3204 when buffer size is larger than file size3205 behaves like writes a trace3206 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3207 when data already exists3208 when buffer size is smaller than file size3209 behaves like appends a trace3210 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3211 when buffer size is larger than file size3212 behaves like appends a trace3213 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3214 #truncate3215 when data does not exist3216 when buffer size is smaller than file size3217 behaves like truncates a trace3218 should eq "\e[0KRunnin"3219 when buffer size is larger than file size3220 behaves like truncates a trace3221 should eq "\e[0KRunnin"3222 #destroy!32232019-10-16T17:15:07.671Z 114 TID-gmxw3osgi WARN: {:message=>"The job does not have archived trace but going to be destroyed.", :job_id=>389}3224 deletes3225 when the job does not have archived trace32262019-10-16T17:15:07.723Z 114 TID-gmxw3osgi WARN: {:message=>"The job does not have archived trace but going to be destroyed.", :job_id=>389}3227 leaves a message in sidekiq log3228Gitlab::Database::RenameReservedPathsMigration::V1::RenameProjects3229 #projects_for_paths3230 searches using nested paths3231 includes the correct projects3232 #rename_projects3233 renames each project3234 invalidates the markdown cache of related projects3235 #rename_project3236 renames path & route for the project3237 tracks the rename3238 renames the folders for the project3239 #move_project_folders3240 moves the wiki & the repo3241 does not move the repositories when hashed storage is enabled3242 moves uploads3243 does not move uploads when hashed storage is enabled for attachments3244 moves pages3245 #move_repository3246 moves the repository for a project3247 #revert_renames3248 renames the routes back to the previous values3249 moves the repositories back to their original place3250 doesn't break when the project was renamed3251Gitlab::Diff::Highlight3252 #highlight3253 with a diff file3254 returns Gitlab::Diff::Line elements3255 does not modify "match" lines3256 highlights and marks unchanged lines3257 highlights and marks removed lines3258 highlights and marks added lines3259 when no diff_refs3260 when no inline diffs3261 behaves like without inline diffs3262 returns html escaped diff text3263 with diff lines3264 returns Gitlab::Diff::Line elements3265 does not modify "match" lines3266 marks unchanged lines3267 marks removed lines3268 marks added lines3269 when the inline diff marker has an invalid range3270 keeps the original rich line3271 reports to Sentry if configured3272 when no inline diffs3273 behaves like without inline diffs3274 returns html escaped diff text3275Gitlab::Ci::Build::Rules::Rule::Clause::Exists3276 #satisfied_by?3277 behaves like a glob matching rule3278 exact top-level match3279 should eq true3280 exact top-level no match3281 should eq false3282 pattern top-level match3283 should eq true3284 pattern top-level no match3285 should eq false3286 exact nested match3287 should eq true3288 exact nested no match3289 should eq false3290 pattern nested match3291 should eq true3292 pattern nested no match3293 should eq false3294 ext top-level match3295 should eq true3296 ext nested no match3297 should eq false3298 ext slash no match3299 should eq false3300 after pattern comparision limit is reached3301 should be truthy3302Release3303 should be valid3304 associations3305 should belong to project required:3306 should belong to author class_name => User required:3307 should have many links class_name => Releases::Link3308 should have many milestones3309 should have many milestone_releases3310 validation3311 should validate that :project cannot be empty/falsy3312 should validate that :description cannot be empty/falsy3313 when a release exists in the database without a name3314 does not require name3315 when a release is tied to a milestone for another project3316WARNING: 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 #<ActiveRecord::RecordInvalid: Validation failed: does not have the same project as the milestone>. 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/spec/models/release_spec.rb:42:in `block (4 levels) in <top (required)>'.3317 creates a validation error3318 when a release is tied to a milestone linked to the same project3319 successfully links this release to this milestone3320 #assets_count3321 returns the number of sources3322 when a links exists3323 counts the link as an asset3324 excludes sources count when asked3325 #sources3326 returns sources3327 #upcoming_release?3328 during the backfill migration when released_at could be nil3329 handles a nil released_at value and returns false3330Gitlab::Ci::Status::Build::Scheduled3331 #illustration3332 should include :image, :size, and :title3333 #status_tooltip3334 has a placeholder for the remaining time3335 .matches?3336 when build is scheduled and scheduled_at is present3337 should be truthy3338 when build is scheduled3339 should be falsy3340 when scheduled_at is present3341 should be falsy3342Namespace::RootStorageStatistics3343 should belong to namespace required:3344 should have one route through namespace3345 should delegate #all_projects to the #namespace object3346 scopes3347 .for_namespace_ids3348 returns only requested namespaces3349 #recalculate!3350 behaves like data refresh3351 aggregates project statistics3352 works when there are no projects3353 with subgroups3354 behaves like data refresh3355 aggregates project statistics3356 works when there are no projects3357 with a personal namespace3358 behaves like data refresh3359 aggregates project statistics3360 works when there are no projects3361Projects::HashedStorage::MigrateAttachmentsService3362 #execute3363 works even when project validation fails3364 when succeeds3365 moves attachments to hashed storage layout3366 returns true3367 sets skipped to false3368 when original folder does not exist anymore3369 skips moving folders and go to next3370 returns true3371 sets skipped to true3372 when target folder already exists3373 raises AttachmentCannotMoveError3374 #old_disk_path3375 returns old disk_path for project3376 #new_disk_path3377 returns new disk_path for project3378AutoDevopsHelper3379 .show_auto_devops_callout?3380 when auto devops is implicitly enabled3381 should eq false3382 when auto devops is not implicitly enabled3383 should eq true3384 when the banner is disabled by feature flag3385 should be falsy3386 when dismissed3387 should eq false3388 when user cannot admin project3389 should eq false3390 when auto devops is enabled system-wide3391 should eq false3392 when auto devops is explicitly enabled for project3393 should eq false3394 when auto devops is explicitly disabled for project3395 should eq false3396 when master contains a .gitlab-ci.yml file3397 should eq false3398 when another service is enabled3399 should eq false3400 #badge_for_auto_devops_scope3401 when receiver is a group3402 when explicitly enabled3403 should eq "group enabled"3404 when explicitly disabled3405 should be nil3406 when auto devops is implicitly enabled3407 by instance3408 should eq "instance enabled"3409 with groups3410 when auto devops is enabled on parent3411 should eq "group enabled"3412 when auto devops is enabled on parent group3413 should eq "group enabled"3414 when auto devops disabled set on parent group3415 should be nil3416 when receiver is a project3417 when auto devops is enabled at project level3418 should be nil3419 when auto devops is disabled at project level3420 should be nil3421 when auto devops is implicitly enabled3422 by instance3423 should eq "instance enabled"3424 with groups3425 when auto devops is enabled on group level3426 should eq "group enabled"3427 when auto devops is enabled on root group3428 should eq "group enabled"3429 when auto devops is implicitly disabled3430 by instance3431 should be nil3432 with groups3433 when auto devops is disabled on group level3434 should be nil3435 when root group is enabled and parent disabled3436 should be nil3437ContainerRegistry::Blob3438 should respond to #repository3439 should delegate #registry to the #repository object3440 should delegate #client to the #repository object3441 #path3442 returns a valid path to the blob3443 #digest3444 return correct digest value3445 #type3446 returns a correct type3447 #revision3448 returns a correct blob SHA3449 #short_revision3450 return a short SHA3451 #delete3452 returns true when blob has been successfully deleted3453 #data3454 when locally stored3455 returns a correct blob data3456 when externally stored3457 for a valid address3458 returns correct data3459 for a relative address3460 returns correct data3461 for invalid file3462 raises an error3463Gitlab::Diff::HighlightCache3464 #decorate3465 does not calculate highlighting when reading from cache3466 assigns highlighted diff lines to the DiffFile3467 submits a single reading from the cache3468 #write_if_empty3469 submits a single writing to the cache3470 #clear3471 clears cache3472GitlabRoutingHelper3473 Project URL helpers3474 #project_member_path3475 should eq "/namespace951/project1003/-/project_members/1799"3476 #request_access_project_members_path3477 should eq "/namespace952/project1004/-/project_members/request_access"3478 #leave_project_members_path3479 should eq "/namespace953/project1005/-/project_members/leave"3480 #approve_access_request_project_member_path3481 should eq "/namespace954/project1006/-/project_members/1801/approve_access_request"3482 #resend_invite_project_member_path3483 should eq "/namespace955/project1007/-/project_members/1803/resend_invite"3484 Group URL helpers3485 #group_members_url3486 should eq "http://test.host/groups/group86/-/group_members"3487 #group_member_path3488 should eq "/groups/group87/-/group_members/1804"3489 #request_access_group_members_path3490 should eq "/groups/group88/-/group_members/request_access"3491 #leave_group_members_path3492 should eq "/groups/group89/-/group_members/leave"3493 #approve_access_request_group_member_path3494 should eq "/groups/group90/-/group_members/1805/approve_access_request"3495 #resend_invite_group_member_path3496 should eq "/groups/group91/-/group_members/1806/resend_invite"3497 #preview_markdown_path3498 returns group preview markdown path for a group parent3499 returns project preview markdown path for a project parent3500 returns snippet preview markdown path for a personal snippet3501 returns project preview markdown path for a project snippet3502 #edit_milestone_path3503 returns group milestone edit path when given entity parent is a Group3504 returns project milestone edit path when given entity parent is not a Group3505Gitlab::Ci::Build::Rules::Rule::Clause::Changes3506 #satisfied_by?3507 behaves like a glob matching rule3508 exact top-level match3509 should eq true3510 exact top-level no match3511 should eq false3512 pattern top-level match3513 should eq true3514 pattern top-level no match3515 should eq false3516 exact nested match3517 should eq true3518 exact nested no match3519 should eq false3520 pattern nested match3521 should eq true3522 pattern nested no match3523 should eq false3524 ext top-level match3525 should eq true3526 ext nested no match3527 should eq false3528 ext slash no match3529 should eq false3530Group Routable3531 Validations3532 should validate that :route cannot be empty/falsy3533 Associations3534 should have one route dependent => destroy3535 should have many redirect_routes dependent => destroy3536 Callbacks3537 for a group3538 creates route record on create3539 updates route record on path change3540 ensure route path uniqueness across different objects3541 for a user3542 creates the route for a record on create3543 updates routes and nested routes on name change3544 .find_by_full_path3545 without any redirect routes3546 should eq #<Group id:2468 @foo>3547 should eq #<Group id:2470 @foo>3548 should eq #<Group id:2473 @foo/group97>3549 should eq nil3550 includes route information when loading a record3551 with redirect routes3552 without follow_redirects option3553 with the given path not matching any route3554 should eq nil3555 with the given path matching the canonical route3556 should eq #<Group id:2480 @foo>3557 should eq #<Group id:2482 @foo>3558 should eq #<Group id:2485 @foo/group103>3559 with the given path matching a redirect route3560 should eq nil3561 should eq nil3562 should eq nil3563 with follow_redirects option set to true3564 with the given path not matching any route3565 should eq nil3566 with the given path matching the canonical route3567 should eq #<Group id:2494 @foo>3568 should eq #<Group id:2496 @foo>3569 should eq #<Group id:2499 @foo/group110>3570 with the given path matching a redirect route3571 should eq #<Group id:2500 @foo>3572 should eq #<Group id:2502 @foo>3573 should eq #<Group id:2505 @foo/group113>3574 .where_full_path_in3575 without any paths3576 returns an empty relation3577 without any valid paths3578 returns an empty relation3579 with valid paths3580 returns the projects matching the paths3581 returns projects regardless of the casing of paths3582 #full_path3583 should eq "group116"3584 should eq "group117/group118"3585 #full_name3586 should eq "group119"3587 should eq "group120 / group121"3588Project Routable3589 #full_path3590 should eq "namespace970/project1023"3591 #full_name3592 should eq "John Doe2390 / project1024"3593PopulateProjectStatisticsPackagesSize3594NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3595NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3596NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3597 backfills ProjectStatistics packages_size3598 updates ProjectStatistics storage_size3599NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3600NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3601NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3602NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3603IssuePresenter3604 #web_url3605 returns correct path3606 #subscribed?3607 returns not subscribed3608 returns subscribed3609 #issue_path3610 returns correct path3611Ci::CompareTestReportsService3612 #execute3613 when head pipeline has test reports3614 returns status and data3615 when base and head pipelines have test reports3616 returns status and data3617 when head pipeline has corrupted test reports3618 returns status and error message3619 #latest?3620 when cache key is latest3621 should be truthy3622 when cache key is outdated3623 should be falsy3624 when cache key is empty3625 should be falsy3626ClusterBasicEntity3627 #as_json3628 matches cluster_basic entity schema3629 exposes the cluster details3630 when the user does not have permission to view the cluster3631 does not include the path3632Gitlab::GroupSearchResults3633 user search3634 returns the users belonging to the group matching the search query3635 returns the user belonging to the subgroup matching the search query3636 returns the user belonging to the parent group matching the search query3637 does not return the user belonging to the private subgroup3638 does not return the user belonging to an unrelated group3639PersonalSnippetPolicy3640 public snippet3641 no user3642 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3643 regular user3644 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3645 author3646 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3647 internal snippet3648 no user3649 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3650 regular user3651 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3652 external user3653 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3654 snippet author3655 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3656 private snippet3657 no user3658 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3659 regular user3660 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3661 admin user3662 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3663 external user3664 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3665 snippet author3666 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3667gitlab:artifacts rake tasks3668 check3669 outputs the integrity check for each batch3670 errors out about missing files on the file system3671 errors out about invalid checksum3672 errors out about missing checksum3673PaginatedDiffEntity3674 exposes diff_files3675 exposes pagination data3676Subscription3677 relationships3678 should belong to project required:3679 should belong to subscribable required:3680 should belong to user required:3681 validations3682 should validate that :subscribable cannot be empty/falsy3683 should validate that :user cannot be empty/falsy3684 validates uniqueness of project_id scoped to subscribable_id, subscribable_type, and user_id3685BuildSerializer3686 #represent3687 when a single object is being serialized3688 serializers the pipeline object3689 when multiple objects are being serialized3690 serializers the array of pipelines3691 #represent_status3692 for a failed build3693 serializes only status3694 for any other type of build3695 serializes only status3696Banzai::ReferenceParser::LabelParser3697 #nodes_visible_to_user3698 when the link has a data-issue attribute3699 behaves like referenced feature visibility3700 when feature is disabled3701 does not create reference3702 when feature is enabled only for team members3703 does not create reference for non member3704 creates reference for member3705 when feature is enabled3706 creates reference3707 #referenced_by3708 when the link has a data-label attribute3709 using an existing label ID3710 returns an Array of labels3711 using a non-existing label ID3712 returns an empty Array3713SlackSlashCommandsService3714 behaves like chat slash commands service3715 Associations3716 should respond to #token3717 should have many chat_names3718 #valid_token?3719 when the token is empty3720 is false3721 when there is a token3722 accepts equal tokens3723 #trigger3724 no token is passed3725 returns nil3726 with a token passed3727 no user can be found3728 when no url can be generated3729 responds with the authorize url3730 when an auth url can be generated3731 generates the url3732 when the user is authenticated3733 triggers the command3734 when user is blocked3735 behaves like blocks command execution3736 should match "you do not have access to the GitLab project"3737 when user is deactivated3738 behaves like blocks command execution3739 should match "your account has been deactivated by your administrator"3740 #trigger3741 when an auth url is generated3742 uses slack compatible links3743 #chat_responder3744 returns the responder to use for Slack3745projects/ci/jobs/_build3746 won't include a column with a link to its pipeline by default3747 can include a column with a link to its pipeline3748ActiveSession3749 #current?3750 returns true if the active session matches the current session3751 returns false if the active session does not match the current session3752 returns false if the session id is nil3753 .list3754 returns all sessions by user3755 does not return obsolete entries and cleans them up3756 returns an empty array if the use does not have any active session3757 .list_sessions3758 uses the ActiveSession lookup to return original sessions3759 .session_ids_for_user3760 uses the user lookup table to return session ids3761 .sessions_from_ids3762 uses the ActiveSession lookup to return original sessions3763 avoids a redis lookup for an empty array3764 uses redis lookup in batches3765 .set3766 sets a new redis entry for the user session and a lookup entry3767 adds timestamps and information from the request3768 keeps the created_at from the login on consecutive requests3769 .destroy3770 removes the entry associated with the currently killed user session3771 removes the lookup entry3772 removes the devise session3773 does not remove the devise session if the active session could not be found3774 .cleanup3775 removes obsolete lookup entries3776 does not bail if there are no lookup entries3777git_http routing3778 wiki.git routing routing3779 redirects namespace/project.wiki.git to the project wiki3780 preserves query parameters3781 only redirects when the format is .git3782Gitlab::BackgroundMigration::AddMergeRequestDiffCommitsCount3783NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3784NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3785NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3786NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping3787 #perform3788 migrates diffs that have no commits3789 skips diffs that have commits_count already set3790 migrates multiple diffs to the correct values3791NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping3792NOTICE: table "design_management_designs" does not exist, skipping3793NOTICE: table "design_management_designs_versions" does not exist, skipping3794NOTICE: table "design_management_versions" does not exist, skipping3795NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3796NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3797NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3798NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3799Boards::VisitsFinder3800 #latest3801 when a project board3802 returns nil when there is no user3803 queries for most recent visit3804 queries for last N visits3805 when a group board3806 returns nil when there is no user3807 queries for most recent visit3808 queries for last N visits3809Gitlab::PhabricatorImport::Issues::TaskImporter3810 #execute3811 creates the issue with the expected attributes3812 does not recreate the issue when called multiple times3813 does not trigger a save when the object did not change3814 links the author if the author can be found3815 links an assignee if the user can be found3816BuildCoverageWorker3817 #perform3818 when build exists3819 updates code coverage3820 when build does not exist3821 does not raise exception3822BlobViewer::Readme3823 #render_error3824 when there is no wiki3825 returns :no_wiki3826 when there is an external wiki3827 returns nil3828 when there is a local wiki3829 when the wiki is empty3830 returns :no_wiki3831 when the wiki is not empty3832 returns nil3833CompareService3834 #execute3835 compare with base, like feature...fix3836 should eq 13837 straight compare, like feature..fix3838 should eq 33839 compare with target branch that does not exist3840 should be nil3841 compare with source branch that does not exist3842 should be nil3843BlobViewer::Base3844 .can_render?3845 when the extension is supported3846 when the binaryness matches3847 returns true3848 when the binaryness does not match3849 returns false3850 when the file type is supported3851 when the binaryness matches3852 returns true3853 when the binaryness does not match3854 returns false3855 when the extension and file type are not supported3856 returns false3857 #collapsed?3858 when the blob size is larger than the collapse limit3859 returns true3860 when the blob size is smaller than the collapse limit3861 returns false3862 #too_large?3863 when the blob size is larger than the size limit3864 returns true3865 when the blob size is smaller than the size limit3866 returns false3867 #render_error3868 when the blob is expanded3869 when the blob size is larger than the size limit3870 returns :too_large3871 when the blob size is smaller than the size limit3872 returns nil3873 when not expanded3874 when the blob size is larger than the collapse limit3875 returns :collapsed3876 when the blob size is smaller than the collapse limit3877 returns nil3878Gitlab::SlashCommands::Presenters::IssueNew3879 should be a kind of Hash3880 shows the issue3881Projects::ErrorTrackingHelper3882 #error_tracking_data3883 without error_tracking_setting3884 returns frontend configuration3885 with error_tracking_setting3886 when enabled3887 show error tracking enabled3888 when disabled3889 show error tracking not enabled3890 when user is not maintainer3891 shows error tracking enablement as disabled3892ProjectAuthorization3893 .insert_authorizations3894 inserts the authorizations3895 inserts rows in batches3896Projects::UpdatePagesConfigurationService3897 #update3898 when configuration changes3899 updates the .update file3900 when configuration does not change3901 does not update the .update file3902Gitlab::PhabricatorImport::ProjectCreator3903 #execute3904 creates a project correctly and schedule an import3905 when import params are missing3906 returns nil3907 when import params are invalid3908 returns an unpersisted project3909CampfireService3910 Associations3911 should belong to project required:3912 should have one service_hook3913 Validations3914 when service is active3915 should validate that :token cannot be empty/falsy3916 when service is inactive3917 should not validate that :token cannot be empty/falsy3918 #execute3919 calls Campfire API to get a list of rooms and speak in a room3920 calls Campfire API to get a list of rooms but shouldn't speak in a room3921MergeRequestSidebarBasicEntity3922 #current_user3923 contains attributes related to the current user3924FlowdockService3925 Associations3926 should belong to project required:3927 should have one service_hook3928 Validations3929 when service is active3930 should validate that :token cannot be empty/falsy3931 when service is inactive3932 should not validate that :token cannot be empty/falsy3933 Execute3934 calls FlowDock API3935UserCalloutsHelper3936 .show_gke_cluster_integration_callout?3937 when user can create a cluster3938 when user has not dismissed3939 should equal true3940 when user dismissed3941 should equal false3942 when user can not create a cluster3943 should equal false3944 .render_flash_user_callout3945 renders the flash_user_callout partial3946NotificationsHelper3947 notification_icon3948 should match "class=\"fa fa-microphone-slash fa-fw\""3949 should match "class=\"fa fa-microphone-slash fa-fw\""3950 should match "class=\"fa fa-volume-up fa-fw\""3951 should match "class=\"fa fa-at fa-fw\""3952 should match "class=\"fa fa-globe fa-fw\""3953 should match "class=\"fa fa-eye fa-fw\""3954 notification_title3955 should match "Watch"3956 should match "On mention"3957 should match "Global"3958 #notification_event_name3959 should match "Successful pipeline"3960 should match "Failed pipeline"3961 #notification_icon_level3962 should eq "owner_disabled"3963 should eq "watch"3964 should eq "participating"3965CleanupEnvironmentsExternalUrl3966NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3967NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3968NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3969 clears every environment with a javascript external_url3970 do not removes environments3971NOTICE: table "design_management_designs" does not exist, skipping3972NOTICE: table "design_management_designs_versions" does not exist, skipping3973NOTICE: table "design_management_versions" does not exist, skipping3974NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3975NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3976NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3977NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3978RuboCop::Cop::LineBreakAroundConditionalBlock3979 doesn't flag violation for if with elsif3980 behaves like examples with conditional3981 flags violation for if without line break before3982 flags violation for if without line break after3983 doesn't flag violation for if with line break before and after3984 doesn't flag violation for if preceded by a method definition3985 doesn't flag violation for if preceded by a class definition3986 doesn't flag violation for if preceded by a module definition3987 doesn't flag violation for if preceded by a begin definition3988 doesn't flag violation for if preceded by an assign/begin definition3989 doesn't flag violation for if preceded by a block definition3990 doesn't flag violation for if preceded by a block definition with a comment3991 doesn't flag violation for if preceded by a block definition using brackets3992 doesn't flag violation for if preceded by a comment3993 doesn't flag violation for if preceded by an assignment3994 doesn't flag violation for if preceded by a multiline comment3995 doesn't flag violation for if preceded by another conditional3996 doesn't flag violation for if preceded by an else3997 doesn't flag violation for if preceded by an elsif3998 doesn't flag violation for if preceded by an ensure3999 doesn't flag violation for if preceded by a when4000 doesn't flag violation for if followed by a comment4001 doesn't flag violation for if followed by an end4002 doesn't flag violation for if followed by an else4003 doesn't flag violation for if followed by a when4004 doesn't flag violation for if followed by an elsif4005 doesn't flag violation for if preceded by a rescue4006 doesn't flag violation for if followed by a rescue4007 autocorrects if without line break before4008 autocorrects if without line break after4009 autocorrects if without line break before and after4010 behaves like examples with conditional4011 flags violation for unless without line break before4012 flags violation for unless without line break after4013 doesn't flag violation for unless with line break before and after4014 doesn't flag violation for unless preceded by a method definition4015 doesn't flag violation for unless preceded by a class definition4016 doesn't flag violation for unless preceded by a module definition4017 doesn't flag violation for unless preceded by a begin definition4018 doesn't flag violation for unless preceded by an assign/begin definition4019 doesn't flag violation for unless preceded by a block definition4020 doesn't flag violation for unless preceded by a block definition with a comment4021 doesn't flag violation for unless preceded by a block definition using brackets4022 doesn't flag violation for unless preceded by a comment4023 doesn't flag violation for unless preceded by an assignment4024 doesn't flag violation for unless preceded by a multiline comment4025 doesn't flag violation for unless preceded by another conditional4026 doesn't flag violation for unless preceded by an else4027 doesn't flag violation for unless preceded by an elsif4028 doesn't flag violation for unless preceded by an ensure4029 doesn't flag violation for unless preceded by a when4030 doesn't flag violation for unless followed by a comment4031 doesn't flag violation for unless followed by an end4032 doesn't flag violation for unless followed by an else4033 doesn't flag violation for unless followed by a when4034 doesn't flag violation for unless followed by an elsif4035 doesn't flag violation for unless preceded by a rescue4036 doesn't flag violation for unless followed by a rescue4037 autocorrects unless without line break before4038 autocorrects unless without line break after4039 autocorrects unless without line break before and after4040Identity4041 relations4042 should belong to user required:4043 fields4044 should respond to #provider4045 should respond to #extern_uid4046 validations4047 with existing user and provider4048 returns false for a duplicate entry4049 returns true when a different provider is used4050 with newly-created user4051 successfully validates even with a nil user_id4052 #is_ldap?4053 returns true if it is a ldap identity4054 returns false if it is not a ldap identity4055 .with_extern_uid4056 LDAP identity4057 finds the identity when the DN is formatted differently4058 any other provider4059 the extern_uid lookup is case insensitive4060 callbacks4061 before_save4062 normalizes extern uid4063 if extern_uid changes4064 if current_uid is nil4065 if extern_uid changed and not nil4066 after_destroy4067 if user synced attributes metadada provider4068 matches the identity provider4069 removes the user synced attributes4070 does not matche the identity provider4071 does not remove the user synced attributes4072Gitlab::Ci::Build::Policy::Refs4073 #satisfied_by?4074 when matching ref4075 is satisfied when pipeline branch matches4076 is not satisfied when pipeline branch does not match4077 when matching tags4078 when pipeline runs for a tag4079 is satisfied when tags matcher is specified4080 when pipeline is not created for a tag4081 is not satisfied when tag match is specified4082 when also matching a path4083 is satisfied when provided patch matches specified one4084 is not satisfied when path differs4085 when matching a source4086 is satisfied when provided source keyword matches4087 is not satisfied when provided source keyword does not match4088 when source is merge_request_event4089 is satisfied with only: merge_request4090 is not satisfied with only: merge_request_event4091 when source is external_pull_request_event4092 is satisfied with only: external_pull_request4093 is not satisfied with only: external_pull_request_event4094 when matching a ref by a regular expression4095 is satisfied when regexp matches pipeline ref4096 is satisfied when case-insensitive regexp matches pipeline ref4097 is not satisfied when regexp does not match pipeline ref4098 when unsafe regexp is used4099 when allow_unsafe_ruby_regexp is disabled4100 ignores invalid regexp4101 when allow_unsafe_ruby_regexp is enabled4102 is satisfied by regexp4103 malicious regexp4104 takes under a second4105WikiHelper4106 #breadcrumb4107 when the page is at the root level4108 returns the capitalized page name4109 when the page is inside a directory4110 returns the capitalized name of each directory and of the page itself4111 #wiki_sort_controls4112 initial call4113 renders with default values4114 sort by title4115 renders a link with opposite direction4116 sort by created_at4117 renders a link with opposite direction4118 #wiki_sort_title4119 returns a title corresponding to a key4120 defaults to Title if a key is unknown4121projects/blob/_viewer.html.haml4122 when the viewer is loaded asynchronously4123 when there is no render error4124 adds a URL to the blob viewer element4125 renders the loading indicator4126 when there is a render error4127 renders the error4128 when the viewer is loaded synchronously4129 when there is no render error4130 prepares the viewer4131 renders the viewer4132 when there is a render error4133 renders the error4134Banzai::CommitRenderer4135 .render4136 renders a commit description and title4137Namespace::AggregationSchedule4138 should belong to namespace required:4139 #schedule_root_storage_statistics4140 when we can't obtain the lease4141 does not schedule the workers4142 when we can obtain the lease4143 schedules a root storage statistics after create4144 does not release the lease4145 only executes the workers once4146UserCustomAttribute4147 assocations4148 should belong to user required:4149 validations4150 should validate that :user_id cannot be empty/falsy4151 should validate that :key cannot be empty/falsy4152 should validate that :value cannot be empty/falsy4153 should validate that :key is case-sensitively unique within the scope of :user_id4154BuildHooksWorker4155 #perform4156 when build exists4157 calls build hooks4158 when build does not exist4159 does not raise exception4160Namespaces::StatisticsRefresherService#execute4161 without a root storage statistics relation4162 creates one4163 recalculate the namespace statistics4164 with a root storage statistics relation4165 does not create one4166 recalculate the namespace statistics4167 when something goes wrong4168 raises RefreshError4169Keys::CreateService4170 creates a key4171 notification4172 sends a notification4173Users::ActivityService4174 #execute4175 when last activity is nil4176 updates last_activity_on for the user4177 when last activity is in the past4178 updates last_activity_on for the user4179 tries to obtain ExclusiveLease4180 when a bad object is passed4181 does not record activity4182 when last activity is today4183 does not update last_activity_on4184 does not try to obtain ExclusiveLease4185 when in GitLab read-only instance4186 does not update last_activity_on4187 when a lease could not be obtained4188 does not update last_activity_on4189Gitlab::Ci::Config::External::Mapper4190 #process4191 when single 'include' keyword is defined4192 when the string is a local file4193 returns File instances4194 when the key is a local file hash4195 returns File instances4196 when the string is a remote file4197 returns File instances4198 when the key is a remote file hash4199 returns File instances4200 when the key is a template file hash4201 returns File instances4202 when the key is a hash of file and remote4203 returns ambigious specification error4204 when 'include' is defined as an array4205 returns Files instances4206 when 'include' is defined as an array of hashes4207 returns Files instances4208 when it has ambigious match4209 returns ambigious specification error4210 when 'include' is not defined4211 returns an empty array4212 when duplicate 'include' is defined4213 raises an exception4214 when too many 'includes' are defined4215 raises an exception4216Gitlab::Serializer::Pagination4217 #paginate4218 when a multiple resources are present in relation4219 correctly paginates the resource4220 appends relevant headers4221 when an invalid resource is about to be paginated4222 raises error4223Keys::LastUsedService4224 #execute4225 updates the key when it has not been used recently4226 does not update the key when it has been used recently4227 does not update the updated_at field4228 #update?4229 returns true when no last used timestamp is present4230 returns true when the key needs to be updated4231 returns false when a lease has already been obtained4232 returns false when the key does not yet need to be updated4233Constraints::UserUrlConstrainer4234 #matches?4235 valid request4236 should be truthy4237 invalid request4238 should be falsey4239 when the request matches a redirect route4240 and is a GET request4241 should be truthy4242 and is NOT a GET request4243 should be falsey4244Participable4245 .participant4246 adds the participant attributes to the existing list4247 #participants4248 returns the list of participants4249 caches the raw list of participants4250 supports attributes returning another Participable4251 when using a Proc as an attribute4252 calls the supplied Proc4253UserEntity4254 exposes user name and login4255 does not expose passwords4256 does not expose tokens4257 does not expose 2FA OTPs4258 exposes user path4259TermAgreement4260 validations4261 should validate that :term cannot be empty/falsy4262 should validate that :user cannot be empty/falsy4263 .accepted4264 only includes accepted terms4265Gitlab::GitalyClient::CleanupService4266 #apply_bfg_object_map_stream4267 sends an apply_bfg_object_map_stream message4268Gitlab::Redis::SharedState4269 .params4270 withstands mutation4271 when url contains unix socket reference4272 with old format4273 returns path key instead4274 with new format4275 returns path key instead4276 when url is host based4277 with old format4278 returns hash with host, port, db, and password4279 with new format4280 returns hash with host, port, db, and password4281 .url4282 withstands mutation4283 when yml file with env variable4284 reads redis url from env variable4285 ._raw_config4286 is frozen4287 returns false when the file does not exist4288 returns false when the filename can't be determined4289 .with4290 when running not on sidekiq workers4291 instantiates a connection pool with size 54292 when running on sidekiq workers4293 instantiates a connection pool with a size based on the concurrency of the worker4294 #sentinels4295 when sentinels are defined4296 returns an array of hashes with host and port keys4297 when sentinels are not defined4298 returns nil4299 #sentinels?4300 when sentinels are defined4301 returns true4302 when sentinels are not defined4303 returns false4304 #raw_config_hash4305 returns default redis url when no config file is present4306 returns old-style single url config in a hash4307 #fetch_config4308 returns false when no config file is present4309 returns false when config file is present but has invalid YAML4310EmailReceiverWorker4311 when reply by email is enabled4312 calls the email receiver4313 when an error occurs4314 when the error is Gitlab::Email::EmptyEmailError4315 sends out a rejection email4316 when the error is Gitlab::Email::AutoGeneratedEmailError4317 does not send out any rejection email4318 when the error is Gitlab::Email::InvalidAttachment4319 reports the error to the sender4320 when reply by email is disabled4321 doesn't call the email receiver4322UploadChecksumWorker4323 #perform4324 without a valid record4325 rescues ActiveRecord::RecordNotFound4326 with a valid record4327 calls calculate_checksum!4328 calls save!4329dashboard/projects/_blank_state_admin_welcome.html.haml4330 links to new group path4331Gitlab::Favicon4332 .main4333 defaults to favicon.png4334 has yellow favicon for canary4335 uses the custom favicon if a favicon appearance is present4336 asset host4337 returns a relative url when the asset host is not configured4338 returns a full url when the asset host is configured4339 .status_overlay4340 returns the overlay for the status4341 .available_status_names4342 returns the available status names4343DeployKeys::CreateService4344 creates a deploy key4345MigrateStorageMigratorSidekiqQueue4346 when there are jobs in the queues4347 correctly migrates queue when migrating up4348 correctly migrates queue when migrating down4349 when there are no jobs in the queues4350 does not raise error when migrating up4351 does not raise error when migrating down4352Banzai::Filter::AssetProxyFilter4353 does not replace if disabled4354 during initialization4355 #initialize_settings4356 when whitelist is empty4357 defaults to the install domain4358 when properly configured4359 replaces img src4360 skips internal images4361 skip relative urls4362 skips single domain4363 skips single domain and ignores url in query string4364 skips wildcarded domain4365Gitlab::SidekiqDaemon::Monitor4366 #within_job4367 tracks thread4368 when job is canceled43692019-10-16T17:17:54.794Z 114 TID-gmxw3osgi WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"b75ceafa110b22d2b77392fa90cde14e", :canceled=>true}4370 does not execute a block43712019-10-16T17:17:54.802Z 114 TID-gmxw3osgi WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"279aa70b69b4020c345f29ad01d436b9", :canceled=>true}4372 raises exception4373 #run_thread when notification channel not enabled4374 return directly4375 #run_thread when notification channel enabled4376 when structured logging is used4377 logs start message4378 logs stop message4379 logs StandardError message4380 logs and raises Exception message4381 when StandardError is raised4382 does retry connection4383 when message is published4384 and message is valid4385 processes cancel4386 and message is not valid json4387 skips processing4388 #stop4389#<Thread:0x000055602c497e10@/builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:38 run> terminated with exception (report_on_exception is true):4390/builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:188:in `nonzero?': Interrupt (Interrupt)4391 from /builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:188:in `notification_channel_enabled?'4392 from /builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:65:in `run_thread'4393 from /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:38:in `block (2 levels) in start'4394 does stop the thread4395 #process_job_cancel4396 when jid is missing4397 does not run thread4398 when jid is provided4399 when jid is not found4400 does not log cancellation message4401 when jid is found4402#<Thread:0x000055602c6bc1c8@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):4403/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)4404 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'4405 does log cancellation message44062019-10-16T17:17:54.910Z 114 TID-gmxzx1kuu WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"cancel", :message=>"Canceling thread with CancelledError", :jid=>"my-jid", :thread_id=>46935775764060}4407#<Thread:0x000055602c7bbcb8@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):4408/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)4409 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'4410 does cancel the thread4411 .cancel_job4412 sets a redis key4413 notifies all workers4414 #notification_channel_enabled?4415 return nil when SIDEKIQ_MONITOR_WORKER is not set4416 return nil when SIDEKIQ_MONITOR_WORKER set to 04417 return 1 when SIDEKIQ_MONITOR_WORKER set to 14418CiStatusHelper4419 #ci_icon_for_status4420 renders to correct svg on success4421 renders the correct svg on failure4422 #ci_text_for_status4423 when status is manual4424 changes the status to blocked4425 when status is success4426 changes the status to passed4427 when status is something else4428 returns status unchanged4429 #pipeline_status_cache_key4430 builds a cache key for pipeline status4431 #render_status_with_link4432 renders a passed status icon4433 has 'Pipeline' as the status type in the title4434 has the success status icon4435 when pipeline has commit path4436 links to commit4437 does not contain a span element4438 has 'Pipeline' as the status type in the title4439 has the correct status icon4440 when different type than pipeline is provided4441 has the provided type in the title4442 when tooltip_placement is provided4443 has the provided tooltip placement4444 when additional CSS classes are provided4445 has appended extra class to icon classes4446 when container is provided4447 has the provided container in data4448 when icon_size is provided4449 has the svg class to change size4450OptionallySearch4451 .search4452 raises NotImplementedError4453 .optionally_search4454 when a query is given4455 delegates to the search method4456 when no query is given4457 returns the current relation4458 when an empty query is given4459 returns the current relation4460Gitlab::Metrics::Subscribers::RailsCache4461 #cache_read4462 increments the cache_read duration4463 with a transaction4464 with hit event4465 increments the cache_read_hit count4466 when super operation is fetch4467 does not increment cache read miss4468 with miss event4469 increments the cache_read_miss count4470 increments the cache_read_miss total4471 when super operation is fetch4472 does not increment cache read miss4473 does not increment cache_read_miss total4474 #cache_write4475 observes write duration4476 #cache_delete4477 observes delete duration4478 #cache_exist?4479 observes the exists duration4480 #cache_fetch_hit4481 without a transaction4482 returns4483 with a transaction4484 increments the cache_read_hit count4485 #cache_generate4486 without a transaction4487 returns4488 with a transaction4489 increments the cache_fetch_miss count4490 increments the cache_read_miss total4491 #observe4492 without a transaction4493 returns4494 with a transaction4495 increments the total and specific cache duration4496 observes cache metric4497 increments the operations total4498SystemCheck::SimpleExecutor4499 #component4500 returns stored component name4501 #checks4502 returns a set of classes4503 #<<4504 appends a new check to the Set4505 inserts unique itens only4506 errors out when passing multiple items4507 #execute4508 runs included checks4509 #run_check4510 prints check name4511 when check pass4512 prints yes4513 when check fails4514 prints no4515 displays error message from #show_error4516 when check implements #repair!4517 executes #repair!4518 when repair succeeds4519 does not execute #show_error4520 when repair fails4521 does not execute #show_error4522 when check implements skip?4523 executes #skip? method4524 displays .skip_reason4525 displays #skip_reason4526 does not execute #check when #skip? is true4527 when implements a #multi_check4528 executes #multi_check method4529 does not execute #check method4530 when check implements #skip?4531 executes #skip? method4532 when there is an exception4533 rescues the exception4534Gitlab4535 .root4536 returns the root path of the app4537 .revision4538 when a REVISION file exists4539 returns the actual Git revision4540 memoizes the revision4541 when no REVISION file exist4542 when the Git command succeeds4543 returns the actual Git revision4544 when the Git command fails4545 returns "Unknown"4546 .com?4547 is true when on GitLab.com4548 is true when on staging4549 is true when on other gitlab subdomain4550 is false when not on GitLab.com4551 .dev_env_org_or_com?4552 is true when on .com4553 is true when org4554 is true when dev env4555 is false when not dev, org or com4556 .dev_env_or_com?4557 is true when on .com4558 is true when dev env4559 is false when not dev or com4560 .ee?4561 for EE4562 when using FOSS_ONLY=14563 returns not to be EE4564 when using FOSS_ONLY=04565 returns to be EE4566 when using default FOSS_ONLY4567 returns to be EE4568 for CE4569 returns not to be EE4570 .http_proxy_env?4571 returns true when lower case https4572 returns true when upper case https4573 returns true when lower case http4574 returns true when upper case http4575 returns false when not set4576Gitlab::SQL::Pattern4577 .to_pattern4578 when a query is shorter than 3 chars4579 returns exact matching pattern4580 and ignore_minimum_char_limit is true4581 returns partial matching pattern4582 when a query with a escape character is shorter than 3 chars4583 returns sanitized exact matching pattern4584 and ignore_minimum_char_limit is true4585 returns sanitized partial matching pattern4586 when a query is equal to 3 chars4587 returns partial matching pattern4588 when a query with a escape character is equal to 3 chars4589 returns partial matching pattern4590 when a query is longer than 3 chars4591 returns partial matching pattern4592 when a query with a escape character is longer than 3 chars4593 returns sanitized partial matching pattern4594 .select_fuzzy_words4595 with a word equal to 3 chars4596 returns array cotaining a word4597 with a word shorter than 3 chars4598 returns empty array4599 with two words both equal to 3 chars4600 returns array containing two words4601 with two words divided by two spaces both equal to 3 chars4602 returns array containing two words4603 with two words equal to 3 chars and shorter than 3 chars4604 returns array containing a word4605 with a multi-word surrounded by double quote4606 returns array containing a multi-word4607 with a multi-word surrounded by double quote and two words4608 returns array containing a multi-word and tow words4609 with a multi-word surrounded by double quote missing a spece before the first double quote4610 returns array containing two words with double quote4611 with a multi-word surrounded by double quote missing a spece after the second double quote4612 returns array containing two words with double quote4613 with two multi-word surrounded by double quote and two words4614 returns array containing two multi-words and tow words4615 .fuzzy_arel_match4616 with a word equal to 3 chars4617 returns a single ILIKE condition4618 with a word shorter than 3 chars4619 returns a single equality condition4620 uses LOWER instead of ILIKE when LOWER is enabled4621 with two words both equal to 3 chars4622 returns a joining LIKE condition using a AND4623 with two words both shorter than 3 chars4624 returns a single ILIKE condition4625 with two words, one shorter 3 chars4626 returns a single ILIKE condition using the longer word4627 with a multi-word surrounded by double quote and two words4628 returns a joining LIKE condition using a AND4629Gitlab::AuthorizedKeys4630 #accessible?4631 authorized_keys file exists4632 can open file4633 should be truthy4634 cannot open file4635 should be falsey4636 authorized_keys file does not exist4637 should be falsey4638 #create4639 authorized_keys file exists4640 should be truthy4641 authorized_keys file does not exist4642 creates authorized_keys file4643 cannot create file4644 should be falsey4645 #add_key4646 authorized_keys file exists4647 adds a line at the end of the file and strips trailing garbage4648 authorized_keys file does not exist4649 creates the file4650 #batch_add_keys4651 authorized_keys file exists4652 adds lines at the end of the file4653 invalid key4654 doesn't add keys4655 authorized_keys file does not exist4656 creates the file4657 #rm_key4658 authorized_keys file exists4659 removes the right line4660 authorized_keys file does not exist4661 should be falsey4662 #clear4663 authorized_keys file exists4664 should be truthy4665 authorized_keys file does not exist4666 should be truthy4667 #list_key_ids4668 authorized_keys file exists4669 should eq [1, 2, 3, 9000]4670 authorized_keys file does not exist4671 should be empty4672GroupVariableEntity4673 #as_json4674 contains required fields4675Gitlab::UntrustedRegexp::RubySyntax4676 .matches_syntax?4677 returns true if regexp is valid4678 returns true if regexp is invalid, but resembles regexp4679 .valid?4680 returns true if regexp is valid4681 returns false if regexp is invalid4682 .fabricate4683 when regexp is valid4684 fabricates regexp without flags4685 when regexp is empty4686 fabricates regexp correctly4687 when regexp is a raw pattern4688 returns error4689 .fabricate!4690 safe regexp is used4691 when regexp is using /regexp/ scheme with flags4692 fabricates regexp with a single flag4693 fabricates regexp with multiple flags4694 fabricates regexp without flags4695 when unsafe regexp is used4696 when no fallback is enabled4697 raises an exception4698 when fallback is used4699 fabricates regexp with a single flag4700 fabricates regexp with multiple flags4701 fabricates regexp without flags4702 when regexp is a raw pattern4703 raises an error4704Gitlab::Popen::Runner4705 #run4706 runs the command and returns the result4707 #all_success_and_clean?4708 returns true when exit status is 0 and stderr is empty4709 returns false when exit status is not 04710 returns false when exit stderr has something4711 #all_success?4712 returns true when exit status is 04713 returns false when exit status is not 04714 returns true4715 #all_stderr_empty?4716 returns true when stderr is empty4717 returns true when exit status is not 04718 returns false when exit stderr has something4719 #failed_results4720 returns [] when everything is passed4721 returns the result when exit status is not 04722 returns [] when exit stderr has something4723 #warned_results4724 returns [] when everything is passed4725 returns [] when exit status is not 04726 returns the result when exit stderr has something4727RepositoryCheck::DispatchWorker4728 does nothing when repository checks are disabled4729 does nothing if the exclusive lease is taken4730 dispatches work to RepositoryCheck::BatchWorker4731 with unhealthy shard4732 only triggers RepositoryCheck::BatchWorker for healthy shards4733Gitlab::Ci::Pipeline::Expression::Lexeme::Matches4734 .build4735 with non-evaluable operands4736 creates a new instance of the token4737 with evaluable operands4738 creates a new instance of the token4739 .type4740 is an operator4741 .precedence4742 has a precedence4743 #evaluate4744 when left and right do not match4745 should eq false4746 when left and right match4747 should eq true4748 when left is nil4749 should eq false4750 when right is nil4751 should eq false4752 when left and right are nil4753 should eq false4754 when left is an empty string4755 should eq false4756 when left and right are empty strings4757 should eq true4758 when left is a multiline string and matches right4759 should eq true4760 when left is a multiline string and does not match right4761 should eq false4762 when a matching pattern uses regex flags4763 should eq true4764 when a non-matching pattern uses regex flags4765 should eq false4766ProgrammingLanguage4767 should respond to #name4768 should respond to #color4769 should validate that :name cannot be empty/falsy4770 should allow :color to be ‹"#000000"›4771 should not allow :color to be ‹"000000"›4772 should not allow :color to be ‹"#0z0000"›4773ExpandVariables4774 #expand4775 table tests4776 no expansion4777 should eq "key"4778 missing variable4779 should eq "key"4780 simple expansion4781 should eq "keyvalue"4782 simple with hash of variables4783 should eq "keyvalue"4784 complex expansion4785 should eq "keyvalue"4786 simple expansions4787 should eq "keyvalueresult"4788 complex expansions4789 should eq "keyvalueresult"4790 complex expansions with missing variable4791 should eq "keyvalue"4792 out-of-order expansion4793 should eq "keyresultvalue"4794 out-of-order complex expansion4795 should eq "keyresultvalue"4796 review-apps expansion4797 should eq "review/feature/add-review-apps"4798 do not lazily access variables when no expansion4799 should eq "key"4800 lazily access variables4801 should eq "keyvalue"4802 lazily inits variables4803 when expanding variable4804 calls block at most once4805 when no expansion is needed4806 does not call block4807RuboCop::Cop::RSpec::FactoriesInMigrationSpecs4808 behaves like an offensive factory call4809 registers an offense for build(:user)4810 registers an offense for build_list(:user)4811 registers an offense for create(:user)4812 registers an offense for create_list(:user)4813 behaves like an offensive factory call4814 registers an offense for FactoryBot.build(:user)4815 registers an offense for FactoryBot.build_list(:user)4816 registers an offense for FactoryBot.create(:user)4817 registers an offense for FactoryBot.create_list(:user)4818Banzai::Pipeline::EmojiPipeline4819 replaces emoji4820 filters out HTML tags4821SystemCheck::App::GitUserDefaultSSHConfigCheck4822 only whitelists safe files4823 #skip?4824 user_exists: true, home_dir_exists: true4825 should eq false4826 user_exists: true, home_dir_exists: false4827 should eq true4828 user_exists: false, home_dir_exists: true4829 should eq true4830 user_exists: false, home_dir_exists: false4831 should eq true4832 #check?4833 fails if a forbidden file exists4834 succeeds if the SSH directory doesn't exist4835 succeeds if all the whitelisted files exist4836WikiPages::BaseService4837 #increment_usage4838 raises an error on unknown events4839 the event is valid4840 updates the create counter4841 updates the update counter4842 updates the delete counter4843JiraTrackerData4844 Associations4845 should belong to service required:4846Gitlab::Metrics::SidekiqMiddleware4847 #call4848 tracks the transaction4849 tracks the transaction (for messages without `enqueued_at`)4850 tracks any raised exceptions4851Bitbucket::Representation::PullRequestComment4852 #iid4853 should eq 14854 #file_path4855 should eq "/path"4856 #old_pos4857 should eq 34858 #new_pos4859 should eq 34860 #parent_id4861 should eq 24862 should be nil4863 #inline?4864 should be truthy4865 should be falsey4866 #has_parent?4867 should be truthy4868 should be falsey4869Gitlab::Ci::Reports::TestReportsComparer4870 #suite_comparers4871 when head and base reports include two test suites4872 returns test suite comparers with specified values4873 #total_status4874 when all tests cases are success in head suites4875 returns the total status4876 when there is a failed test case in head suites4877 returns the total status in head suite4878 #total_count4879 returns the total test counts in head suites4880 #resolved_count4881 when there is a resolved test case in head suites4882 returns the correct count4883 when there are no resolved test cases in head suites4884 returns the correct count4885 #failed_count4886 when there is a failed test case in head suites4887 returns the correct count4888 when there are no failed test cases in head suites4889 returns the correct count4890HamlLint::Linter::NoPlainNodes4891 reports when a tag has an inline plain node4892 should report a lint with message '`Hello Tanuki` is a plain node. Please use an i18n method like `= _('Hello Tanuki')`'4893 reports when a tag has multiline plain nodes4894 should report a lint4895 reports when a tag has an inline plain node with interpolation4896 should report a lint4897 does not report when a tag has an inline script4898 should not report a lint4899 does not report when a tag is empty4900 should not report a lint4901 reports multiple when a tag has multiline plain nodes split by non-text nodes4902 should report a lint4903trusted_proxies4904 with default config4905 preserves private IPs4906 filters out localhost4907 filters out bad values4908 with private IP ranges added4909 filters out private and local IPs4910 with proxy IP added4911 filters out proxy IP4912 handles invalid ip addresses4913Gitlab::Ci::Pipeline::Expression::Lexeme::Equals4914 .build4915 with non-evaluable operands4916 creates a new instance of the token4917 with evaluable operands4918 creates a new instance of the token4919 .type4920 is an operator4921 .precedence4922 has a precedence4923 #evaluate4924 when left and right are equal4925 left_value: "string", right_value: "string"4926 should eq true4927 when left and right are not equal4928 left_value: "one string", right_value: "two string"4929 should eq false4930 left_value: "two string", right_value: "one string"4931 should eq false4932RuboCop::Cop::QA::ElementWithPattern4933 in a QA file4934 registers an offense for elements with a pattern4935 does not register an offense for element without a pattern4936 outside of a migration spec file4937 does not register an offense4938Gitlab::Config::Entry::Simplifiable4939 .strategy4940 defines entry strategies4941 setting strategy by a condition4942 when first strategy should be used4943 attemps to load a first strategy4944 when second strategy should be used4945 attemps to load a second strategy4946 when neither one is a valid strategy4947 instantiates an unknown strategy4948 when a unknown strategy class is not defined4949 raises an error when being initialized4950Gitlab::Ci::Status::Scheduled4951 #text4952 should eq "delayed"4953 #label4954 should eq "delayed"4955 #icon4956 should eq "status_scheduled"4957 #favicon4958 should eq "favicon_status_scheduled"4959 #group4960 should eq "scheduled"4961ChatMessage::IssueMessage4962 without markdown4963 #initialize4964 returns a non-null description4965 open4966 returns a message regarding opening of issues4967 close4968 returns a message regarding closing of issues4969 reopen4970 returns a message regarding reopening of issues4971 with markdown4972 open4973 returns a message regarding opening of issues4974 close4975 returns a message regarding closing of issues4976API::Helpers::CustomValidators4977 API::Helpers::CustomValidators::Absence4978 empty param4979 does not raise a validation error4980 invalid parameters4981 raises a validation error4982 API::Helpers::CustomValidators::IntegerNoneAny4983 valid parameters4984 does not raise a validation error4985 invalid parameters4986 raises a validation error4987 API::Helpers::CustomValidators::ArrayNoneAny4988 valid parameters4989 does not raise a validation error4990 invalid parameters4991 raises a validation error4992BitbucketServer::Representation::Repo4993 #project_key4994 should eq "TEST"4995 #project_name4996 should eq "test"4997 #slug4998 should eq "rouge"4999 #browse_url5001 #clone_url5002 should eq "http://root@localhost:7990/scm/test/rouge.git"5003 #description5004 should eq "Test"5005 #full_name5006 should eq "test/rouge"5007Gitlab::ReferenceCounter5008 increases and set the expire time of a reference count for a path5009 decreases the reference count for a path5010 warns if attempting to decrease a counter with a value of one or less, and resets the counter5011 get the reference count for a path5012Banzai::Filter::FootnoteFilter5013 when footnotes exist5014 properly adds the necessary ids and classes5015TokenAuthenticatableStrategies::Base5016 .fabricate5017 when digest stragegy is specified5018 fabricates digest strategy object5019 when encrypted strategy is specified5020 fabricates encrypted strategy object5021 when no strategy is specified5022 fabricates insecure strategy object5023 when incompatible options are provided5024 raises an error5025Gitlab::PhabricatorImport::WorkerState5026 #add_job5027 increments the counter for jobs5028 #remove_job5029 decrements the counter for jobs5030 #running_count5031 reads the value5032 returns 0 when nothing was set5033Gitlab::SidekiqVersioning5034 .install!5035 prepends SidekiqVersioning::Manager into Sidekiq::Manager5036 registers all versionless and versioned queues with Redis5037Gitlab::StringPlaceholderReplacer5038 .render_url5039 returns the nil if the string is blank5040 returns the string if the placeholder regex5041 returns the string if no block given5042 when all params are valid5043 replaces each placeholders with the block result5044 does not replace the placeholder if the block result is nil5045Gitlab::QueryLimiting::ActiveSupportSubscriber5046 #sql5047 increments the number of executed SQL queries5048 when the query is actually a rails cache hit5049 does not increment the number of executed SQL queries5050Banzai::Filter::ImageLazyLoadFilter5051 adds a class attribute5052 appends to the current class attribute5053 transforms the image src to a data-src5054 works with external images5055Gitlab::Auth::Activity5056 .each_counter5057 has all static counters defined5058 has all static incrementers defined5059 has all counters starting with `user_`5060 yields counter method, name and description5061Gitlab::GonHelper5062 #push_frontend_feature_flag5063 pushes a feature flag to the frontend5064 #default_avatar_url5065 returns an absolute URL5066Gitlab::ImportExport::HashUtil5067 .deep_symbolize_array!5068 symbolizes keys5069 .deep_symbolize_array_with_date!5070 symbolizes keys5071 transforms date strings into Time objects5072Gitlab::GrapeLogging::Loggers::QueueDurationLogger5073 .parameters5074 when no proxy time is available5075 returns an empty hash5076 when a proxy time is available5077 returns the correct duration in ms5078Gitlab::Diff::Line5079 .init_from_hash5080 round-trips correctly with to_hash5081 when setting rich text5082 escapes any HTML special characters in the diff chunk header5083Gitlab::CiAccess5084 #can_do_action?5085 when action is :build_download_code5086 should be truthy5087 when action is not :build_download_code5088 should be falsey5089Gitlab::Cluster::PumaWorkerKillerObserver5090 #callback5091 increments timeout counter5092Gitlab::Pages5093 .verify_api_request5094 returns false if fails to validate the JWT5095 returns the decoded JWT5096Bitbucket::Paginator5097 items5098 return items and raises StopIteration in the end5099PipelineBackgroundQueue5100 sets a default object storage queue automatically5101Banzai::Filter::HtmlEntityFilter5102 converts common entities to their HTML-escaped equivalents5103ProjectMirrorSerializer5104 represents ProjectMirror entities5105NamespaceSerializer5106 represents NamespaceBasicEntity entities5107Knapsack report was generated. Preview:5108{5109 "spec/services/todo_service_spec.rb": 128.2400999069214,5110 "spec/models/concerns/has_status_spec.rb": 71.44851088523865,5111 "spec/models/note_spec.rb": 49.97864007949829,5112 "spec/lib/gitlab/import_export/project_tree_restorer_spec.rb": 39.13030552864075,5113 "spec/serializers/pipeline_serializer_spec.rb": 20.98287320137024,5114 "spec/services/suggestions/apply_service_spec.rb": 17.245341539382935,5115 "spec/models/project_wiki_spec.rb": 15.094479322433472,5116 "spec/lib/gitlab/usage_data_spec.rb": 16.18821692466736,5117 "spec/lib/gitlab/email/handler/create_merge_request_handler_spec.rb": 14.664636373519897,5118 "spec/models/cycle_analytics/review_spec.rb": 14.968522310256958,5119 "spec/models/sent_notification_spec.rb": 11.100052833557129,5120 "spec/workers/concerns/waitable_worker_spec.rb": 10.062621355056763,5121 "spec/lib/gitlab/gpg_spec.rb": 9.523515701293945,5122 "spec/models/notification_recipient_spec.rb": 6.950054168701172,5123 "spec/migrations/backport_enterprise_schema_spec.rb": 7.005331754684448,5124 "spec/models/global_milestone_spec.rb": 6.8260791301727295,5125 "spec/lib/gitlab/import_export/members_mapper_spec.rb": 6.100128412246704,5126 "spec/lib/gitlab/chat/command_spec.rb": 5.654710292816162,5127 "spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb": 4.318713665008545,5128 "spec/services/git/tag_hooks_service_spec.rb": 5.335256338119507,5129 "spec/migrations/remove_redundant_pipeline_stages_spec.rb": 3.7911951541900635,5130 "spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb": 4.833857536315918,5131 "spec/services/milestones/destroy_service_spec.rb": 4.579854965209961,5132 "spec/lib/gitlab/ci/trace/chunked_io_spec.rb": 3.6886117458343506,5133 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb": 4.206944465637207,5134 "spec/lib/gitlab/diff/highlight_spec.rb": 3.176313877105713,5135 "spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb": 2.9595184326171875,5136 "spec/models/release_spec.rb": 2.5352327823638916,5137 "spec/lib/gitlab/ci/status/build/scheduled_spec.rb": 2.1958231925964355,5138 "spec/models/namespace/root_storage_statistics_spec.rb": 2.061429977416992,5139 "spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb": 1.9302551746368408,5140 "spec/helpers/auto_devops_helper_spec.rb": 2.646857261657715,5141 "spec/lib/container_registry/blob_spec.rb": 2.524080514907837,5142 "spec/lib/gitlab/diff/highlight_cache_spec.rb": 2.5807416439056396,5143 "spec/helpers/gitlab_routing_helper_spec.rb": 1.9815311431884766,5144 "spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb": 2.0896055698394775,5145 "spec/models/concerns/routable_spec.rb": 2.2371878623962402,5146 "spec/migrations/populate_project_statistics_packages_size_spec.rb": 1.1425080299377441,5147 "spec/presenters/issue_presenter_spec.rb": 2.0440995693206787,5148 "spec/services/ci/compare_test_reports_service_spec.rb": 2.3675789833068848,5149 "spec/serializers/cluster_basic_entity_spec.rb": 1.4657294750213623,5150 "spec/lib/gitlab/group_search_results_spec.rb": 1.4607462882995605,5151 "spec/policies/personal_snippet_policy_spec.rb": 1.7688038349151611,5152 "spec/tasks/gitlab/artifacts/check_rake_spec.rb": 1.4675521850585938,5153 "spec/serializers/paginated_diff_entity_spec.rb": 2.2363176345825195,5154 "spec/models/subscription_spec.rb": 0.4088561534881592,5155 "spec/serializers/build_serializer_spec.rb": 1.492490291595459,5156 "spec/lib/banzai/reference_parser/label_parser_spec.rb": 1.5849556922912598,5157 "spec/models/project_services/slack_slash_commands_service_spec.rb": 1.240382432937622,5158 "spec/views/projects/jobs/_build.html.haml_spec.rb": 0.7377796173095703,5159 "spec/models/active_session_spec.rb": 1.0994186401367188,5160 "spec/routing/git_http_routing_spec.rb": 1.4754128456115723,5161 "spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb": 1.1040596961975098,5162 "spec/finders/boards/visits_finder_spec.rb": 1.6052467823028564,5163 "spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb": 0.8034968376159668,5164 "spec/workers/build_coverage_worker_spec.rb": 0.7578942775726318,5165 "spec/models/blob_viewer/readme_spec.rb": 1.3154096603393555,5166 "spec/services/compare_service_spec.rb": 0.9333462715148926,5167 "spec/models/blob_viewer/base_spec.rb": 0.7279188632965088,5168 "spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb": 0.46025657653808594,5169 "spec/helpers/projects/error_tracking_helper_spec.rb": 0.14963793754577637,5170 "spec/models/project_authorization_spec.rb": 0.5817215442657471,5171 "spec/services/projects/update_pages_configuration_service_spec.rb": 0.6500623226165771,5172 "spec/lib/gitlab/phabricator_import/project_creator_spec.rb": 0.6144487857818604,5173 "spec/models/project_services/campfire_service_spec.rb": 0.7282209396362305,5174 "spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 0.6221137046813965,5175 "spec/models/project_services/flowdock_service_spec.rb": 0.4299814701080322,5176 "spec/helpers/user_callouts_helper_spec.rb": 0.784360408782959,5177 "spec/helpers/notifications_helper_spec.rb": 0.5428619384765625,5178 "spec/migrations/cleanup_environments_external_url_spec.rb": 0.629375696182251,5179 "spec/rubocop/cop/line_break_around_conditional_block_spec.rb": 0.29901838302612305,5180 "spec/models/identity_spec.rb": 0.2969691753387451,5181 "spec/lib/gitlab/ci/build/policy/refs_spec.rb": 0.6398093700408936,5182 "spec/helpers/wiki_helper_spec.rb": 0.7738633155822754,5183 "spec/views/projects/blob/_viewer.html.haml_spec.rb": 0.5277957916259766,5184 "spec/lib/banzai/commit_renderer_spec.rb": 0.3669753074645996,5185 "spec/models/namespace/aggregation_schedule_spec.rb": 0.3108189105987549,5186 "spec/models/user_custom_attribute_spec.rb": 0.63997483253479,5187 "spec/workers/build_hooks_worker_spec.rb": 0.48642539978027344,5188 "spec/services/namespaces/statistics_refresher_service_spec.rb": 0.3078315258026123,5189 "spec/services/keys/create_service_spec.rb": 0.35126376152038574,5190 "spec/services/users/activity_service_spec.rb": 0.3546276092529297,5191 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 0.30814409255981445,5192 "spec/lib/gitlab/serializer/pagination_spec.rb": 0.5916540622711182,5193 "spec/services/keys/last_used_service_spec.rb": 0.2643899917602539,5194 "spec/lib/constraints/user_url_constrainer_spec.rb": 0.2424168586730957,5195 "spec/models/concerns/participable_spec.rb": 0.24653267860412598,5196 "spec/serializers/user_entity_spec.rb": 0.23045134544372559,5197 "spec/models/term_agreement_spec.rb": 0.153395414352417,5198 "spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb": 0.29642701148986816,5199 "spec/lib/gitlab/redis/shared_state_spec.rb": 0.21422576904296875,5200 "spec/workers/email_receiver_worker_spec.rb": 0.26348209381103516,5201 "spec/workers/upload_checksum_worker_spec.rb": 0.27524590492248535,5202 "spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb": 0.17322039604187012,5203 "spec/lib/gitlab/favicon_spec.rb": 0.6247494220733643,5204 "spec/services/deploy_keys/create_service_spec.rb": 0.11979007720947266,5205 "spec/migrations/migrate_storage_migrator_sidekiq_queue_spec.rb": 0.11073470115661621,5206 "spec/lib/banzai/filter/asset_proxy_filter_spec.rb": 0.10977029800415039,5207 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 0.08424854278564453,5208 "spec/helpers/ci_status_helper_spec.rb": 0.09468483924865723,5209 "spec/models/concerns/optionally_search_spec.rb": 0.06935286521911621,5210 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.06802701950073242,5211 "spec/lib/system_check/simple_executor_spec.rb": 0.05976557731628418,5212 "spec/lib/gitlab_spec.rb": 0.06601405143737793,5213 "spec/lib/gitlab/sql/pattern_spec.rb": 0.05987381935119629,5214 "spec/lib/gitlab/authorized_keys_spec.rb": 0.0502009391784668,5215 "spec/serializers/group_variable_entity_spec.rb": 0.0601193904876709,5216 "spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb": 0.32601356506347656,5217 "spec/lib/gitlab/popen/runner_spec.rb": 0.05661177635192871,5218 "spec/workers/repository_check/dispatch_worker_spec.rb": 0.056101083755493164,5219 "spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb": 0.0534212589263916,5220 "spec/models/programming_language_spec.rb": 0.0677337646484375,5221 "spec/lib/expand_variables_spec.rb": 0.04065370559692383,5222 "spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb": 0.03868460655212402,5223 "spec/lib/banzai/pipeline/emoji_pipeline_spec.rb": 0.026125431060791016,5224 "spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb": 0.030165910720825195,5225 "spec/services/wiki_pages/base_service_spec.rb": 0.03053450584411621,5226 "spec/models/project_services/jira_tracker_data_spec.rb": 0.03143739700317383,5227 "spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb": 0.02458024024963379,5228 "spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 0.02527785301208496,5229 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.0205996036529541,5230 "spec/haml_lint/linter/no_plain_nodes_spec.rb": 0.023376941680908203,5231 "spec/initializers/trusted_proxies_spec.rb": 0.019730806350708008,5232 "spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb": 0.015871524810791016,5233 "spec/rubocop/cop/qa/element_with_pattern_spec.rb": 0.017710208892822266,5234 "spec/lib/gitlab/config/entry/simplifiable_spec.rb": 0.011402130126953125,5235 "spec/lib/gitlab/ci/status/scheduled_spec.rb": 0.010437488555908203,5236 "spec/models/project_services/chat_message/issue_message_spec.rb": 0.013912677764892578,5237 "spec/lib/api/helpers/custom_validators_spec.rb": 0.01504373550415039,5238 "spec/lib/bitbucket_server/representation/repo_spec.rb": 0.018646717071533203,5239 "spec/lib/gitlab/reference_counter_spec.rb": 0.0130462646484375,5240 "spec/lib/banzai/filter/footnote_filter_spec.rb": 0.008594036102294922,5241 "spec/models/concerns/token_authenticatable_strategies/base_spec.rb": 0.010233640670776367,5242 "spec/lib/gitlab/phabricator_import/worker_state_spec.rb": 0.015331506729125977,5243 "spec/lib/gitlab/sidekiq_versioning_spec.rb": 0.009429454803466797,5244 "spec/lib/gitlab/string_placeholder_replacer_spec.rb": 0.014635562896728516,5245 "spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb": 0.019013404846191406,5246 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.014216423034667969,5247 "spec/lib/gitlab/auth/activity_spec.rb": 0.013264656066894531,5248 "spec/lib/gitlab/gon_helper_spec.rb": 0.010268211364746094,5249 "spec/lib/gitlab/import_export/hash_util_spec.rb": 0.009656190872192383,5250 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.006801605224609375,5251 "spec/lib/gitlab/diff/line_spec.rb": 0.007052183151245117,5252 "spec/lib/gitlab/ci_access_spec.rb": 0.006310224533081055,5253 "spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb": 0.005306243896484375,5254 "spec/lib/gitlab/pages_spec.rb": 0.008442401885986328,5255 "spec/lib/bitbucket/paginator_spec.rb": 0.005194425582885742,5256 "spec/workers/concerns/pipeline_background_queue_spec.rb": 0.004019021987915039,5257 "spec/lib/banzai/filter/html_entity_filter_spec.rb": 0.004607200622558594,5258 "spec/serializers/project_mirror_serializer_spec.rb": 0.004028797149658203,5259 "spec/serializers/namespace_serializer_spec.rb": 0.0047597885131835945260}5261Knapsack global time execution for tests: 09m 17s5262Finished in 12 minutes 12 seconds (files took 45.04 seconds to load)52631843 examples, 0 failures5264Wed Oct 16 17:18:25 UTC 20195266$ date5267Wed Oct 16 17:18:34 UTC 20195270coverage/: found 5 matching files 5271knapsack/: found 6 matching files 5272rspec_flaky/: found 4 matching files 5273rspec_profiling/: found 1 matching files 5274WARNING: tmp/capybara/: no matching files 5275tmp/memory_test/: found 2 matching files 5276Uploading artifacts to coordinator... ok id=322922862 responseStatus=201 Created token=bw-o689j5277Uploading artifacts...5278junit_rspec.xml: found 1 matching files 5279Uploading artifacts to coordinator... ok id=322922862 responseStatus=201 Created token=bw-o689j5280Job succeeded