rspec unit pg10 14/20
Passed Started
by
@grzesiek

Grzegorz Bizon
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com 1d6b581d 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-10-graphicsmagick-1.3.33 ...
00:34
4Starting service postgres:10.9 ...5Pulling docker image postgres:10.9 ...6Using docker image sha256:897b33033d6498ba789d2ad5b305209106c8b45622b37ad135440a584ec885d3 for postgres:10.9 ...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-10-graphicsmagick-1.3.33 ...13Using docker image sha256:dcf4786fd50b15f740bae46bb29ced066a62c830344c3b677eb145af82e758ae 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-10-graphicsmagick-1.3.33 ... 14 Running on runner-1d6b581d-project-278964-concurrent-0 via runner-1d6b581d-gsrm-1571120336-0c8b2339...
00:05
16Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/18 * [new ref] refs/pipelines/88859459 -> refs/pipelines/8885945919 d51133ad7..8bd324dc2 master -> origin/master20Checking out f5bf17c9 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/audit_json.log38Removing log/git_json.log39Removing log/gitaly-test.log40Removing log/grpc.log41Removing log/importer.log42Removing log/integrations_json.log43Removing log/kubernetes.log44Removing log/test_json.log45Removing node_modules/46Removing public/assets/47Removing rspec_flaky/48Removing rspec_profiling/49Removing shared/tmp/50Removing tmp/cache/51Removing tmp/memory_test/52Removing tmp/prometheus_multiproc_dir/counter_process_113-0.db53Removing tmp/prometheus_multiproc_dir/gauge_all_process_113-0.db54Removing tmp/prometheus_multiproc_dir/histogram_process_113-0.db55Removing tmp/prometheus_multiproc_dir/summary_process_113-0.db56Removing tmp/tests/57Removing vendor/gitaly-ruby/58Removing vendor/ruby/59Skipping Git submodules setup61Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 62Successfully extracted cache64Downloading artifacts from coordinator... ok id=321109103 responseStatus=200 OK token=XMSy3Ehb65Downloading artifacts for setup-test-env (321109105)...66Downloading artifacts from coordinator... ok id=321109105 responseStatus=200 OK token=wfkozyzh67WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 68Downloading artifacts for retrieve-tests-metadata (321109113)...69Downloading artifacts from coordinator... ok id=321109113 responseStatus=200 OK token=rMBaZ9wv71$ date72Tue Oct 15 08:39:58 UTC 201973$ export GOPATH=$CI_PROJECT_DIR/.go74$ mkdir -p $GOPATH75$ source scripts/utils.sh76$ source scripts/prepare_build.sh77Bundler version 1.17.278Warning: 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`.79The Gemfile's dependencies are satisfied80Successfully installed knapsack-1.18.0811 gem installed82CREATE ROLE83GRANT84Dropped database 'gitlabhq_test'85Created database 'gitlabhq_test'86-- enable_extension("pg_trgm")87 -> 0.0319s88-- enable_extension("plpgsql")89 -> 0.0028s90-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})91 -> 0.0043s92-- create_table("alerts_service_data", {:force=>:cascade})93 -> 0.0060s94-- create_table("allowed_email_domains", {:force=>:cascade})95 -> 0.0043s96-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})97 -> 0.0139s98-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})99 -> 0.0137s100-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})101 -> 0.0074s102-- create_table("analytics_repository_file_commits", {:force=>:cascade})103 -> 0.0064s104-- create_table("analytics_repository_files", {:force=>:cascade})105 -> 0.0049s106-- create_table("appearances", {:id=>:serial, :force=>:cascade})107 -> 0.0034s108-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})109 -> 0.0024s110-- create_table("application_settings", {:id=>:serial, :force=>:cascade})111 -> 0.1035s112-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})113 -> 0.0078s114-- create_table("approval_merge_request_rules", {:force=>:cascade})115 -> 0.0175s116-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})117 -> 0.0073s118-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})119 -> 0.0072s120-- create_table("approval_merge_request_rules_users", {:force=>:cascade})121 -> 0.0072s122-- create_table("approval_project_rules", {:force=>:cascade})123 -> 0.0115s124-- create_table("approval_project_rules_groups", {:force=>:cascade})125 -> 0.0072s126-- create_table("approval_project_rules_users", {:force=>:cascade})127 -> 0.0076s128-- create_table("approvals", {:id=>:serial, :force=>:cascade})129 -> 0.0071s130-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})131 -> 0.0080s132-- create_table("approvers", {:id=>:serial, :force=>:cascade})133 -> 0.0083s134-- create_table("audit_events", {:id=>:serial, :force=>:cascade})135 -> 0.0083s136-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})137 -> 0.0079s138-- create_table("badges", {:id=>:serial, :force=>:cascade})139 -> 0.0079s140-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})141 -> 0.0075s142-- create_table("board_group_recent_visits", {:force=>:cascade})143 -> 0.0123s144-- create_table("board_labels", {:id=>:serial, :force=>:cascade})145 -> 0.0072s146-- create_table("board_project_recent_visits", {:force=>:cascade})147 -> 0.0120s148-- create_table("boards", {:id=>:serial, :force=>:cascade})149 -> 0.0115s150-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})151 -> 0.0063s152-- create_table("chat_names", {:id=>:serial, :force=>:cascade})153 -> 0.0092s154-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})155 -> 0.0058s156-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})157 -> 0.0068s158-- create_table("ci_build_trace_chunks", {:force=>:cascade})159 -> 0.0049s160-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})161 -> 0.0048s162-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})163 -> 0.0086s164-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})165 -> 0.0587s166-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})167 -> 0.0098s168-- create_table("ci_builds_runner_session", {:force=>:cascade})169 -> 0.0049s170-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})171 -> 0.0068s172-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})173 -> 0.0136s174-- create_table("ci_job_variables", {:force=>:cascade})175 -> 0.0071s176-- create_table("ci_pipeline_chat_data", {:force=>:cascade})177 -> 0.0067s178-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})179 -> 0.0053s180-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})181 -> 0.0096s182-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})183 -> 0.0053s184-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})185 -> 0.0316s186-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})187 -> 0.0062s188-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})189 -> 0.0063s190-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})191 -> 0.0191s192-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})193 -> 0.0127s194-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})195 -> 0.0116s196-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})197 -> 0.0068s198-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})199 -> 0.0071s200-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})201 -> 0.0070s202-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})203 -> 0.0071s204-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})205 -> 0.0049s206-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})207 -> 0.0063s208-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})209 -> 0.0081s210-- create_table("clusters", {:id=>:serial, :force=>:cascade})211 -> 0.0119s212-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})213 -> 0.0052s214-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})215 -> 0.0050s216-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})217 -> 0.0052s218-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})219 -> 0.0072s220-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})221 -> 0.0050s222-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})223 -> 0.0052s224-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})225 -> 0.0075s226-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})227 -> 0.0156s228-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})229 -> 0.0068s230-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})231 -> 0.0079s232-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})233 -> 0.0053s234-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})235 -> 0.0047s236-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})237 -> 0.0047s238-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})239 -> 0.0106s240-- create_table("deployments", {:id=>:serial, :force=>:cascade})241 -> 0.0246s242-- create_table("design_management_designs", {:force=>:cascade})243 -> 0.0070s244-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})245 -> 0.0105s246-- create_table("design_management_versions", {:force=>:cascade})247 -> 0.0091s248-- create_table("draft_notes", {:force=>:cascade})249 -> 0.0100s250-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})251 -> 0.0035s252-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})253 -> 0.0034s254-- create_table("emails", {:id=>:serial, :force=>:cascade})255 -> 0.0094s256-- create_table("environments", {:id=>:serial, :force=>:cascade})257 -> 0.0118s258-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})259 -> 0.0065s260-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})261 -> 0.0043s262-- create_table("epics", {:id=>:serial, :force=>:cascade})263 -> 0.0225s264-- create_table("events", {:id=>:serial, :force=>:cascade})265 -> 0.0178s266-- create_table("external_pull_requests", {:force=>:cascade})267 -> 0.0052s268-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})269 -> 0.0049s270-- create_table("features", {:id=>:serial, :force=>:cascade})271 -> 0.0049s272-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})273 -> 0.0087s274-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})275 -> 0.0048s276-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})277 -> 0.0042s278-- create_table("geo_cache_invalidation_events", {:force=>:cascade})279 -> 0.0036s280-- create_table("geo_container_repository_updated_events", {:force=>:cascade})281 -> 0.0044s282-- create_table("geo_event_log", {:force=>:cascade})283 -> 0.0295s284-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})285 -> 0.0047s286-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})287 -> 0.0052s288-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})289 -> 0.0048s290-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})291 -> 0.0047s292-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})293 -> 0.0083s294-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})295 -> 0.0062s296-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})297 -> 0.0137s298-- create_table("geo_repositories_changed_events", {:force=>:cascade})299 -> 0.0041s300-- create_table("geo_repository_created_events", {:force=>:cascade})301 -> 0.0048s302-- create_table("geo_repository_deleted_events", {:force=>:cascade})303 -> 0.0046s304-- create_table("geo_repository_renamed_events", {:force=>:cascade})305 -> 0.0047s306-- create_table("geo_repository_updated_events", {:force=>:cascade})307 -> 0.0075s308-- create_table("geo_reset_checksum_events", {:force=>:cascade})309 -> 0.0040s310-- create_table("geo_upload_deleted_events", {:force=>:cascade})311 -> 0.0049s312-- create_table("gitlab_subscriptions", {:force=>:cascade})313 -> 0.0078s314-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})315 -> 0.0114s316-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})317 -> 0.0091s318-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})319 -> 0.0138s320-- create_table("grafana_integrations", {:force=>:cascade})321 -> 0.0049s322-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})323 -> 0.0069s324-- create_table("historical_data", {:id=>:serial, :force=>:cascade})325 -> 0.0022s326-- create_table("identities", {:id=>:serial, :force=>:cascade})327 -> 0.0094s328-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})329 -> 0.0071s330-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})331 -> 0.0057s332-- create_table("insights", {:id=>:serial, :force=>:cascade})333 -> 0.0064s334-- create_table("internal_ids", {:force=>:cascade})335 -> 0.0105s336-- create_table("ip_restrictions", {:force=>:cascade})337 -> 0.0047s338-- create_table("issue_assignees", {:id=>false, :force=>:cascade})339 -> 0.0054s340-- create_table("issue_links", {:id=>:serial, :force=>:cascade})341 -> 0.0082s342-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})343 -> 0.0064s344-- create_table("issue_tracker_data", {:force=>:cascade})345 -> 0.0050s346-- create_table("issues", {:id=>:serial, :force=>:cascade})347 -> 0.0397s348-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})349 -> 0.0053s350-- create_table("jira_connect_installations", {:force=>:cascade})351 -> 0.0049s352-- create_table("jira_connect_subscriptions", {:force=>:cascade})353 -> 0.0087s354-- create_table("jira_tracker_data", {:force=>:cascade})355 -> 0.0054s356-- create_table("keys", {:id=>:serial, :force=>:cascade})357 -> 0.0098s358-- create_table("label_links", {:id=>:serial, :force=>:cascade})359 -> 0.0074s360-- 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.0026s366-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})367 -> 0.0069s368-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})369 -> 0.0069s370-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})371 -> 0.0063s372-- create_table("licenses", {:id=>:serial, :force=>:cascade})373 -> 0.0029s374-- create_table("list_user_preferences", {:force=>:cascade})375 -> 0.0084s376-- create_table("lists", {:id=>:serial, :force=>:cascade})377 -> 0.0134s378-- create_table("members", {:id=>:serial, :force=>:cascade})379 -> 0.0179s380-- create_table("merge_request_assignees", {:force=>:cascade})381 -> 0.0082s382-- create_table("merge_request_blocks", {:force=>:cascade})383 -> 0.0064s384-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})385 -> 0.0059s386-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})387 -> 0.0041s388-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})389 -> 0.0070s390-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})391 -> 0.0187s392-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})393 -> 0.0507s394-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})395 -> 0.0063s396-- create_table("merge_trains", {:force=>:cascade})397 -> 0.0116s398-- create_table("milestone_releases", {:id=>false, :force=>:cascade})399 -> 0.0065s400-- create_table("milestones", {:id=>:serial, :force=>:cascade})401 -> 0.0159s402-- 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.0062s406-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})407 -> 0.0046s408-- create_table("namespaces", {:id=>:serial, :force=>:cascade})409 -> 0.0454s410-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})411 -> 0.0048s412-- create_table("notes", {:id=>:serial, :force=>:cascade})413 -> 0.0243s414-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})415 -> 0.0099s416-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})417 -> 0.0051s418-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})419 -> 0.0113s420-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})421 -> 0.0084s422-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})423 -> 0.0049s424-- create_table("operations_feature_flag_scopes", {:force=>:cascade})425 -> 0.0062s426-- create_table("operations_feature_flags", {:force=>:cascade})427 -> 0.0058s428-- create_table("operations_feature_flags_clients", {:force=>:cascade})429 -> 0.0073s430-- create_table("packages_maven_metadata", {:force=>:cascade})431 -> 0.0052s432-- create_table("packages_package_files", {:force=>:cascade})433 -> 0.0050s434-- create_table("packages_package_metadata", {:force=>:cascade})435 -> 0.0047s436-- create_table("packages_package_tags", {:force=>:cascade})437 -> 0.0042s438-- create_table("packages_packages", {:force=>:cascade})439 -> 0.0070s440-- create_table("pages_domain_acme_orders", {:force=>:cascade})441 -> 0.0071s442-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})443 -> 0.0189s444-- create_table("path_locks", {:id=>:serial, :force=>:cascade})445 -> 0.0092s446-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})447 -> 0.0083s448-- create_table("plans", {:id=>:serial, :force=>:cascade})449 -> 0.0053s450-- create_table("pool_repositories", {:force=>:cascade})451 -> 0.0089s452-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})453 -> 0.0047s454-- 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.0045s462-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})463 -> 0.0049s464-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})465 -> 0.0069s466-- create_table("project_daily_statistics", {:force=>:cascade})467 -> 0.0043s468-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})469 -> 0.0062s470-- 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.0078s474-- create_table("project_features", {:id=>:serial, :force=>:cascade})475 -> 0.0065s476-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})477 -> 0.0071s478-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})479 -> 0.0050s480-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})481 -> 0.0034s482-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})483 -> 0.0020s484-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})485 -> 0.0165s486-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})487 -> 0.0069s488-- create_table("project_repositories", {:force=>:cascade})489 -> 0.0103s490-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})491 -> 0.0187s492-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})493 -> 0.0109s494-- create_table("project_tracing_settings", {:force=>:cascade})495 -> 0.0057s496-- create_table("projects", {:id=>:serial, :force=>:cascade})497 -> 0.0836s498-- create_table("prometheus_alert_events", {:force=>:cascade})499 -> 0.0079s500-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})501 -> 0.0101s502-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})503 -> 0.0133s504-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})505 -> 0.0100s506-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})507 -> 0.0100s508-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})509 -> 0.0103s510-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})511 -> 0.0087s512-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})513 -> 0.0103s514-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})515 -> 0.0079s516-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})517 -> 0.0107s518-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})519 -> 0.0108s520-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})521 -> 0.0043s522-- create_table("push_rules", {:id=>:serial, :force=>:cascade})523 -> 0.0099s524-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})525 -> 0.0092s526-- create_table("release_links", {:force=>:cascade})527 -> 0.0071s528-- create_table("releases", {:id=>:serial, :force=>:cascade})529 -> 0.0072s530-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})531 -> 0.0095s532-- create_table("repository_languages", {:id=>false, :force=>:cascade})533 -> 0.0047s534-- create_table("resource_label_events", {:force=>:cascade})535 -> 0.0217s536-- create_table("reviews", {:force=>:cascade})537 -> 0.0089s538-- create_table("routes", {:id=>:serial, :force=>:cascade})539 -> 0.0094s540-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})541 -> 0.0058s542-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})543 -> 0.0050s544-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})545 -> 0.0052s546-- create_table("services", {:id=>:serial, :force=>:cascade})547 -> 0.0167s548-- create_table("shards", {:id=>:serial, :force=>:cascade})549 -> 0.0047s550-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})551 -> 0.0073s552-- create_table("smartcard_identities", {:force=>:cascade})553 -> 0.0069s554-- create_table("snippets", {:id=>:serial, :force=>:cascade})555 -> 0.0190s556-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})557 -> 0.0072s558-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})559 -> 0.0073s560-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})561 -> 0.0037s562-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})563 -> 0.0075s564-- create_table("suggestions", {:force=>:cascade})565 -> 0.0070s566-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})567 -> 0.0050s568-- create_table("taggings", {:id=>:serial, :force=>:cascade})569 -> 0.0121s570-- create_table("tags", {:id=>:serial, :force=>:cascade})571 -> 0.0078s572-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})573 -> 0.0091s574-- create_table("timelogs", {:id=>:serial, :force=>:cascade})575 -> 0.0089s576-- create_table("todos", {:id=>:serial, :force=>:cascade})577 -> 0.0225s578-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})579 -> 0.0043s580-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})581 -> 0.0072s582-- create_table("uploads", {:id=>:serial, :force=>:cascade})583 -> 0.0113s584-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})585 -> 0.0060s586-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})587 -> 0.0078s588-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})589 -> 0.0084s590-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})591 -> 0.0059s592-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})593 -> 0.0087s594-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})595 -> 0.0062s596-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})597 -> 0.0072s598-- create_table("users", {:id=>:serial, :force=>:cascade})599 -> 0.0807s600-- create_table("users_ops_dashboard_projects", {:force=>:cascade})601 -> 0.0076s602-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})603 -> 0.0077s604-- create_table("vulnerabilities", {:force=>:cascade})605 -> 0.0259s606-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})607 -> 0.0176s608-- create_table("vulnerability_identifiers", {:force=>:cascade})609 -> 0.0059s610-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})611 -> 0.0083s612-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})613 -> 0.0080s614-- create_table("vulnerability_occurrences", {:force=>:cascade})615 -> 0.0160s616-- create_table("vulnerability_scanners", {:force=>:cascade})617 -> 0.0061s618-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})619 -> 0.0086s620-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})621 -> 0.0148s622-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})623 -> 0.0031s624-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})625 -> 0.0029s626-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})627 -> 0.0025s628-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})629 -> 0.0018s630-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})631 -> 0.0019s632-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})633 -> 0.0019s634-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})635 -> 0.0016s636-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})637 -> 0.0040s638-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})639 -> 0.0020s640-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})641 -> 0.0021s642-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})643 -> 0.0019s644-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})645 -> 0.0020s646-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})647 -> 0.0019s648-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})649 -> 0.0038s650-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})651 -> 0.0031s652-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})653 -> 0.0042s654-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})655 -> 0.0050s656-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})657 -> 0.0027s658-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})659 -> 0.0022s660-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})661 -> 0.0038s662-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})663 -> 0.0024s664-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})665 -> 0.0024s666-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})667 -> 0.0024s668-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})669 -> 0.0020s670-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})671 -> 0.0021s672-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})673 -> 0.0024s674-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})675 -> 0.0024s676-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})677 -> 0.0020s678-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})679 -> 0.0019s680-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})681 -> 0.0019s682-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})683 -> 0.0023s684-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})685 -> 0.0021s686-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})687 -> 0.0020s688-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})689 -> 0.0020s690-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})691 -> 0.0021s692-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})693 -> 0.0019s694-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})695 -> 0.0019s696-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})697 -> 0.0018s698-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})699 -> 0.0019s700-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})701 -> 0.0022s702-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})703 -> 0.0018s704-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})705 -> 0.0016s706-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})707 -> 0.0017s708-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})709 -> 0.0023s710-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})711 -> 0.0020s712-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})713 -> 0.0018s714-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})715 -> 0.0021s716-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})717 -> 0.0019s718-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})719 -> 0.0033s720-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})721 -> 0.0019s722-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})723 -> 0.0024s724-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})725 -> 0.0017s726-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})727 -> 0.0019s728-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})729 -> 0.0021s730-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})731 -> 0.0029s732-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})733 -> 0.0019s734-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})735 -> 0.0018s736-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})737 -> 0.0020s738-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})739 -> 0.0024s740-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})741 -> 0.0020s742-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})743 -> 0.0022s744-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})745 -> 0.0019s746-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})747 -> 0.0018s748-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})749 -> 0.0021s750-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})751 -> 0.0023s752-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})753 -> 0.0021s754-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})755 -> 0.0019s756-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})757 -> 0.0016s758-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})759 -> 0.0017s760-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})761 -> 0.0023s762-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})763 -> 0.0020s764-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})765 -> 0.0017s766-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})767 -> 0.0017s768-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})769 -> 0.0015s770-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})771 -> 0.0019s772-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})773 -> 0.0020s774-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})775 -> 0.0023s776-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})777 -> 0.0020s778-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})779 -> 0.0019s780-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})781 -> 0.0023s782-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})783 -> 0.0021s784-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})785 -> 0.0016s786-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})787 -> 0.0017s788-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})789 -> 0.0020s790-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})791 -> 0.0022s792-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})793 -> 0.0024s794-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})795 -> 0.0023s796-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})797 -> 0.0017s798-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})799 -> 0.0021s800-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})801 -> 0.0020s802-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})803 -> 0.0022s804-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})805 -> 0.0019s806-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})807 -> 0.0018s808-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})809 -> 0.0017s810-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})811 -> 0.0017s812-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})813 -> 0.0023s814-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})815 -> 0.0018s816-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})817 -> 0.0021s818-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})819 -> 0.0022s820-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})821 -> 0.0018s822-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})823 -> 0.0017s824-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})825 -> 0.0023s826-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})827 -> 0.0018s828-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})829 -> 0.0020s830-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})831 -> 0.0018s832-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})833 -> 0.0017s834-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})835 -> 0.0018s836-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})837 -> 0.0015s838-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})839 -> 0.0019s840-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})841 -> 0.0016s842-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})843 -> 0.0019s844-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})845 -> 0.0023s846-- add_foreign_key("container_repositories", "projects")847 -> 0.0021s848-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})849 -> 0.0018s850-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})851 -> 0.0017s852-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})853 -> 0.0021s854-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})855 -> 0.0021s856-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})857 -> 0.0023s858-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})859 -> 0.0027s860-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})861 -> 0.0025s862-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})863 -> 0.0017s864-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})865 -> 0.0016s866-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})867 -> 0.0018s868-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})869 -> 0.0021s870-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})871 -> 0.0021s872-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})873 -> 0.0019s874-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})875 -> 0.0019s876-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})877 -> 0.0021s878-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})879 -> 0.0021s880-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})881 -> 0.0022s882-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})883 -> 0.0018s884-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})885 -> 0.0018s886-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})887 -> 0.0015s888-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})889 -> 0.0022s890-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})891 -> 0.0019s892-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})893 -> 0.0021s894-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})895 -> 0.0021s896-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})897 -> 0.0019s898-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})899 -> 0.0022s900-- add_foreign_key("events", "projects", {:on_delete=>:cascade})901 -> 0.0022s902-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})903 -> 0.0020s904-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})905 -> 0.0022s906-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})907 -> 0.0019s908-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})909 -> 0.0021s910-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})911 -> 0.0022s912-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})913 -> 0.0019s914-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})915 -> 0.0022s916-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})917 -> 0.0017s918-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})919 -> 0.0024s920-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})921 -> 0.0015s922-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})923 -> 0.0018s924-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})925 -> 0.0016s926-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})927 -> 0.0016s928-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})929 -> 0.0019s930-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})931 -> 0.0016s932-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})933 -> 0.0026s934-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})935 -> 0.0016s936-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})937 -> 0.0017s938-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})939 -> 0.0016s940-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})941 -> 0.0017s942-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})943 -> 0.0024s944-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})945 -> 0.0024s946-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})947 -> 0.0021s948-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})949 -> 0.0020s950-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})951 -> 0.0020s952-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})953 -> 0.0022s954-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})955 -> 0.0022s956-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})957 -> 0.0022s958-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})959 -> 0.0021s960-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})961 -> 0.0022s962-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})963 -> 0.0020s964-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})965 -> 0.0015s966-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})967 -> 0.0018s968-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})969 -> 0.0021s970-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})971 -> 0.0018s972-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})973 -> 0.0016s974-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})975 -> 0.0021s976-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})977 -> 0.0023s978-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})979 -> 0.0019s980-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})981 -> 0.0018s982-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})983 -> 0.0022s984-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})985 -> 0.0022s986-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})987 -> 0.0021s988-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})989 -> 0.0020s990-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})991 -> 0.0020s992-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})993 -> 0.0023s994-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})995 -> 0.0018s996-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})997 -> 0.0017s998-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})999 -> 0.0019s1000-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1001 -> 0.0018s1002-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1003 -> 0.0015s1004-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1005 -> 0.0018s1006-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1007 -> 0.0017s1008-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1009 -> 0.0018s1010-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1011 -> 0.0017s1012-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1013 -> 0.0018s1014-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1015 -> 0.0024s1016-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1017 -> 0.0022s1018-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1019 -> 0.0022s1020-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1021 -> 0.0022s1022-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1023 -> 0.0021s1024-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1025 -> 0.0019s1026-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1027 -> 0.0020s1028-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1029 -> 0.0021s1030-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1031 -> 0.0018s1032-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1033 -> 0.0017s1034-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1035 -> 0.0018s1036-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1037 -> 0.0024s1038-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1039 -> 0.0020s1040-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1041 -> 0.0025s1042-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1043 -> 0.0024s1044-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1045 -> 0.0021s1046-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1047 -> 0.0047s1048-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1049 -> 0.0030s1050-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1051 -> 0.0020s1052-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1053 -> 0.0019s1054-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1055 -> 0.0019s1056-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1057 -> 0.0022s1058-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1059 -> 0.0025s1060-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1061 -> 0.0021s1062-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1063 -> 0.0024s1064-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1065 -> 0.0021s1066-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1067 -> 0.0018s1068-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1069 -> 0.0020s1070-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1071 -> 0.0016s1072-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1073 -> 0.0018s1074-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1075 -> 0.0022s1076-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1077 -> 0.0020s1078-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1079 -> 0.0023s1080-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1081 -> 0.0022s1082-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1083 -> 0.0020s1084-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1085 -> 0.0025s1086-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1087 -> 0.0021s1088-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1089 -> 0.0025s1090-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1091 -> 0.0028s1092-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1093 -> 0.0025s1094-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1095 -> 0.0024s1096-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1097 -> 0.0024s1098-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1099 -> 0.0024s1100-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1101 -> 0.0022s1102-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1103 -> 0.0027s1104-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1105 -> 0.0018s1106-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1107 -> 0.0016s1108-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1109 -> 0.0020s1110-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1111 -> 0.0019s1112-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1113 -> 0.0014s1114-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1115 -> 0.0014s1116-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1117 -> 0.0018s1118-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1119 -> 0.0020s1120-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1121 -> 0.0017s1122-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1123 -> 0.0017s1124-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1125 -> 0.0016s1126-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1127 -> 0.0017s1128-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1129 -> 0.0016s1130-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1131 -> 0.0023s1132-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1133 -> 0.0021s1134-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1135 -> 0.0020s1136-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1137 -> 0.0016s1138-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1139 -> 0.0022s1140-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1141 -> 0.0014s1142-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1143 -> 0.0015s1144-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1145 -> 0.0018s1146-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1147 -> 0.0019s1148-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1149 -> 0.0014s1150-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1151 -> 0.0013s1152-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1153 -> 0.0013s1154-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1155 -> 0.0013s1156-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1157 -> 0.0018s1158-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1159 -> 0.0020s1160-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1161 -> 0.0019s1162-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1163 -> 0.0019s1164-- add_foreign_key("path_locks", "users")1165 -> 0.0019s1166-- add_foreign_key("personal_access_tokens", "users")1167 -> 0.0020s1168-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1169 -> 0.0019s1170-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1171 -> 0.0015s1172-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1173 -> 0.0019s1174-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1175 -> 0.0019s1176-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1177 -> 0.0019s1178-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1179 -> 0.0018s1180-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1181 -> 0.0018s1182-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1183 -> 0.0020s1184-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1185 -> 0.0019s1186-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1187 -> 0.0018s1188-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1189 -> 0.0018s1190-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1191 -> 0.0018s1192-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1193 -> 0.0019s1194-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1195 -> 0.0020s1196-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1197 -> 0.0019s1198-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1199 -> 0.0020s1200-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1201 -> 0.0019s1202-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1203 -> 0.0018s1204-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1205 -> 0.0018s1206-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1207 -> 0.0021s1208-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1209 -> 0.0019s1210-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1211 -> 0.0019s1212-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1213 -> 0.0013s1214-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1215 -> 0.0025s1216-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1217 -> 0.0020s1218-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1219 -> 0.0019s1220-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1221 -> 0.0020s1222-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1223 -> 0.0018s1224-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1225 -> 0.0015s1226-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1227 -> 0.0013s1228-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1229 -> 0.0019s1230-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1231 -> 0.0016s1232-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1233 -> 0.0018s1234-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1235 -> 0.0019s1236-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1237 -> 0.0023s1238-- add_foreign_key("protected_branch_merge_access_levels", "users")1239 -> 0.0018s1240-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1241 -> 0.0019s1242-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1243 -> 0.0014s1244-- add_foreign_key("protected_branch_push_access_levels", "users")1245 -> 0.0018s1246-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1247 -> 0.0019s1248-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1249 -> 0.0013s1250-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1251 -> 0.0018s1252-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1253 -> 0.0019s1254-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1255 -> 0.0017s1256-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1257 -> 0.0014s1258-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1259 -> 0.0017s1260-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1261 -> 0.0018s1262-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1263 -> 0.0017s1264-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1265 -> 0.0014s1266-- add_foreign_key("protected_tag_create_access_levels", "users")1267 -> 0.0018s1268-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1269 -> 0.0019s1270-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1271 -> 0.0015s1272-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1273 -> 0.0021s1274-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1275 -> 0.0015s1276-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1277 -> 0.0020s1278-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1279 -> 0.0017s1280-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1281 -> 0.0021s1282-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1283 -> 0.0018s1284-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1285 -> 0.0018s1286-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1287 -> 0.0016s1288-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1289 -> 0.0014s1290-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1291 -> 0.0017s1292-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1293 -> 0.0018s1294-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1295 -> 0.0017s1296-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1297 -> 0.0019s1298-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1299 -> 0.0018s1300-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1301 -> 0.0016s1302-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1303 -> 0.0017s1304-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1305 -> 0.0020s1306-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1307 -> 0.0015s1308-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1309 -> 0.0019s1310-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1311 -> 0.0022s1312-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1313 -> 0.0019s1314-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1315 -> 0.0015s1316-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1317 -> 0.0020s1318-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1319 -> 0.0015s1320-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1321 -> 0.0015s1322-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1323 -> 0.0014s1324-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1325 -> 0.0018s1326-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1327 -> 0.0017s1328-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1329 -> 0.0026s1330-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1331 -> 0.0023s1332-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1333 -> 0.0017s1334-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1335 -> 0.0023s1336-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1337 -> 0.0019s1338-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1339 -> 0.0018s1340-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1341 -> 0.0020s1342-- add_foreign_key("u2f_registrations", "users")1343 -> 0.0020s1344-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1345 -> 0.0019s1346-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1347 -> 0.0019s1348-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1349 -> 0.0021s1350-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1351 -> 0.0017s1352-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1353 -> 0.0019s1354-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1355 -> 0.0018s1356-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1357 -> 0.0019s1358-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1359 -> 0.0017s1360-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1361 -> 0.0024s1362-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1363 -> 0.0021s1364-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1365 -> 0.0019s1366-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1367 -> 0.0021s1368-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1369 -> 0.0021s1370-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1371 -> 0.0014s1372-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1373 -> 0.0014s1374-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1375 -> 0.0015s1376-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1377 -> 0.0020s1378-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1379 -> 0.0017s1380-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1381 -> 0.0017s1382-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1383 -> 0.0020s1384-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1385 -> 0.0023s1386-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1387 -> 0.0019s1388-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1389 -> 0.0016s1390-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1391 -> 0.0017s1392-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1393 -> 0.0020s1394-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1395 -> 0.0047s1396-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1397 -> 0.0030s1398-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1399 -> 0.0034s1400-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1401 -> 0.0021s1402-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1403 -> 0.0022s1404-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1405 -> 0.0023s1406-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1407 -> 0.0031s1408-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1409 -> 0.0030s1410-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1411 -> 0.0022s1412-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1413 -> 0.0019s1414-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1415 -> 0.0018s1416-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1417 -> 0.0028s1418-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1419 -> 0.0023s1420-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1421 -> 0.0027s1422Dropped database 'gitlabhq_geo_test'1423Created database 'gitlabhq_geo_test'1424-- enable_extension("plpgsql")1425 -> 0.0215s1426-- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade})1427 -> 0.0169s1428-- create_table("design_registry", {:id=>:serial, :force=>:cascade})1429 -> 0.0116s1430-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1431 -> 0.0024s1432-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1433 -> 0.0152s1434-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1435 -> 0.0112s1436-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1437 -> 0.0511s1438$ date1439Tue Oct 15 08:40:55 UTC 20191440$ source scripts/rspec_helpers.sh1441$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1442KNAPSACK_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.rb1443Checking gitaly-ruby bundle...1444Warning: 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`.1445The Gemfile's dependencies are satisfied1446Trying to connect to gitaly: ...... OK1447Report specs:1448spec/models/repository_spec.rb1449spec/lib/banzai/filter/external_issue_reference_filter_spec.rb1450spec/models/clusters/applications/prometheus_spec.rb1451spec/models/project_services/jira_service_spec.rb1452spec/policies/project_statistics_policy_spec.rb1453spec/serializers/pipeline_serializer_spec.rb1454spec/services/notes/quick_actions_service_spec.rb1455spec/lib/gitlab/email/handler/create_note_handler_spec.rb1456spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb1457spec/lib/banzai/filter/commit_range_reference_filter_spec.rb1458spec/serializers/build_details_entity_spec.rb1459spec/services/clusters/applications/check_installation_progress_service_spec.rb1460spec/lib/gitlab/tree_summary_spec.rb1461spec/lib/banzai/filter/user_reference_filter_spec.rb1462spec/lib/gitlab/graphql/connections/keyset_connection_spec.rb1463spec/lib/gitlab/gpg_spec.rb1464spec/models/concerns/avatarable_spec.rb1465spec/lib/gitlab/email/message/repository_push_spec.rb1466spec/helpers/events_helper_spec.rb1467spec/helpers/merge_requests_helper_spec.rb1468spec/helpers/tree_helper_spec.rb1469spec/models/deployment_metrics_spec.rb1470spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb1471spec/lib/banzai/reference_parser/base_parser_spec.rb1472spec/lib/gitlab/blob_helper_spec.rb1473spec/serializers/analytics_build_entity_spec.rb1474spec/lib/gitlab/legacy_github_import/project_creator_spec.rb1475spec/lib/gitlab/email/handler/create_issue_handler_spec.rb1476spec/lib/gitlab/ci/status/build/scheduled_spec.rb1477spec/services/projects/move_deploy_keys_projects_service_spec.rb1478spec/lib/gitlab/import_export/fork_spec.rb1479spec/services/projects/create_from_template_service_spec.rb1480spec/lib/gitlab/import_export/lfs_restorer_spec.rb1481spec/models/blob_spec.rb1482spec/services/ci/extract_sections_from_build_trace_service_spec.rb1483spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb1484spec/lib/banzai/reference_redactor_spec.rb1485spec/models/release_spec.rb1486spec/services/projects/propagate_service_template_spec.rb1487spec/helpers/milestones_helper_spec.rb1488spec/lib/gitlab/chat/output_spec.rb1489spec/policies/issuable_policy_spec.rb1490spec/models/concerns/has_environment_scope_spec.rb1491spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb1492spec/services/test_hooks/system_service_spec.rb1493spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb1494spec/views/layouts/header/_new_dropdown.haml_spec.rb1495spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb1496spec/services/wiki_pages/create_service_spec.rb1497spec/models/pool_repository_spec.rb1498spec/lib/gitlab/slash_commands/issue_new_spec.rb1499spec/initializers/active_record_locking_spec.rb1500spec/lib/gitlab/file_finder_spec.rb1501spec/finders/users_star_projects_finder_spec.rb1502spec/lib/banzai/pipeline/full_pipeline_spec.rb1503spec/serializers/diffs_entity_spec.rb1504spec/lib/gitlab/phabricator_import/base_worker_spec.rb1505spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb1506spec/services/git/tag_push_service_spec.rb1507spec/lib/api/helpers_spec.rb1508spec/workers/stuck_import_jobs_worker_spec.rb1509spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb1510spec/lib/gitlab/ci/status/build/manual_spec.rb1511spec/validators/sha_validator_spec.rb1512spec/models/project_deploy_token_spec.rb1513spec/models/personal_access_token_spec.rb1514spec/serializers/job_artifact_report_entity_spec.rb1515spec/services/tags/create_service_spec.rb1516spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb1517spec/models/concerns/loaded_in_group_list_spec.rb1518spec/finders/container_repositories_finder_spec.rb1519spec/lib/gitlab/database/count/exact_count_strategy_spec.rb1520spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb1521spec/migrations/change_default_value_for_dsa_key_restriction_spec.rb1522spec/models/subscription_spec.rb1523spec/workers/update_merge_requests_worker_spec.rb1524spec/migrations/cleanup_build_stage_migration_spec.rb1525spec/services/protected_tags/update_service_spec.rb1526spec/services/delete_branch_service_spec.rb1527spec/services/cohorts_service_spec.rb1528spec/helpers/storage_helper_spec.rb1529spec/workers/pages_domain_ssl_renewal_worker_spec.rb1530spec/workers/object_pool/destroy_worker_spec.rb1531spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb1532spec/models/concerns/strip_attribute_spec.rb1533spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb1534spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb1535spec/migrations/reschedule_builds_stages_migration_spec.rb1536spec/lib/gitlab/ci/status/build/created_spec.rb1537spec/models/project_ci_cd_setting_spec.rb1538spec/lib/constraints/group_url_constrainer_spec.rb1539spec/lib/gitlab/background_migration/migrate_stage_index_spec.rb1540spec/workers/build_coverage_worker_spec.rb1541spec/workers/project_service_worker_spec.rb1542spec/lib/banzai/commit_renderer_spec.rb1543spec/lib/gitlab/tracking_spec.rb1544spec/services/system_notes/zoom_service_spec.rb1545spec/workers/build_hooks_worker_spec.rb1546spec/lib/gitlab/usage_data_counters/cycle_analytics_counter_spec.rb1547spec/serializers/cluster_serializer_spec.rb1548spec/models/lfs_objects_project_spec.rb1549spec/models/project_services/chat_message/pipeline_message_spec.rb1550spec/models/broadcast_message_spec.rb1551spec/serializers/board_serializer_spec.rb1552spec/lib/gitlab/ci/cron_parser_spec.rb1553spec/lib/gitlab/utils/sanitize_node_link_spec.rb1554spec/lib/gitlab/ci/config/external/file/remote_spec.rb1555spec/lib/banzai/filter/sanitization_filter_spec.rb1556spec/workers/admin_email_worker_spec.rb1557spec/lib/grafana/client_spec.rb1558spec/helpers/tracking_helper_spec.rb1559spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb1560spec/serializers/container_tag_entity_spec.rb1561spec/lib/after_commit_queue_spec.rb1562spec/models/term_agreement_spec.rb1563spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb1564spec/finders/award_emojis_finder_spec.rb1565spec/lib/banzai/filter/emoji_filter_spec.rb1566spec/rubocop/cop/inject_enterprise_edition_module_spec.rb1567spec/lib/gitlab/legacy_github_import/client_spec.rb1568spec/workers/update_external_pull_requests_worker_spec.rb1569spec/lib/gitlab/version_info_spec.rb1570spec/policies/identity_provider_policy_spec.rb1571spec/models/project_metrics_setting_spec.rb1572spec/models/conversational_development_index/metric_spec.rb1573spec/helpers/broadcast_messages_helper_spec.rb1574spec/workers/authorized_projects_worker_spec.rb1575spec/lib/bitbucket_server/representation/activity_spec.rb1576spec/lib/gitlab/metrics/transaction_spec.rb1577spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb1578spec/lib/gitlab/diff/parser_spec.rb1579spec/lib/gitlab/git/conflict/parser_spec.rb1580spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb1581spec/lib/rspec_flaky/config_spec.rb1582spec/lib/gitlab/database/grant_spec.rb1583spec/finders/applications_finder_spec.rb1584spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb1585spec/lib/gitlab/import_export/config_spec.rb1586spec/lib/gitlab/health_checks/redis/queues_check_spec.rb1587spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb1588spec/lib/gitlab/polling_interval_spec.rb1589spec/rubocop/cop/migration/add_timestamps_spec.rb1590spec/lib/gitlab/git/util_spec.rb1591spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb1592spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb1593spec/validators/qualified_domain_array_validator_spec.rb1594spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb1595spec/initializers/action_mailer_hooks_spec.rb1596spec/lib/banzai/filter/image_link_filter_spec.rb1597spec/lib/gitlab_danger_spec.rb1598spec/migrations/active_record/schema_spec.rb1599spec/helpers/explore_helper_spec.rb1600spec/helpers/blame_helper_spec.rb1601spec/lib/gitlab/chat/responder/base_spec.rb1602spec/graphql/resolvers/base_resolver_spec.rb1603spec/rubocop/cop/migration/reversible_add_column_with_default_spec.rb1604spec/lib/gitlab/ci/config/entry/variables_spec.rb1605spec/lib/omni_auth/strategies/saml_spec.rb1606spec/lib/gitlab/metrics/subscribers/active_record_spec.rb1607spec/lib/gitlab/ci/status/scheduled_spec.rb1608spec/lib/gitlab/config/entry/simplifiable_spec.rb1609spec/lib/gitlab/git/conflict/file_spec.rb1610spec/lib/feature/gitaly_spec.rb1611spec/workers/trending_projects_worker_spec.rb1612spec/presenters/ci/bridge_presenter_spec.rb1613spec/models/concerns/token_authenticatable_strategies/base_spec.rbKnapsack report generator started!1614/builds/gitlab-org/gitlab/vendor/ruby/2.6.0/bin/rspec: No such file or directory - with1615Run options:1616 include {:focus=>true}1617 exclude {:quarantine=>true, :geo=>true}1618All examples were filtered out; ignoring {:focus=>true}1619==> Setting up GitLab Shell...1620 GitLab Shell set up in 0.740491078 seconds...1621==> Setting up Gitaly...1622 Gitaly set up in 0.000228868 seconds...1623==> Setting up GitLab Elasticsearch Indexer...1624 GitLab Elasticsearch Indexer set up in 0.000384359 seconds...1625Repository1626 #branch_names_contains1627 should include "master"1628 should not include "feature"1629 should not include "fix"1630 when storage is broken1631 raises a storage error1632 #tag_names_contains1633 should include "v1.1.0"1634 should not include "v1.0.0"1635 tags_sorted_by1636 name_desc1637 should eq ["v1.1.0", "v1.0.0"]1638 name_asc1639 should eq ["v1.0.0", "v1.1.0"]1640 updated1641 desc1642 should eq ["v1.0.0", "v1.1.0"]1643 asc1644 should eq ["v1.1.0", "v1.0.0"]1645 annotated tag pointing to a blob1646 should eq ["v1.1.0", "v1.0.0", "annotated-tag"]1647 #ref_name_for_sha1648 returns the ref1649 #ref_exists?1650 when ref exists1651 returns true1652 when ref does not exist1653 returns false1654 when ref format is incorrect1655 returns false1656 #list_last_commits_for_tree1657 returns the last commits for every entry in the current path1658 returns the last commits for every entry in the current path starting from the offset1659 returns a limited number of last commits for every entry in the current path starting from the offset1660 returns an empty hash when offset is out of bounds1661 with a commit with invalid UTF-8 path1662 does not raise an error1663 #last_commit_for_path1664 should eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"1665 when storage is broken1666 raises a storage error1667 #last_commit_id_for_path1668 returns last commit id for a given path1669 caches last commit id for a given path1670 when storage is broken1671 raises a storage error1672 #commits1673 when neither the all flag nor a ref are specified1674 returns every commit from default branch1675 when ref is passed1676 returns every commit from the specified ref1677 when all1678 returns every commit from the repository1679 with path1680 sets follow when it is a single path1681 does not set follow when it is multiple paths1682 without path1683 does not set follow1684 when 'all' flag is set1685 returns every commit from the repository1686 #new_commits1687 when there are no new commits1688 returns an empty array1689 when new commits are found1690 returns the commits1691 #commits_by1692 finds each commit1693 returns only Commit instances1694 when some commits are not found1695 returns only found commits1696 when no oids are passed1697 does not call #batch_by_oid1698 #find_commits_by_message1699 returns commits with messages containing a given string1700 is case insensitive1701 when storage is broken1702 raises a storage error1703 #blob_at1704 blank sha1705 should be nil1706 regular blob1707 should be an instance of Blob1708 readme blob on HEAD1709 should be an instance of ReadmeBlob1710 readme blob not on HEAD1711 should be an instance of Blob1712 #merged_to_root_ref?1713 merged branch without ff1714 should be truthy1715 merged with ff1716 should be truthy1717 not merged branch1718 should be falsey1719 default branch1720 should be falsey1721 non merged branch1722 should be falsey1723 non existent branch1724 should be nil1725 #can_be_merged?1726 mergeable branches1727 should be truthy1728 non-mergeable branches without conflict sides missing1729 should be falsey1730 non-mergeable branches with conflict sides missing1731 should be falsey1732 submodule changes that confuse rugged1733 should be falsey1734 #commit1735 when ref exists1736 returns commit object1737 when ref does not exist1738 returns nil1739 when ref is not specified1740 is using a root ref1741 when ref is not valid1742 when preceding tree element exists1743 returns nil1744 when preceding tree element does not exist1745 returns nil1746 #create_dir1747 commits a change that creates a new directory1748 when committing to another project1749 creates a fork and commit to the forked project1750 when an author is specified1751 uses the given email/name to set the commit's author1752 #create_file1753 commits new file successfully1754 creates new file and dir when file_path has a forward slash1755 respects the autocrlf setting1756 when an author is specified1757 uses the given email/name to set the commit's author1758 #update_file1759 updates file successfully1760 updates filename successfully1761 when an author is specified1762 uses the given email/name to set the commit's author1763 #delete_file1764 removes file successfully1765 when an author is specified1766 uses the given email/name to set the commit's author1767 search_files_by_content1768 should be a kind of Array1769 regex-escapes the query string1770 properly handles an unmatched parenthesis1771 properly handles when query is not present1772 properly handles query when repo is empty1773 when storage is broken1774 raises a storage error1775 result1776 should be a kind of String1777 should eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"1778 search_files_by_name1779 returns result1780 ignores leading slashes1781 properly handles when query is only slashes1782 properly handles when query is not present1783 properly handles query when repo is empty1784 when storage is broken1785 raises a storage error1786 #async_remove_remote1787 when worker is scheduled successfully1788 returns job_id1789 when worker does not schedule successfully1790 returns nil1791 #fetch_ref1792 when storage is broken1793 raises a storage error1794 #get_raw_changes1796 returns the changes1797 #create_ref1798 redirects the call to write_ref1799 #changelog1800 accepts changelog1801 accepts news instead of changelog1802 accepts history instead of changelog1803 accepts changes instead of changelog1804 is case-insensitive1805 #license_blob1806 handles when HEAD points to non-existent ref1807 looks in the root_ref only1808 detects license file with no recognizable open-source license content1809 detects 'LICENSE'1810 detects 'LICENCE'1811 detects 'LiCensE'1812 detects 'LICENSE.md'1813 detects 'LICENSE.foo'1814 detects 'COPYING'1815 detects 'COPYING.md'1816 #license_key1817 returns nil when no license is detected1818 returns nil when the repository does not exist1819 returns nil when the content is not recognizable1820 returns nil when the commit SHA does not exist1821 returns nil when master does not exist1822 returns the license key1823 #license1824 returns nil when no license is detected1825 returns nil when the repository does not exist1826 returns nil when the content is not recognizable1827 returns the license1828 #gitlab_ci_yml1829 returns valid file1830 returns nil if not exists1831 returns nil for empty repository1832 #ambiguous_ref?1833 when ref is ambiguous1834 is true1835 when ref is not ambiguous1836 is false1837 #expand_ref1838 when ref is not tag or branch name1839 returns nil1840 when ref is tag name1841 returns the tag ref1842 when ref is branch name1843 returns the branch ref1844 #add_branch1845 calls Gitaly's OperationService1846 creates_the_branch1847 with a non-existing target1848 returns false and doesn't create the branch1849 #exists?1850 returns true when a repository exists1851 returns false if no full path can be constructed1852 with broken storage1853 raises a storage error1854 behaves like asymmetric cached method1855 asymmetric caching1856 when it returns true1857 caches the output in RequestStore1858 caches the output in RepositoryCache1859 when it returns false1860 caches the output in RequestStore1861 does NOT cache the output in RepositoryCache1862 #has_visible_content?1863 delegates to raw_repository when true1864 delegates to raw_repository when false1865 behaves like asymmetric cached method1866 asymmetric caching1867 when it returns true1868 caches the output in RequestStore1869 caches the output in RepositoryCache1870 when it returns false1871 caches the output in RequestStore1872 does NOT cache the output in RepositoryCache1873 #branch_exists?1874 delegates to branch_names when the cache is empty1875 uses redis set caching when the cache is filled1876 #tag_exists?1877 delegates to tag_names when the cache is empty1878 uses redis set caching when the cache is filled1879 #branch_names1880 gets cached across Repository instances1881 #empty?1882 returns true for an empty repository1883 returns false for a non-empty repository1884 caches the output1885 #blobs_at1886 returns empty array for an empty repository1887 returns blob array for a non-empty repository1888 #root_ref1889 returns a branch name1890 caches the output1891 behaves like asymmetric cached method1892 asymmetric caching1893 when it returns true1894 caches the output in RequestStore1895 caches the output in RepositoryCache1896 when it returns false1897 caches the output in RequestStore1898 does NOT cache the output in RepositoryCache1899 #expire_root_ref_cache1900 expires the root reference cache1901 #expire_branch_cache1902 expires the cache for all branches1903 expires the cache for all branches when the root branch is given1904 expires the cache for a specific branch1905 #expire_emptiness_caches1906 expires the caches for an empty repository1907 does not expire the cache for a non-empty repository1908 expires the memoized repository cache1909 skip_merges option1910 should not include "e56497bb5f03a90a51293fc6d516788730953899"1911 #merge1912 merges the code and returns the commit id1913 sets the `in_progress_merge_commit_sha` flag for the given merge request1914 removes carriage returns from commit message1915 #merge_to_ref1916 writes merge of source SHA and first parent ref to MR merge_ref_path1917 #ff_merge1918 merges the code and return the commit id1919 sets the `in_progress_merge_commit_sha` flag for the given merge request1920 #rebase1921 when two_step_rebase feature is enabled1922 executes the new Gitaly RPC1923 behaves like a method that can rebase successfully1924 returns the rebase commit sha1925 sets the `rebase_commit_sha` for the given merge request1926 rolling back the `rebase_commit_sha`1927 does not rollback when there are no errors1928 does rollback when an error is encountered in the second step1929 when two_step_rebase feature is disabled1930 executes the deprecated Gitaly RPC1931 behaves like a method that can rebase successfully1932 returns the rebase commit sha1933 sets the `rebase_commit_sha` for the given merge request1934 #revert1935 when there is a conflict1936 raises an error1937 when commit was already reverted1938 raises an error1939 when commit can be reverted1940 reverts the changes1941 reverting a merge commit1942 reverts the changes1943 #cherry_pick1944 when there is a conflict1945 raises an error1946 when commit was already cherry-picked1947 raises an error1948 when commit can be cherry-picked1949 cherry-picks the changes1950 cherry-picking a merge commit1951 cherry-picks the changes1952 #before_delete1953 when a repository does not exist1954 does not flush caches that depend on repository data1955 flushes the tags cache1956 flushes the branches cache1957 flushes the root ref cache1958 flushes the emptiness caches1959 flushes the exists cache1960 when a repository exists1961 flushes the tags cache1962 flushes the branches cache1963 flushes the root ref cache1964 flushes the emptiness caches1965 #before_change_head1966 flushes the branch cache1967 flushes the root ref cache1968 #after_change_head1969 flushes the method caches1970 #expires_caches_for_tags1971 flushes the cache1972 #before_push_tag1973 logs an event1974 #after_import1975 flushes and builds the cache1976 #after_push_commit1977 expires statistics caches1978 #after_create_branch1979 expires the branch caches1980 does not expire the branch caches when specified1981 #after_remove_branch1982 expires the branch caches1983 does not expire the branch caches when specified1984 #after_create1985 calls expire_status_cache1986 logs an event1987 #expire_status_cache1988 flushes the exists cache1989 flushes the root ref cache1990 flushes the emptiness caches1991 #copy_gitattributes1992 returns true with a valid ref1993 returns false with an invalid ref1994 #before_remove_tag1995 flushes the tag cache1996 #branch_count1997 returns the number of branches1998 #tag_count1999 returns the number of tags2000 #expire_branches_cache2001 expires the cache2002 #expire_tags_cache2003 expires the cache2004 #add_tag2005 with a valid target2006 creates the tag2007 returns a Gitlab::Git::Tag object2008 with an invalid target2009 returns false2010 #rm_branch2011 removes a branch2012 when pre hooks failed2013 gets an error and does not delete the branch2014 #rm_tag2015 removes a tag2016 #avatar2017 returns nil if repo does not exist2018 returns the first avatar file found in the repository2019 caches the output2020 #expire_exists_cache2021 expires the cache2022 expires the request store cache2023 #xcode_project?2024 when the root contains a *.xcodeproj directory2025 returns true2026 when the root contains a *.xcworkspace directory2027 returns true2028 when the root contains no Xcode config directory2029 returns false2030 #contribution_guide2031 returns and caches the output2032 #gitignore2033 returns and caches the output2034 #readme2035 with a non-existing repository2036 returns nil2037 with an existing repository2038 when no README exists2039 returns nil2040 when a README exists2041 returns the README2042 #readme_path2043 with a non-existing repository2044 returns nil2045 with an existing repository2046 when no README exists2047 returns nil2048 when a README exists2049 returns the README2050 caches the response2051 #expire_statistics_caches2052 expires the caches2053 #expire_all_method_caches2054 expires the caches of all methods2055 all cache_method definitions are in the lists of method caches2056 #file_on_head2057 with a non-existing repository2058 returns nil2059 with a repository that has no blobs2060 returns nil2061 with an existing repository2062 returns a Gitlab::Git::Tree2063 #head_tree2064 with an existing repository2065 returns a Tree2066 with a non-existing repository2067 returns nil2068 #tree2069 using a non-existing repository2070 returns nil2071 returns nil when using a path2072 using an existing repository2073 returns a Tree2074 #size2075 with a non-existing repository2076 returns 02077 with an existing repository2078 returns the repository size as a Float2079 #local_branches2080 returns the local branches2081 #commit_count2082 with a non-existing repository2083 returns 02084 with an existing repository2085 returns the commit count2086 #commit_count_for_ref2087 with a non-existing repository2088 returns 02089 with empty repository2090 returns 02091 when searching for the root ref2092 returns the same count as #commit_count2093 #refresh_method_caches2094 refreshes the caches of the given types2095 #gitlab_ci_yml_for2096 when there is a .gitlab-ci.yml at the commit2097 returns the content2098 when there is no .gitlab-ci.yml at the commit2099 returns nil2100 #route_map_for2101 when there is a .gitlab/route-map.yml at the commit2102 returns the content2103 when there is no .gitlab/route-map.yml at the commit2104 returns nil2105 #ancestor? with Gitaly enabled2106 behaves like #ancestor?2107 is an ancestor2108 is not an ancestor2109 returns false on nil-values2110 returns false for invalid commit IDs2111 #ancestor? with Rugged enabled2112 calls out to the Rugged implementation2113 behaves like #ancestor?2114 is an ancestor2115 is not an ancestor2116 returns false on nil-values2117 returns false for invalid commit IDs2118 #archive_metadata2119 with hashed storage disabled2120 uses the project path to generate the filename2121 with hashed storage enabled2122 uses the project path to generate the filename2123 commit cache2124 caches based on SHA2125 caches nil values2126 #raw_repository2127 returns a Gitlab::Git::Repository representation of the repository2128 with a wiki repository2129 creates a Gitlab::Git::Repository with the proper attributes2130 #contributors2131 returns the array of Gitlab::Contributor for the repository2132 order_by email2133 asc2134 returns all the contributors ordered by email asc case insensitive2135 desc2136 returns all the contributors ordered by email desc case insensitive2137 order_by name2138 asc2139 returns all the contributors ordered by name asc case insensitive2140 desc2141 returns all the contributors ordered by name desc case insensitive2142 order_by commits2143 asc2144 returns all the contributors ordered by commits asc2145 desc2146 returns all the contributors ordered by commits desc2147 invalid ordering2148 returns the contributors unsorted2149 invalid sorting2150 returns the contributors unsorted2151 #merge_base2152 only makes one gitaly call2153 #create_if_not_exists2154 creates the repository if it did not exist2155 returns true2156 calls out to the repository client to create a repo2157 it does nothing if the repository already existed2158 does nothing if the repository already existed2159 returns nil2160 when the repository exists but the cache is not up to date2161 does not raise errors2162 returns nil2163 #blobs_metadata2164 returns blob metadata in batch for HEAD2165 returns blob metadata for a specified ref2166 performs a single gitaly call2167Banzai::Filter::ExternalIssueReferenceFilter2168 redmine project2169 with a hash prefix2170 behaves like external issue tracker2171 requires project context2172 ignores valid references contained inside 'pre' element2173 ignores valid references contained inside 'code' element2174 ignores valid references contained inside 'a' element2175 ignores valid references contained inside 'style' element2176 ignores valid references when using default tracker2177 links to a valid reference2178 links to the external tracker2179 links with adjacent text2180 includes a title attribute2181 escapes the title attribute2182 includes default classes2183 supports an :only_path context2184 behaves like a reference containing an element node2185 does not escape inner html2186 with RequestStore enabled2187 queries the collection on the first call2188 with a single-letter prefix2189 behaves like external issue tracker2190 requires project context2191 ignores valid references contained inside 'pre' element2192 ignores valid references contained inside 'code' element2193 ignores valid references contained inside 'a' element2194 ignores valid references contained inside 'style' element2195 ignores valid references when using default tracker2196 links to a valid reference2197 links to the external tracker2198 links with adjacent text2199 includes a title attribute2200 escapes the title attribute2201 includes default classes2202 supports an :only_path context2203 behaves like a reference containing an element node2204 does not escape inner html2205 with RequestStore enabled2206 queries the collection on the first call2207 youtrack project2208 with right markdown2209 behaves like external issue tracker2210 requires project context2211 ignores valid references contained inside 'pre' element2212 ignores valid references contained inside 'code' element2213 ignores valid references contained inside 'a' element2214 ignores valid references contained inside 'style' element2215 ignores valid references when using default tracker2216 links to a valid reference2217 links to the external tracker2218 links with adjacent text2219 includes a title attribute2220 escapes the title attribute2221 includes default classes2222 supports an :only_path context2223 behaves like a reference containing an element node2224 does not escape inner html2225 with RequestStore enabled2226 queries the collection on the first call2227 with underscores in the prefix2228 behaves like external issue tracker2229 requires project context2230 ignores valid references contained inside 'pre' element2231 ignores valid references contained inside 'code' element2232 ignores valid references contained inside 'a' element2233 ignores valid references contained inside 'style' element2234 ignores valid references when using default tracker2235 links to a valid reference2236 links to the external tracker2237 links with adjacent text2238 includes a title attribute2239 escapes the title attribute2240 includes default classes2241 supports an :only_path context2242 behaves like a reference containing an element node2243 does not escape inner html2244 with RequestStore enabled2245 queries the collection on the first call2246 with lowercase letters in the prefix2247 behaves like external issue tracker2248 requires project context2249 ignores valid references contained inside 'pre' element2250 ignores valid references contained inside 'code' element2251 ignores valid references contained inside 'a' element2252 ignores valid references contained inside 'style' element2253 ignores valid references when using default tracker2254 links to a valid reference2255 links to the external tracker2256 links with adjacent text2257 includes a title attribute2258 escapes the title attribute2259 includes default classes2260 supports an :only_path context2261 behaves like a reference containing an element node2262 does not escape inner html2263 with RequestStore enabled2264 queries the collection on the first call2265 with a single-letter prefix2266 behaves like external issue tracker2267 requires project context2268 ignores valid references contained inside 'pre' element2269 ignores valid references contained inside 'code' element2270 ignores valid references contained inside 'a' element2271 ignores valid references contained inside 'style' element2272 ignores valid references when using default tracker2273 links to a valid reference2274 links to the external tracker2275 links with adjacent text2276 includes a title attribute2277 escapes the title attribute2278 includes default classes2279 supports an :only_path context2280 behaves like a reference containing an element node2281 does not escape inner html2282 with RequestStore enabled2283 queries the collection on the first call2284 with a lowercase prefix2285 behaves like external issue tracker2286 requires project context2287 ignores valid references contained inside 'pre' element2288 ignores valid references contained inside 'code' element2289 ignores valid references contained inside 'a' element2290 ignores valid references contained inside 'style' element2291 ignores valid references when using default tracker2292 links to a valid reference2293 links to the external tracker2294 links with adjacent text2295 includes a title attribute2296 escapes the title attribute2297 includes default classes2298 supports an :only_path context2299 behaves like a reference containing an element node2300 does not escape inner html2301 with RequestStore enabled2302 queries the collection on the first call2303 jira project2304 with right markdown2305 behaves like external issue tracker2306 requires project context2307 ignores valid references contained inside 'pre' element2308 ignores valid references contained inside 'code' element2309 ignores valid references contained inside 'a' element2310 ignores valid references contained inside 'style' element2311 ignores valid references when using default tracker2312 links to a valid reference2313 links to the external tracker2314 links with adjacent text2315 includes a title attribute2316 escapes the title attribute2317 includes default classes2318 supports an :only_path context2319 behaves like a reference containing an element node2320 does not escape inner html2321 with RequestStore enabled2322 queries the collection on the first call2323 with a single-letter prefix2324 ignores reference2325 with wrong markdown2326 ignores reference2327Clusters::Applications::Prometheus2328 should belong to cluster required:2329 should validate that :cluster cannot be empty/falsy2330 #can_uninstall?2331 calls allowed_to_uninstall?2332 #name2333 is .application_name2334 is recorded in Clusters::Cluster::APPLICATIONS2335 .association_name2336 should eq :application_prometheus2337 #status2338 sets a default status2339 #status_states2340 returns a hash of state values2341 returns an integer for installed state value2342 .available2343 should contain exactly #<Clusters::Applications::Prometheus id: 1, cluster_id: 15, status: 3, version: "6.7.3", status_reaso...encrypted_alert_manager_token: nil, encrypted_alert_manager_token_iv: nil, alert_manager_token: nil> and #<Clusters::Applications::Prometheus id: 2, cluster_id: 21, status: 5, version: "6.7.3", status_reaso...encrypted_alert_manager_token: nil, encrypted_alert_manager_token_iv: nil, alert_manager_token: nil>2344 status state machine2345 #make_installing2346 is installing2347 #make_installed2348 is installed2349 updates helm version2350 sets the correct version of the application2351 application is updating2352 is updated2353 updates helm version2354 updates the version of the application2355 #make_errored2356 is errored2357 application is updating2358 is update_errored2359 application is uninstalling2360 is uninstall_errored2361 #make_scheduled2362 is scheduled2363 when installed2364 is scheduled2365 when was errored2366 clears #status_reason2367 when was updated_errored2368 clears #status_reason2369 when was uninstall_errored2370 clears #status_reason2371 #make_uninstalling2372 is uninstalling2373 #available?2374 trait: :not_installable, available: false2375 should not be available2376 trait: :installable, available: false2377 should not be available2378 trait: :scheduled, available: false2379 should not be available2380 trait: :installing, available: false2381 should not be available2382 trait: :installed, available: true2383 should be available2384 trait: :updating, available: false2385 should not be available2386 trait: :updated, available: true2387 should be available2388 trait: :errored, available: false2389 should not be available2390 trait: :update_errored, available: false2391 should not be available2392 trait: :uninstalling, available: false2393 should not be available2394 trait: :uninstall_errored, available: false2395 should not be available2396 trait: :timed_out, available: false2397 should not be available2398 update_available?2399 version is not the same as VERSION2400 should be truthy2401 version is the same as VERSION2402 should be falsey2403 #uninstall_command2404 should be an instance of Gitlab::Kubernetes::Helm::DeleteCommand2405 has the application name2406 has files2407 is rbac2408 on a non rbac enabled cluster2409 should not be rbac2410 #files2411 includes cert files when there is a ca_cert entry2412 when the helm application does not have a ca_cert2413 does not include cert files when there is no ca_cert entry2414 #status2415 when application helm is scheduled2416 defaults to :not_installable2417 when application is scheduled2418 sets a default status2419 after_destroy2420 deactivates prometheus_service after destroy2421 transition to installed2422 ensures Prometheus service is activated2423 #can_uninstall?2424 should be truthy2425 #prometheus_client2426 cluster is nil2427 returns nil2428 cluster doesn't have kubeclient2429 returns nil2430 cluster has kubeclient2431 creates proxy prometheus_client2432 copies proxy_url, options and headers from kube client to prometheus_client2433 when cluster is not reachable2434 returns nil2435 #install_command2436 should be an instance of Gitlab::Kubernetes::Helm::InstallCommand2437 is initialized with 3 arguments2438 does not install knative metrics2439 on a non rbac enabled cluster2440 should not be rbac2441 application failed to install previously2442 is initialized with the locked version2443 with knative installed2444 installs knative metrics2445 #uninstall_command2446 should be an instance of Gitlab::Kubernetes::Helm::DeleteCommand2447 has the application name2448 has files2449 is rbac2450 #predelete2451 deletes knative metrics2452 on a non rbac enabled cluster2453 should not be rbac2454 #upgrade_command2455 returns an instance of Gitlab::Kubernetes::Helm::InstallCommand2456 is initialized with 3 arguments2457 #update_in_progress?2458 when app is updating2459 returns true2460 #update_errored?2461 when app errored2462 returns true2463 #files2464 includes prometheus valid values2465 #files_with_replaced_values2466 does not modify #files2467 returns values.yaml with replaced values2468 includes cert files2469 when the helm application does not have a ca_cert2470 does not include cert files2471JiraService2472 #options2473 sets the URL properly2474 leaves out trailing slashes in context2475 leaves out trailing whitespaces in username2476 provides additional cookies to allow basic auth with oracle webgate2477 Associations2478 should belong to project required:2479 should have one service_hook2480 .reference_pattern2481 does not allow # on the code2482 behaves like allows project key on reference pattern2483 allows underscores in the project name2484 allows numbers in the project name2485 requires the project name to begin with A-Z2486 #create2487 does not store data into properties2488 sets title correctly2489 sets service data correctly2490 stores data in data_fields correcty2491 overriding properties2492 when data are stored in properties2493 behaves like issue tracker fields2494 when data are stored in the properties2495 #update2496 removes title and description from properties2497 stores title & description in services table2498 reading fields2499 returns correct values2500 behaves like handles jira fields2501 reading data2502 reads data correctly2503 #update2504 basic update2505 leaves properties field emtpy2506 stores updated data in jira_tracker_data table2507 stored password invalidation2508 when a password was previously set2509 when only web url present2510 resets password if url changed2511 does not reset password if url "changed" to the same url as before2512 resets password if url not changed but api url added2513 does not reset password if new url is set together with password, even if it's the same password2514 resets password if url changed, even if setter called multiple times2515 does not reset password if username changed2516 does not reset password if password changed2517 does not reset password if the password is touched and same as before2518 when both web and api url present2519 resets password if api url changed2520 does not reset password if url changed2521 resets password if api url set to empty2522 when no password was previously set2523 saves password if new url is set together with password2524 when data are stored in separated fields2525 behaves like issue tracker fields2526 when data are stored in the properties2527 #update2528 removes title and description from properties2529 stores title & description in services table2530 reading fields2531 returns correct values2532 behaves like handles jira fields2533 reading data2534 reads data correctly2535 #update2536 basic update2537 leaves properties field emtpy2538 stores updated data in jira_tracker_data table2539 stored password invalidation2540 when a password was previously set2541 when only web url present2542 resets password if url changed2543 does not reset password if url "changed" to the same url as before2544 resets password if url not changed but api url added2545 does not reset password if new url is set together with password, even if it's the same password2546 resets password if url changed, even if setter called multiple times2547 does not reset password if username changed2548 does not reset password if password changed2549 does not reset password if the password is touched and same as before2550 when both web and api url present2551 resets password if api url changed2552 does not reset password if url changed2553 resets password if api url set to empty2554 when no password was previously set2555 saves password if new url is set together with password2556 when data are stored in both properties and separated fields2557 behaves like issue tracker fields2558 when data are stored in the properties2559 #update2560 removes title and description from properties2561 stores title & description in services table2562 reading fields2563 returns correct values2564 behaves like handles jira fields2565 reading data2566 reads data correctly2567 #update2568 basic update2569 leaves properties field emtpy2570 stores updated data in jira_tracker_data table2571 stored password invalidation2572 when a password was previously set2573 when only web url present2574 resets password if url changed2575 does not reset password if url "changed" to the same url as before2576 resets password if url not changed but api url added2577 does not reset password if new url is set together with password, even if it's the same password2578 resets password if url changed, even if setter called multiple times2579 does not reset password if username changed2580 does not reset password if password changed2581 does not reset password if the password is touched and same as before2582 when both web and api url present2583 resets password if api url changed2584 does not reset password if url changed2585 resets password if api url set to empty2586 when no password was previously set2587 saves password if new url is set together with password2588 when no title & description are set2589 returns default values2590 #close_issue2591 when resource is a merge request2592 behaves like close_issue2593 calls Jira API2594 does not fail if remote_link.all on issue returns nil2595 creates Remote Link reference in Jira for comment2596 does not send comment or remote links to issues already closed2597 does not send comment or remote links to issues with unknown resolution2598 references the GitLab commit2599 references the GitLab commit2600 logs exception when transition id is not valid2601 calls the api with jira_issue_transition_id2602 when have multiple transition ids2603 calls the api with transition ids separated by comma2604 calls the api with transition ids separated by semicolon2605 when resource is a commit2606 behaves like close_issue2607 calls Jira API2608 does not fail if remote_link.all on issue returns nil2609 creates Remote Link reference in Jira for comment2610 does not send comment or remote links to issues already closed2611 does not send comment or remote links to issues with unknown resolution2612 references the GitLab commit2613 references the GitLab commit2614 logs exception when transition id is not valid2615 calls the api with jira_issue_transition_id2616 when have multiple transition ids2617 calls the api with transition ids separated by comma2618 calls the api with transition ids separated by semicolon2619 #test_settings2620 when the test succeeds2621 tries to get Jira project with URL when API URL not set2622 returns correct result2623 tries to get Jira project with API URL if set2624 when the test fails2625 returns result with the error2626 description and title2627 when it is not set2628 default values are returned2629 when it is set in properties2630 values from properties are returned2631 when it is in title & description fields2632 values from title and description fields are returned2633 when it is in both properites & title & description fields2634 values from title and description fields are returned2635 project and issue urls2636 removes trailing slashes from url2637 when gitlab.yml was initialized2638 is prepopulated with the settings2639 favicon urls2640 includes the standard favicon2641 includes returns the custom favicon2642 generating external URLs2643 #issues_url2644 handles trailing slashes2645 #new_issue_url2646 handles trailing slashes2647ProjectStatisticsPolicy2648 #rules2649 project_type: :public, user_type: :unauthenticated, outcome: false2650 should eq false2651 when the user is external2652 should eq false2653 project_type: :public, user_type: :non_member, outcome: false2654 should eq false2655 when the user is external2656 should eq false2657 project_type: :public, user_type: :guest, outcome: false2658 should eq false2659 when the user is external2660 should eq false2661 project_type: :public, user_type: :reporter, outcome: true2662 should eq true2663 when the user is external2664 should eq true2665 project_type: :public, user_type: :developer, outcome: true2666 should eq true2667 when the user is external2668 should eq true2669 project_type: :public, user_type: :maintainer, outcome: true2670 should eq true2671 when the user is external2672 should eq true2673 project_type: :private, user_type: :unauthenticated, outcome: false2674 should eq false2675 when the user is external2676 should eq false2677 project_type: :private, user_type: :non_member, outcome: false2678 should eq false2679 when the user is external2680 should eq false2681 project_type: :private, user_type: :guest, outcome: false2682 should eq false2683 when the user is external2684 should eq false2685 project_type: :private, user_type: :reporter, outcome: true2686 should eq true2687 when the user is external2688 should eq true2689 project_type: :private, user_type: :developer, outcome: true2690 should eq true2691 when the user is external2692 should eq true2693 project_type: :private, user_type: :maintainer, outcome: true2694 should eq true2695 when the user is external2696 should eq true2697 project_type: :internal, user_type: :unauthenticated, outcome: false2698 should eq false2699 when the user is external2700 should eq false2701 project_type: :internal, user_type: :non_member, outcome: false2702 should eq false2703 when the user is external2704 should eq false2705 project_type: :internal, user_type: :guest, outcome: false2706 should eq false2707 when the user is external2708 should eq false2709 project_type: :internal, user_type: :reporter, outcome: true2710 should eq true2711 when the user is external2712 should eq true2713 project_type: :internal, user_type: :developer, outcome: true2714 should eq true2715 when the user is external2716 should eq true2717 project_type: :internal, user_type: :maintainer, outcome: true2718 should eq true2719 when the user is external2720 should eq true2721PipelineSerializer2722 #represent2723 when used without pagination2724 created a not paginated serializer2725 when a single object is being serialized2726 serializers the pipeline object2727 when multiple objects are being serialized2728 serializers the array of pipelines2729 when used with pagination2730 created a paginated serializer2731 when resource is not paginatable2732 when a single pipeline object is being serialized2733 raises error2734 when resource is paginatable relation2735 when a single pipeline object is present in relation2736 serializes pipeline relation2737 when a multiple pipeline objects are being serialized2738 serializes appropriate number of objects2739 appends relevant headers2740 when there are pipelines for merge requests2741 includes merge requests information2742 preloads related merge requests2743 number of queries when preloaded2744 with the same ref2745 verifies number of queries2746 with different refs2747 verifies number of queries2748 #represent_status2749 when represents only status2750 serializes only status2751Notes::QuickActionsService2752 .noteable_update_service2753 returns Issues::UpdateService for a note on an issue2754 returns MergeRequests::UpdateService for a note on a merge request2755 returns Commits::TagService for a note on a commit2756 .supported?2757 with a note on an issue2758 returns true2759 with a note on a commit2760 returns false2761 #supported?2762 delegates to the class method2763 #execute2764 behaves like note on noteable that supports quick actions2765 note with only command2766 /close, /label, /assign & /milestone2767 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2768 /reopen2769 opens the noteable, and leave no note2770 /spend2771 updates the spent time on the noteable2772 note with command & text2773 /close, /label, /assign & /milestone2774 closes noteable, sets labels, assigns, and sets milestone to noteable2775 /reopen2776 opens the noteable2777 behaves like note on noteable that supports quick actions2778 note with only command2779 /close, /label, /assign & /milestone2780 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2781 /reopen2782 opens the noteable, and leave no note2783 /spend2784 updates the spent time on the noteable2785 note with command & text2786 /close, /label, /assign & /milestone2787 closes noteable, sets labels, assigns, and sets milestone to noteable2788 /reopen2789 opens the noteable2790 CE restriction for issue assignees2791 /assign2792 adds only one assignee from the list2793Gitlab::Email::Handler::CreateNoteHandler2794 behaves like reply_processing_shared_examples2795 when the user could not be found2796 raises a UserNotFoundError2797 when the user is not authorized to the project2798 raises a ProjectNotFound2799 when the recipient address doesn't include a mail key2800 raises a UnknownIncomingEmail2801 when no sent notification for the mail key could be found2802 raises a SentNotificationNotFoundError2803 when the noteable could not be found2804 raises a NoteableNotFoundError2805 when the note could not be saved2806 raises an InvalidNoteError2807 because the note was update commands only2808 and current user cannot update noteable2809 raises a CommandsOnlyNoteError2810 and current user can update noteable2811 does not raise an error2812 when the note contains quick actions2813 and current user cannot update the noteable2814 only executes the commands that the user can perform2815 and current user can update noteable2816 posts a note and updates the noteable2817 when the reply is blank2818 raises an EmptyEmailError2819 when discussion is locked2820 behaves like checks permissions on noteable2821 when user has access2822 creates a comment2823 when user does not have access2824 raises UserNotAuthorizedError2825 when issue is confidential2826 behaves like checks permissions on noteable2827 when user has access2828 creates a comment2829 when user does not have access2830 raises UserNotAuthorizedError2831 when everything is fine2832 adds all attachments2833 behaves like a reply to existing comment2834 creates a comment2835 when sub-addressing is not supported2836 mail key is in the References header2837 behaves like an email that contains a mail key2838 fetches the mail key from the References header and creates a comment2839 mail key is in the References header with a comma2840 behaves like an email that contains a mail key2841 fetches the mail key from the References header and creates a comment2842 when note is not a discussion2843 behaves like a reply to existing comment2844 creates a comment2845Gitlab::BackgroundMigration::PopulateUntrackedUploads2846NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping2847NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2848NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2849NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping2850 with untracked files and tracked files in untracked_files_for_uploads2851DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2852DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2853 adds untracked files to the uploads table2854DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2855DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2856 deletes rows after processing them2857DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2858DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2859 does not create duplicate uploads of already tracked files2860 uses the start and end batch ids [only 1st half]2861DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2862DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2863 uses the start and end batch ids [only 2nd half]2864DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2865 does not drop the temporary tracking table after processing the batch, if there are still untracked rows2866DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2867DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2868 drops the temporary tracking table after processing the batch, if there are no untracked rows left2869DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2870DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2871 does not block a whole batch because of one bad path2872DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2873DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group2/project2' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2874 an unparseable path is shown in error output2875 with no untracked files2876 does not add to the uploads table (and does not raise error)2877 upload outcomes for each path pattern2878 for an appearance logo file path2879 behaves like non_markdown_file2880 creates an Upload record2881 for an appearance header_logo file path2882 behaves like non_markdown_file2883 creates an Upload record2884 for a pre-Markdown Note attachment file path2885 creates an Upload record2886 for a user avatar file path2887 behaves like non_markdown_file2888 creates an Upload record2889 for a group avatar file path2890 behaves like non_markdown_file2891 creates an Upload record2892 for a project avatar file path2893 behaves like non_markdown_file2894 creates an Upload record2895 for a project Markdown attachment (notes, issues, MR descriptions) file path2896DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(CASE WHEN routes.path = 'group1/project1' THEN 0 ELSE 1 END)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from find_by_full_path at /builds/gitlab-org/gitlab/lib/gitlab/background_migration/populate_untracked_uploads_dependencies.rb:180)2897 creates an Upload record2898NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping2899NOTICE: table "design_management_designs" does not exist, skipping2900NOTICE: table "design_management_designs_versions" does not exist, skipping2901NOTICE: table "design_management_versions" does not exist, skipping2902NOTICE: table "geo_container_repository_updated_events" does not exist, skipping2903NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2904NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2905NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping2906Banzai::Filter::CommitRangeReferenceFilter2907 requires project context2908 ignores valid references contained inside 'pre' element2909 ignores valid references contained inside 'code' element2910 ignores valid references contained inside 'a' element2911 ignores valid references contained inside 'style' element2912 internal reference2913 links to a valid two-dot reference2914 links to a valid three-dot reference2915 links to a valid short ID2916 links with adjacent text2917 ignores invalid commit IDs2918 includes no title attribute2919 includes default classes2920 includes a data-project attribute2921 includes a data-commit-range attribute2922 supports an :only_path option2923 cross-project / cross-namespace complete reference2924 links to a valid reference2925 link has valid text2926 has valid text2927 ignores invalid commit IDs on the referenced project2928 cross-project / same-namespace complete reference2929 links to a valid reference2930 link has valid text2931 has valid text2932 ignores invalid commit IDs on the referenced project2933 cross-project shorthand reference2934 links to a valid reference2935 link has valid text2936 has valid text2937 ignores invalid commit IDs on the referenced project2938 cross-project URL reference2939 links to a valid reference2940 links with adjacent text2941 ignores invalid commit IDs on the referenced project2942 group context2943 ignores internal references2944 links to a full-path reference2945BuildDetailsEntity2946 inherits from JobEntity2947 #as_json2948 contains the needed key value pairs2949 when the user has access to issues and merge requests2950 when merge request orginates from the same project2951 contains the needed key value pairs2952 exposes correct details of the merge request2953 has a correct merge request path2954 when merge request is from a fork2955 contains the needed key value pairs2956 exposes details of the merge request2957 has a merge request path to a target project2958 when the build has not been erased2959 exposes a build erase path2960 when the build has been erased2961 exposes the user who erased the build2962 when the user can only read the build2963 won't display the paths to issues and merge requests2964 when the build has failed29652019-10-15T08:48:11.220Z 200 TID-gtjy5wn1c WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>91}2966 should include {:failure_reason => "unmet_prerequisites"}2967 when a build has environment with latest deployment2968 does not serialize latest deployment commit and associated builds2969 when the build has reports2970 exposes the report artifacts2971Clusters::Applications::CheckInstallationProgressService#execute2972 when application is updating2973 when installation raises a Kubeclient::HttpError2974 logs into kubernetes.log and Sentry2975 shows the response code from the error2976 behaves like a not yet terminated installation2977 when phase is Pending2978 when not timed_out2979 reschedule a new check2980 behaves like a not yet terminated installation2981 when phase is Running2982 when not timed_out2983 reschedule a new check2984 behaves like a not yet terminated installation2985 when phase is Unknown2986 when not timed_out2987 reschedule a new check2988 when installation POD succeeded2989 removes the installation POD2990 make the application installed2991 when installation POD failed2992 make the application errored2993 when timed out2994 make the application errored2995 when application is installing2996 when installation raises a Kubeclient::HttpError2997 logs into kubernetes.log and Sentry2998 shows the response code from the error2999 behaves like a not yet terminated installation3000 when phase is Pending3001 when not timed_out3002 reschedule a new check3003 behaves like a not yet terminated installation3004 when phase is Running3005 when not timed_out3006 reschedule a new check3007 behaves like a not yet terminated installation3008 when phase is Unknown3009 when not timed_out3010 reschedule a new check3011 when installation POD succeeded3012 removes the installation POD3013 make the application installed3014 when installation POD failed3015 make the application errored3016 when timed out3017 make the application errored3018Gitlab::TreeSummary3019 #initialize3020 defaults offset to 03021 defaults limit to 253022 #summarize3023 returns an array of entries, and an array of commits3024 #summarize (entries)3025 summarizes the entries within the window3026 references the commit and commit path in entries3027 in a good subdirectory3028 summarizes the entries in the subdirectory3029 in a non-existent subdirectory3030 should be empty3031 custom offset and limit3032 returns entries from the offset3033 #summarize (commits)3034 returns an Array of ::Commit objects3035 deduplicates commits when multiple entries reference the same commit3036 in a subdirectory3037 returns commits for entries in the subdirectory3038 #more?3039 num_entries: 0, offset: 0, limit: 0, expected_result: false3040 should eq false3041 num_entries: 0, offset: 0, limit: 1, expected_result: false3042 should eq false3043 num_entries: 1, offset: 0, limit: 0, expected_result: true3044 should eq true3045 num_entries: 1, offset: 0, limit: 1, expected_result: false3046 should eq false3047 num_entries: 1, offset: 1, limit: 0, expected_result: false3048 should eq false3049 num_entries: 1, offset: 1, limit: 1, expected_result: false3050 should eq false3051 num_entries: 2, offset: 0, limit: 0, expected_result: true3052 should eq true3053 num_entries: 2, offset: 0, limit: 1, expected_result: true3054 should eq true3055 num_entries: 2, offset: 0, limit: 2, expected_result: false3056 should eq false3057 num_entries: 2, offset: 0, limit: 3, expected_result: false3058 should eq false3059 num_entries: 2, offset: 1, limit: 0, expected_result: true3060 should eq true3061 num_entries: 2, offset: 1, limit: 1, expected_result: false3062 should eq false3063 num_entries: 2, offset: 2, limit: 0, expected_result: false3064 should eq false3065 num_entries: 2, offset: 2, limit: 1, expected_result: false3066 should eq false3067 #next_offset3068 num_entries: 0, offset: 0, limit: 0, expected_result: 03069 should eq 03070 num_entries: 0, offset: 0, limit: 1, expected_result: 13071 should eq 13072 num_entries: 0, offset: 1, limit: 0, expected_result: 13073 should eq 13074 num_entries: 0, offset: 1, limit: 1, expected_result: 13075 should eq 13076 num_entries: 1, offset: 0, limit: 0, expected_result: 03077 should eq 03078 num_entries: 1, offset: 0, limit: 1, expected_result: 13079 should eq 13080 num_entries: 1, offset: 1, limit: 0, expected_result: 13081 should eq 13082 num_entries: 1, offset: 1, limit: 1, expected_result: 23083 should eq 23084Banzai::Filter::UserReferenceFilter3085 requires project context3086 ignores invalid users3087 ignores references with text before the @ sign3088 ignores valid references contained inside 'pre' element3089 ignores valid references contained inside 'code' element3090 ignores valid references contained inside 'a' element3091 ignores valid references contained inside 'style' element3092 links with adjacent text3093 includes default classes3094 behaves like user reference or project reference3095 supports an :only_path context3096 mentioning a resource3097 links to a resource3098 links to a resource with a period3099 links to a resource with an underscore3100 links to a resource with different case-sensitivity3101 behaves like a reference containing an element node3102 does not escape inner html3103 behaves like it contains a data- attribute3104 includes a data- attribute3105 referencing a resource in a link href3106 links to the resource3107 links with adjacent text3108 behaves like it contains a data- attribute3109 includes a data- attribute3110 mentioning @all3111 supports a special @all mention3112 includes a data-author attribute when there is an author3113 does not include a data-author attribute when there is no author3114 ignores reference to all when the user is not a project member3115 behaves like a reference containing an element node3116 does not escape inner html3117 mentioning a group3118 links to the Group3119 includes a data-group attribute3120 behaves like a reference containing an element node3121 does not escape inner html3122 mentioning a nested group3123 links to the nested group3124 has the full group name as a title3125 behaves like a reference containing an element node3126 does not escape inner html3127 when a project is not specified3128 does not link a User3129 when skip_project_check set to true3130 links to a User3131 does not link users using @all reference3132 in group context3133 supports a special @all mention3134 supports mentioning a single user3135 supports mentioning a group3136 #namespaces3137 returns a Hash containing all Namespaces3138 #usernames3139 returns the usernames mentioned in a document3140Gitlab::Graphql::Connections::KeysetConnection3141 #cursor_from_nodes3142 returns an encoded ID3143 when an order was specified3144 returns the encoded value of the order3145 #sliced_nodes3146 when before is passed3147 only returns the project before the selected one3148 when the sort order is descending3149 returns the correct nodes3150 when after is passed3151 only returns the project before the selected one3152 when the sort order is descending3153 returns the correct nodes3154 when both before and after are passed3155 returns the expected set3156 #paged_nodes3157 returns the collection limited to max page size3158 is a loaded memoized array3159 when `first` is passed3160 returns only the first elements3161 when `last` is passed3162 returns only the last elements3163 when both are passed3164 raises an error3165Gitlab::Gpg3166 .fingerprints_from_key3167 returns CurrentKeyChain.fingerprints_from_key3168 .primary_keyids_from_key3169 returns the keyid3170 returns an empty array when the key is invalid3171 .subkeys_from_key3172 returns the subkeys by primary key3173 returns an empty array when there are not subkeys3174 .user_infos_from_key3175 returns the names and emails3176 returns an empty array when the key is invalid3177 downcases the email3178 rejects non UTF-8 names and addresses3179 .current_home_dir3180 returns the default value when no explicit home dir has been set3181 returns the explicitly set home dir3182 returns the default value when explicitly setting the home dir to nil3183 .using_tmp_keychain3184 the second thread does not change the first thread's directory3185 allows recursive execution in the same thread3186Gitlab::Gpg::CurrentKeyChain3187 .add3188 stores the key in the keychain3189 .fingerprints_from_key3190 returns the fingerprint3191 returns an empty array when the key is invalid3192Avatarable3193 #update3194 when avatar changed3195 validates the file size3196 when avatar was not changed3197 skips validation of file size3198 #avatar_path3199 with caching enabled3200 only calls local_url once3201 calls local_url twice for path and URLs3202 calls local_url twice for different sizes3203 handles unpersisted objects3204 has_asset_host: true, visibility_level: 0, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3205 returns the expected avatar path3206 returns the expected avatar path with width parameter3207 when avatar is stored remotely3208 returns the expected avatar path3209 has_asset_host: true, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3210 returns the expected avatar path3211 returns the expected avatar path with width parameter3212 when avatar is stored remotely3213 returns the expected avatar path3214 has_asset_host: true, visibility_level: 10, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3215 returns the expected avatar path3216 returns the expected avatar path with width parameter3217 when avatar is stored remotely3218 returns the expected avatar path3219 has_asset_host: true, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3220 returns the expected avatar path3221 returns the expected avatar path with width parameter3222 when avatar is stored remotely3223 returns the expected avatar path3224 has_asset_host: true, visibility_level: 20, only_path: true, avatar_path_prefix: []3225 returns the expected avatar path3226 returns the expected avatar path with width parameter3227 when avatar is stored remotely3228 returns the expected avatar path3229 has_asset_host: true, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab-assets.example.com"]3230 returns the expected avatar path3231 returns the expected avatar path with width parameter3232 when avatar is stored remotely3233 returns the expected avatar path3234 has_asset_host: false, visibility_level: 0, only_path: true, avatar_path_prefix: ["/gitlab"]3235 returns the expected avatar path3236 returns the expected avatar path with width parameter3237 when avatar is stored remotely3238 returns the expected avatar path3239 has_asset_host: false, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3240 returns the expected avatar path3241 returns the expected avatar path with width parameter3242 when avatar is stored remotely3243 returns the expected avatar path3244 has_asset_host: false, visibility_level: 10, only_path: true, avatar_path_prefix: ["/gitlab"]3245 returns the expected avatar path3246 returns the expected avatar path with width parameter3247 when avatar is stored remotely3248 returns the expected avatar path3249 has_asset_host: false, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3250 returns the expected avatar path3251 returns the expected avatar path with width parameter3252 when avatar is stored remotely3253 returns the expected avatar path3254 has_asset_host: false, visibility_level: 20, only_path: true, avatar_path_prefix: ["/gitlab"]3255 returns the expected avatar path3256 returns the expected avatar path with width parameter3257 when avatar is stored remotely3258 returns the expected avatar path3259 has_asset_host: false, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3260 returns the expected avatar path3261 returns the expected avatar path with width parameter3262 when avatar is stored remotely3263 returns the expected avatar path3264Gitlab::Email::Message::RepositoryPush3265 new commits have been pushed to repository3266 #project3267 should eq #<Project id:1029 my_group/project1007>3268 should be an instance of Project3269 #project_namespace3270 should eq #<Group id:1910 @my_group>3271 should be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_a...tion_level: integer, emails_disabled: boolean, max_pages_size: integer, max_artifacts_size: integer)3272 #project_name_with_namespace3273 should eq "my_group / project1011"3274 #author3275 should eq #<User id:1896 @user1908>3276 should be an instance of User3277 #author_name3278 should eq "Author"3279 #commits3280 should be a kind of Array3281 should all be an instance of Commit3282 #diffs3283 should all be an instance of Gitlab::Diff::File3284 #diffs_count3285 should eq 93286 #compare3287 should be an instance of Compare3288 #compare_timeout3289 should eq false3290 #reverse_compare?3291 should eq false3292 #disable_diffs?3293 should eq false3294 #send_from_committer_email?3295 should eq true3296 #action_name3297 should eq "pushed to"3298 #ref_name3299 should eq "master"3300 #ref_type3301 should eq "branch"3302 #target_url3303 should include "compare"3304 should include "2f63565e7aac07bcdadb654e253078b727143ec4"3305 should include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"3306 #subject3307 should include "[Git][my_group/project1030]"3308 should include "6 commits"3309 should include "Ruby files modified"3310EventsHelper3311 #event_commit_title3312 returns the first line, truncated to 70 chars3313 is not html-safe3314 handles empty strings3315 handles nil values3316 does not escape HTML entities3317 #event_feed_url3318 returns project commit url3319 returns event note target url3320 returns project url3321 returns push event feed url3322 issue3323 returns the project issue url3324 contains the project issue IID link3325 merge request3326 returns the project merge request url3327 contains the project merge request IID link3328 #event_note_target_url3329 returns a commit note url3330 returns a project snippet note url3331 returns a project issue url3332 returns a merge request url3333MergeRequestsHelper3334 ci_build_details_path3335 does not include api credentials in a link3336 #format_mr_branch_names3337 within the same project3338 should eq ["master", "feature"]3339 within different projects3340 should eq ["group18/project1058:master", "namespace1024/project1058:feature"]3341 #tab_link_for3342 supports the :force_link option3343 removes the data-toggle attributes3344TreeHelper3345 .render_tree3346 displays all entries without a warning3347 truncates entries and adds a warning3348 .fast_project_blob_path3349 generates the same path as project_blob_path3350 generates the same path with encoded file names3351 respects a configured relative URL3352 encodes files starting with #3353 .fast_project_tree_path3354 generates the same path as project_tree_path3355 respects a configured relative URL3356 encodes files starting with #3357 flatten_tree3358 on a directory containing more than one file/directory3359 returns the directory name3360 on a directory containing only one directory3361 returns the flattened path3362 with a nested root path3363 returns the flattened path with the root path suffix removed3364 when the root path contains a plus character3365 returns the flattened path3366 #commit_in_single_accessible_branch3367 escapes HTML from the branch name3368DeploymentMetrics3369 #has_metrics?3370 when deployment is failed3371 should be falsy3372 when deployment is success3373 without a monitoring service3374 should be falsy3375 with a Prometheus Service3376 should be truthy3377 with a Prometheus Service that cannot query3378 should be falsy3379 with a cluster Prometheus3380 should be truthy3381 #metrics3382 metrics are disabled3383 should eq {}3384 metrics are enabled3385 should eq {:deployment_time=>1571129381, :last_update=>42, :metrics=>{}, :success=>true}3386 #additional_metrics3387 metrics are disabled3388 should eq {}3389 metrics are enabled3390 should eq {:deployment_time=>1571129383, :last_update=>42, :metrics=>{}, :success=>true}3391Gitlab::ImportExport::AfterExportStrategies::BaseAfterExportStrategy3392 #execute3393 returns if project exported file is not found3394 creates a lock file in the export dir3395 when the method succeeds3396 removes the lock file3397 removes the archive path3398 when the method fails3399 when validation fails3400 does not create the lock file3401 does not execute main logic3402 logs validation errors in shared context3403 removes the archive path3404 when an exception is raised3405 removes the lock3406 #log_validation_errors3407 add the message to the shared context3408 #to_json3409 adds the current strategy class to the serialized attributes3410Banzai::ReferenceParser::BaseParser3411 .reference_type=3412 sets the reference type3413 #project_for_node3414 returns the Project for a node3415 #nodes_visible_to_user3416 when the link has a data-project attribute3417 checks if user can read the resource3418 when the link does not have a data-project attribute3419 returns the nodes3420 #nodes_user_can_reference3421 returns the nodes3422 #referenced_by3423 when references_relation is implemented3424 returns a collection of objects3425 when references_relation is not implemented3426 raises NotImplementedError3427 #references_relation3428 raises NotImplementedError3429 #gather_attributes_per_project3430 returns a Hash containing attribute values per project3431 #grouped_objects_for_nodes3432 returns a Hash grouping objects per node3433 returns an empty Hash when entry does not exist in the database3434 #unique_attribute_values3435 returns an Array of unique values3436 #process3437 gathers the references for every node matching the reference type3438 #gather_references3439 does not process links a user can not reference3440 does not process links a user can not see3441 returns the references if a user can reference and see a link3442 #can?3443 delegates the permissions check to the Ability class3444 #find_projects_for_hash_keys3445 returns a list of Projects3446 #collection_objects_for_ids3447 with RequestStore disabled3448 queries the collection directly3449 with RequestStore enabled3450 queries the collection on the first call3451 does not query previously queried objects3452 casts String based IDs to Fixnums before querying objects3453 queries any additional objects after the first call3454 caches objects on a per collection class basis3455 #collection_cache_key3456 returns the cache key for a Class3457 returns the cache key for an ActiveRecord::Relation3458Gitlab::BlobHelper3459 #extname3460 returns the extension3461 #known_extension?3462 returns true3463 #viewable3464 returns true3465 returns false3466 #large?3467 returns false3468 returns true3469 #binary?3470 returns true3471 returns false3472 #text?3473 returns true3474 returns false3475 #image?3476 returns false3477 #mime_type3478 returns text/plain3479 returns application/pdf3480 #binary_mime_type?3481 returns false3482 #lines3483 returns the payload in an Array3484 #content_type3485 returns text/plain3486 returns text/plain3487 #encoded_newlines_re3488 returns a regular expression3489 #ruby_encoding3490 returns UTF-83491 #encoding3492 returns UTF-83493 #empty?3494 returns false3495AnalyticsBuildEntity3496 build with an author3497 contains the URL3498 contains the author3499 does not contain sensitive information3500 contains the right started at3501 contains the duration3502 no started at or finished at date3503 does not blow up3504 shows the right message3505 shows the right total time3506 no started at date3507 does not blow up3508 shows the right message3509 shows the right total time3510 no finished at date3511 does not blow up3512 shows the right message3513 shows the right total time3514Gitlab::LegacyGithubImport::ProjectCreator3515 #execute3516 creates a project3517 handle GitHub credentials3518 when GitHub project is private3519 sets project visibility to private3520 when GitHub project is public3521 sets project visibility to namespace visibility level3522 when importing into a user namespace3523 sets project visibility to user namespace visibility level3524 when visibility level is restricted3525 when GitHub project is private3526 sets project visibility to the default project visibility3527 when GitHub project is public3528 sets project visibility to the default project visibility3529 when GitHub project has wiki3530 does not create the wiki repository3531 when GitHub project does not have wiki3532 creates the wiki repository3533Gitlab::Email::Handler::CreateIssueHandler3534 behaves like reply_processing_shared_examples3535 when the user could not be found3536 raises a UserNotFoundError3537 when the user is not authorized to the project3538 raises a ProjectNotFound3539 when email key3540 matches the new format3541 matches the legacy format3542 doesn't match either format3543 when everything is fine3544 behaves like a new issue3545 creates a new issue3546 creates a new issue with legacy email address3547 behaves like a new issue3548 creates a new issue3549 when the reply is blank3550 creates a new issue3551 when there are quotes in email3552 creates a new issue3553 something is wrong3554 when the issue could not be saved3555 raises an InvalidIssueError3556 when we can't find the incoming_email_token3557 raises an UserNotFoundError3558 when project is private3559 raises a ProjectNotFound if the user is not a member3560Gitlab::Ci::Status::Build::Scheduled3561 #illustration3562 should include :image, :size, and :title3563 #status_tooltip3564 has a placeholder for the remaining time3565 .matches?3566 when build is scheduled and scheduled_at is present3567 should be truthy3568 when build is scheduled3569 should be falsy3570 when scheduled_at is present3571 should be falsy3572Projects::MoveDeployKeysProjectsService3573 #execute3574 moves the user's deploy keys from one project to another3575 does not link existent deploy_keys in the current project3576 rollbacks changes if transaction fails3577 when remove_remaining_elements is false3578 does not remove remaining deploy keys projects3579forked project import3580 can access the MR3581Projects::CreateFromTemplateService3582 calls the importer service3583 returns the project that is created3584 when template is not present3585 does not set import set import type3586 does not set import set import source3587 is not scheduled3588 repository is empty3589 the result project3590 overrides template description3591 overrides template visibility_level3592Gitlab::ImportExport::LfsRestorer3593 #restore3594 when the archive contains lfs files3595 succeeds3596 does not create a new `LfsObject` records, as one already exists3597 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`3598 restores the correct `LfsObject` records3599 restores the correct `LfsObjectsProject` records for the project3600 assigns the file correctly3601 when there is not an existing `LfsObject`3602 creates a new lfs object3603 stores the upload3604 when there is no lfs-objects.json file3605 restores the correct `LfsObject` records3606 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`3607 without any LFS-objects3608 succeeds3609Blob3610 .decorate3611 returns NilClass when given nil3612 .lazy3613 does not fetch blobs when none are accessed3614 fetches all blobs for the same repository when one is accessed3615 does not include blobs from previous requests in later requests3616 #data3617 using a binary blob3618 returns the data as-is3619 using a text blob3620 converts the data to UTF-83621 #external_storage_error?3622 if the blob is stored in LFS3623 when the project has LFS enabled3624 returns false3625 when the project does not have LFS enabled3626 returns true3627 if the blob is not stored in LFS3628 returns false3629 #stored_externally?3630 if the blob is stored in LFS3631 when the project has LFS enabled3632 returns true3633 when the project does not have LFS enabled3634 returns false3635 if the blob is not stored in LFS3636 returns false3637 #binary?3638 if the blob is stored externally3639 if the extension has a rich viewer3640 if the viewer is binary3641 returns true3642 if the viewer is text-based3643 return false3644 if the extension doesn't have a rich viewer3645 if the extension has a text mime type3646 if the extension is for a programming language3647 returns false3648 if the extension is not for a programming language3649 returns false3650 if the extension has a binary mime type3651 if the extension is for a programming language3652 returns false3653 if the extension is not for a programming language3654 returns true3655 if the extension has an unknown mime type3656 if the extension is for a programming language3657 returns false3658 if the extension is not for a programming language3659 returns true3660 if the blob is not stored externally3661 if the blob is binary3662 returns true3663 if the blob is text-based3664 return false3665 #extension3666 returns the extension3667 #file_type3668 returns the file type3669 #simple_viewer3670 when the blob is empty3671 returns an empty viewer3672 when the file represented by the blob is binary3673 returns a download viewer3674 when the file represented by the blob is text-based3675 returns a text viewer3676 #rich_viewer3677 when the blob has an external storage error3678 returns nil3679 when the blob is empty3680 returns nil3681 when the blob is stored externally3682 returns a matching viewer3683 when the blob is binary3684 returns a matching binary viewer3685 when the blob is text-based3686 returns a matching text-based viewer3687 #auxiliary_viewer3688 when the blob has an external storage error3689 returns nil3690 when the blob is empty3691 returns nil3692 when the blob is stored externally3693 returns a matching viewer3694 when the blob is binary3695 returns nil3696 when the blob is text-based3697 returns a matching text-based viewer3698 #rendered_as_text?3699 when ignoring errors3700 when the simple viewer is text-based3701 returns true3702 when the simple viewer is binary3703 returns false3704 when not ignoring errors3705 when the viewer has render errors3706 returns false3707 when the viewer doesn't have render errors3708 returns true3709Ci::ExtractSectionsFromBuildTraceService#execute3710 when the build has no user3711 behaves like build trace has sections markers3712 saves the correct extracted sections3713 fails if trace_sections isn't empty3714 behaves like build trace has no sections markers3715 extracts no sections3716 when the build has a valid user3717 behaves like build trace has sections markers3718 saves the correct extracted sections3719 fails if trace_sections isn't empty3720 behaves like build trace has no sections markers3721 extracts no sections3722Projects::HashedStorage::MigrateAttachmentsService3723 #execute3724 works even when project validation fails3725 when succeeds3726 moves attachments to hashed storage layout3727 returns true3728 sets skipped to false3729 when original folder does not exist anymore3730 skips moving folders and go to next3731 returns true3732 sets skipped to true3733 when target folder already exists3734 raises AttachmentCannotMoveError3735 #old_disk_path3736 returns old disk_path for project3737 #new_disk_path3738 returns new disk_path for project3739Banzai::ReferenceRedactor3740 #redact3741 when reference not visible to user3742 redacts an array of documents3743 replaces redacted reference with inner HTML3744 when data-original attribute provided3745 replaces redacted reference with original content3746 does not replace redacted reference with original content if href is given3747 uses the original content as the link content if given3748 when project is in pending delete3749 redacts an issue attached3750 redacts an external issue3751 when reference visible to user3752 does not redact an array of documents3753 when the user cannot read cross project3754 skips links to issues within the same project3755 removes info from a cross project reference3756 #redact_nodes3757 redacts an Array of nodes3758 #nodes_visible_to_user3759 returns a Set containing the visible nodes3760Release3761 should be valid3762 associations3763 should belong to project required:3764 should belong to author class_name => User required:3765 should have many links class_name => Releases::Link3766 should have many milestones3767 should have many milestone_releases3768 validation3769 should validate that :project cannot be empty/falsy3770 should validate that :description cannot be empty/falsy3771 when a release exists in the database without a name3772 does not require name3773 when a release is tied to a milestone for another project3774WARNING: 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)>'.3775 creates a validation error3776 when a release is tied to a milestone linked to the same project3777 successfully links this release to this milestone3778 #assets_count3779 returns the number of sources3780 when a links exists3781 counts the link as an asset3782 excludes sources count when asked3783 #sources3784 returns sources3785 #upcoming_release?3786 during the backfill migration when released_at could be nil3787 handles a nil released_at value and returns false3788Projects::PropagateServiceTemplate3789 .propagate3790 creates services for projects3791 creates services for a project that has another service3792 does not create the service if it exists already3793 creates the service containing the template attributes3794 bulk update3795 creates services for all projects3796 external tracker3797 updates the project external tracker3798 external wiki3799 updates the project external tracker3800MilestonesHelper3801 #milestones_filter_dropdown_path3802 when @project present3803 returns project milestones JSON URL3804 when @target_project present3805 returns targeted project milestones JSON URL3806 when @group present3807 returns group milestones JSON URL3808 when neither of @project/@target_project/@group present3809 returns dashboard milestones JSON URL3810 #milestone_date_range3811 should be nil3812 should eq "expires on Oct 16, 2019"3813 should eq "expired on Oct 14, 2019"3814 should eq "starts on Oct 16, 2019"3815 should eq "started on Oct 14, 2019"3816 should eq "Oct 14, 2019–Oct 16, 2019"3817 #milestone_counts3818 when there are milestones3819 returns the correct counts3820 when there are only milestones of one type3821 returns the correct counts3822 when there are no milestones3823 returns the correct counts3824Gitlab::Chat::Output3825 #to_s3826 returns the build output as a String3827 #read_offset_and_length3828 without the chat_reply trace section3829 falls back to using the build_script trace section3830 without the build_script trace section3831 raises MissingBuildSectionError3832 with the chat_reply trace section3833 returns the read offset and length as an Array3834 #without_executed_command_line3835 returns the input without the first line3836 returns an empty String when the input is empty3837 returns an empty String when the input consits of a single newline3838 #find_build_trace_section3839 returns nil when no section could be found3840 returns the trace section when it could be found3841IssuablePolicy3842 #rules3843 when user is author of issuable3844 when user is able to read project3845 enables user to read and update issuables3846 when project is private3847 disallows user from reading and updating issuables from that project3848 when user belongs to the projects team3849 enables user to read and update issuables3850 when discussion is locked for the issuable3851 when the user is not a project member3852 can not create a note3853 when the user is a project member3854 can create a note3855HasEnvironmentScope3856 should allow :environment_scope to be ‹"*"›3857 should allow :environment_scope to be ‹"review/*"›3858 should not allow :environment_scope to be ‹""›3859 should not allow :environment_scope to be ‹"!!()()"›3860 should validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure3861 .on_environment3862 returns scoped objects3863 returns only the most relevant object if relevant_only is true3864 returns scopes ordered by lowest precedence first3865 #environment_scope=3866 when the new environment_scope is nil3867 strips leading and trailing whitespaces3868 when the new environment_scope has leadind and trailing whitespaces3869 strips leading and trailing whitespaces3870Gitlab::BackgroundMigration::LegacyUploadsMigrator3871 removes all legacy files3872 removes all AttachmentUploader records3873 creates new uploads for successfully migrated records3874TestHooks::SystemService3875 #execute3876 hook with not implemented test3877 returns error message3878 push_events3879 executes hook3880 tag_push_events3881 executes hook3882 repository_update_events3883 executes hook3884 merge_requests_events3885 returns error message if the user does not have any repository with a merge request3886 executes hook3887Gitlab::Graphql::Authorize::AuthorizeResource3888 when the user is allowed to perform the action3889 #authorized_find!3890 returns the object3891 #authorize!3892 does not raise an error3893 #authorized_resource?3894 is true3895 when the user is not allowed to perform the action3896 #authorized_find!3897 raises an error3898 #authorize!3899 raises an error3900 #authorized_resource?3901 is false3902 when the class does not define #find_object3903 raises a comprehensive error message3904 when the class does not define authorize3905 #authorized_find!3906 raises a comprehensive error message3907 #authorized_resource?3908 raises a comprehensive error message3909 #authorize3910 adds permissions from subclasses to those of superclasses when used on classes3911layouts/header/_new_dropdown3912 group-specific links3913 as a Group owner3914 has a "New project" link3915 has a "New subgroup" link3916 project-specific links3917 as a Project owner3918 has a "New issue" link3919 has a "New merge request" link3920 has a "New snippet" link3921 as a Project guest3922 has no "New merge request" link3923 has no "New snippet" link3924 global links3925 has a "New project" link3926 has a "New group" link3927 has a "New snippet" link3928projects/deployments/_confirm_rollback_modal3929 when re-deploying last deployment3930 shows "re-deploy"3931 links to re-deploying the environment3932 when rolling back to previous deployment3933 shows "rollback"3934 links to re-deploying the environment3935WikiPages::CreateService3936 #execute3937 creates wiki page with valid attributes3938 executes webhooks3939 counts wiki page creation3940 when the options are bad3941 does not count a creation event3942 reports the error3943PoolRepository3944 associations3945 should belong to shard required:3946 should belong to source_project required:3947 should have many member_projects3948 validations3949 should validate that :shard cannot be empty/falsy3950 should validate that :source_project cannot be empty/falsy3951 #disk_path3952 sets the hashed disk_path3953 #mark_obsolete_if_last3954 when the last member leaves3955 schedules pool removal3956 when the second member leaves3957 does not schedule pool removal3958Gitlab::SlashCommands::IssueNew3959 #execute3960 without description3961 creates the issue3962 with description3963 creates the issue with description3964 with more newlines between the title and the description3965 creates the issue3966 issue cannot be created3967 displays the errors3968 .match3969 matches the title without description3970 matches the title with description3971 matches the alias new3972ActiveRecord locking3973 when lock_version is NULL3974 behaves like locked model3975 can be updated3976 can be deleted3977 when lock_version is 03978 behaves like locked model3979 can be updated3980 can be deleted3981 when lock_version is 13982 behaves like locked model3983 can be updated3984 can be deleted3985Gitlab::FileFinder3986 #find3987 filters by name3988 filters by path3989 filters by extension3990 behaves like file finder3991 finds by name3992 finds by content3993UsersStarProjectsFinder3994 #execute3995 as same user3996 should contain exactly #<UsersStarProject id: 2, project_id: 1379, user_id: 2460, created_at: "2019-10-15 08:51:25", updated_at: "2019-10-15 08:51:25"> and #<UsersStarProject id: 1, project_id: 1379, user_id: 2458, created_at: "2019-10-15 08:51:25", updated_at: "2019-10-15 08:51:25">3997 as other user3998 should contain exactly #<UsersStarProject id: 3, project_id: 1380, user_id: 2461, created_at: "2019-10-15 08:51:26", updated_at: "2019-10-15 08:51:26">3999 as no user4000 should contain exactly #<UsersStarProject id: 5, project_id: 1381, user_id: 2465, created_at: "2019-10-15 08:51:26", updated_at: "2019-10-15 08:51:26">4001Banzai::Pipeline::FullPipeline4002 References4003 handles markdown inside a reference4004 sanitizes reference HTML4005 escapes the data-original attribute on a reference4006 footnotes4007 properly adds the necessary ids and classes4008 links are detected as malicious4009 has tooltips for malicious links4010 has no tooltips for safe links4011DiffsEntity4012 as json4013 contains needed attributes4014Gitlab::PhabricatorImport::BaseWorker4015 .schedule4016 schedules the job4017 counts the scheduled job4018 #perform4019 does not break for a non-existing project4020 does not do anything when the import is not in progress4021 calls import for the project4022 marks the project as imported if there was only one job running4023 does not mark the job as finished when there are more scheduled jobs4024 decrements the job counter4025Gitlab::BackgroundMigration::ArchiveLegacyTraces4026NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4027NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4028NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4029 when trace file exsits at the right place4030 correctly archive legacy traces4031 when trace file does not exsits at the right place4032 does not raise errors nor create job artifact4033 when trace data exsits in database4034 correctly archive legacy traces4035NOTICE: table "design_management_designs" does not exist, skipping4036NOTICE: table "design_management_designs_versions" does not exist, skipping4037NOTICE: table "design_management_versions" does not exist, skipping4038NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4039NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4040NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4041NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4042Git::TagPushService4043 Push tags4044 flushes general cached data4045 does not flush the tags cache4046 Hooks4047 run on a tag4048 delegates to Git::TagHooksService4049 run on a branch4050 does nothing4051API::Helpers4052 #find_project4053 when ID is used as an argument4054 behaves like project finder4055 when project exists4056 returns requested project4057 returns nil4058 when PATH is used as an argument4059 behaves like project finder4060 when project exists4061 returns requested project4062 returns nil4063 with an invalid PATH4064 does not hit the database4065 behaves like project finder4066 when project exists4067 returns requested project4068 returns nil4069 #find_namespace4070 when ID is used as an argument4071 behaves like namespace finder4072 when namespace exists4073 returns requested namespace4074 when namespace doesn't exists4075 returns nil4076 when PATH is used as an argument4077 behaves like namespace finder4078 when namespace exists4079 returns requested namespace4080 when namespace doesn't exists4081 returns nil4082 #find_namespace!4083 behaves like user namespace finder4084 when namespace is group4085 when user has access to group4086 returns requested namespace4087 when user doesn't have access to group4088 raises not found error4089 when namespace is user's personal namespace4090 when user owns the namespace4091 returns requested namespace4092 when user doesn't own the namespace4093 raises not found error4094 #send_git_blob4095 sets Gitlab::Workhorse::DETECT_HEADER header4096 content disposition4097 when blob name is null4098 returns only the disposition4099 when blob name is not null4100 returns disposition with the blob name4101StuckImportJobsWorker4102 with scheduled import_status4103 behaves like project import job detection4104 when the job has completed4105 when the import status was already updated4106 does not mark the project as failed4107 when the import status was not updated4108 marks the project as failed4109 when the job is still in Sidekiq4110 does not mark the project as failed4111 with started import_status4112 behaves like project import job detection4113 when the job has completed4114 when the import status was already updated4115 does not mark the project as failed4116 when the import status was not updated4117 marks the project as failed4118 when the job is still in Sidekiq4119 does not mark the project as failed4120MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches4121 #up4122 when there's no projects needing approval4123== 20190827102026 MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches: migrating 4124-- transaction_open?()4125 -> 0.0000s4126-- index_exists?(:projects, :id, {:name=>"temp_active_projects_with_prot_branches", :where=>"archived = false and pending_delete = false and merge_requests_require_code_owner_approval = true", :algorithm=>:concurrently})4127 -> 0.0180s4128-- execute("SET statement_timeout TO 0")4129 -> 0.0006s4130-- add_index(:projects, :id, {:name=>"temp_active_projects_with_prot_branches", :where=>"archived = false and pending_delete = false and merge_requests_require_code_owner_approval = true", :algorithm=>:concurrently})4131 -> 0.0052s4132-- execute("RESET ALL")4133 -> 0.0006s4134-- transaction_open?()4135 -> 0.0000s4136-- select_one("SELECT current_setting('server_version_num') AS v")4137 -> 0.0008s4138-- indexes(:projects)4139 -> 0.0187s4140-- execute("SET statement_timeout TO 0")4141 -> 0.0006s4142-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"temp_active_projects_with_prot_branches"})4143 -> 0.0023s4144-- execute("RESET ALL")4145 -> 0.0005s4146== 20190827102026 MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches: migrated (0.0571s) 4147 doesn't change any protected branch records4148 when there's a project needing approval4149== 20190827102026 MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches: migrating 4150-- transaction_open?()4151 -> 0.0000s4152-- index_exists?(:projects, :id, {:name=>"temp_active_projects_with_prot_branches", :where=>"archived = false and pending_delete = false and merge_requests_require_code_owner_approval = true", :algorithm=>:concurrently})4153 -> 0.0166s4154-- execute("SET statement_timeout TO 0")4155 -> 0.0006s4156-- add_index(:projects, :id, {:name=>"temp_active_projects_with_prot_branches", :where=>"archived = false and pending_delete = false and merge_requests_require_code_owner_approval = true", :algorithm=>:concurrently})4157 -> 0.0046s4158-- execute("RESET ALL")4159 -> 0.0005s4160-- transaction_open?()4161 -> 0.0000s4162-- select_one("SELECT current_setting('server_version_num') AS v")4163 -> 0.0006s4164-- indexes(:projects)4165 -> 0.0170s4166-- execute("SET statement_timeout TO 0")4167 -> 0.0005s4168-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"temp_active_projects_with_prot_branches"})4169 -> 0.0019s4170-- execute("RESET ALL")4171 -> 0.0004s4172== 20190827102026 MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches: migrated (0.0600s) 4173 changes N protected branch records4174Gitlab::Ci::Status::Build::Manual4175 #illustration4176 should include :image, :size, :title, and :content4177 .matches?4178 when build is manual4179 is a correct match4180 when build is not manual4181 does not match4182ShaValidator4183 with empty value4184 does not add any error if value is empty4185 with valid sha4186 does not add any error4187 with invalid sha4188 adds error to the record4189ProjectDeployToken4190 should belong to project required:4191 should belong to deploy_token required:4192 should validate that :deploy_token cannot be empty/falsy4193 should validate that :project cannot be empty/falsy4194 should validate that :deploy_token_id is case-sensitively unique within the scope of :project_id4195PersonalAccessToken4196 .build4197 is a valid personal access token4198 ensures that the token is generated4199 .active?4200 returns false if the personal_access_token is revoked4201 returns false if the personal_access_token is expired4202 returns true if the personal_access_token is not revoked and not expired4203 revoke!4204 revokes the token4205 Redis storage4206 reading encrypted data4207 returns stored data4208 reading unencrypted data4209 returns stored data unmodified4210 after deletion4211 token is removed4212 validations4213 requires at least one scope4214 allows creating a token with API scopes4215 rejects creating a token with unavailable scopes4216 when registry is disabled4217 rejects creating a token with read_registry scope4218 allows revoking a token with read_registry scope4219 when registry is enabled4220 allows creating a token with read_registry scope4221JobArtifactReportEntity4222 #as_json4223 exposes file_type4224 exposes file_format4225 exposes size4226 exposes download path4227Tags::CreateService4228 #execute4229 creates the tag and returns success4230 when target is invalid4231 returns an error4232 when tag already exists4233 returns an error4234 when pre-receive hook fails4235 returns an error4236Gitlab::BranchPushMergeCommitAnalyzer4237 #get_merge_commit4238 returns correct merge commit SHA for each commit4239 when one parent has two children4240 returns correct merge commit SHA for each commit4241 when relevant_commit_ids is provided4242 returns correct merge commit4243LoadedInGroupList4244 .with_selects_for_list4245 includes the preloaded counts for groups4246 with archived projects4247 counts including archived projects when `true` is passed4248 counts only archived projects when `only` is passed4249 #children_count4250 counts groups and projects4251ContainerRepositoriesFinder4252 #execute4253 when container_type is group4254 should contain exactly #<ContainerRepository id: 1, project_id: 1437, name: "test_image_1", created_at: "2019-10-15 08:52:23", updated_at: "2019-10-15 08:52:23"> and #<ContainerRepository id: 2, project_id: 1438, name: "test_repository2", created_at: "2019-10-15 08:52:23", updated_at: "2019-10-15 08:52:23">4255 when container_type is project4256 should contain exactly #<ContainerRepository id: 3, project_id: 1439, name: "test_image_2", created_at: "2019-10-15 08:52:23", updated_at: "2019-10-15 08:52:23">4257 with invalid id4258 raises an error4259Gitlab::Database::Count::ExactCountStrategy4260 #count4261 counts all models4262 returns default value if count times out4263Gitlab::SlashCommands::Presenters::IssueSearch4264 formats the message correct4265 shows a list of results4266ChangeDefaultValueForDsaKeyRestriction4267NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4268NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4269NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4270== 20180531220618 ChangeDefaultValueForDsaKeyRestriction: migrating ===========4271-- change_column(:application_settings, :dsa_key_restriction, :integer, {})4272 -> 0.0028s4273-- execute("UPDATE application_settings SET dsa_key_restriction = -1")4274 -> 0.0014s4275== 20180531220618 ChangeDefaultValueForDsaKeyRestriction: migrated (0.0511s) ==4276 changes the default value for dsa_key_restriction4277== 20180531220618 ChangeDefaultValueForDsaKeyRestriction: migrating ===========4278-- change_column(:application_settings, :dsa_key_restriction, :integer, {})4279 -> 0.0024s4280-- execute("UPDATE application_settings SET dsa_key_restriction = -1")4281 -> 0.0014s4282== 20180531220618 ChangeDefaultValueForDsaKeyRestriction: migrated (0.0506s) ==4283 changes the existing setting4284NOTICE: table "design_management_designs" does not exist, skipping4285NOTICE: table "design_management_designs_versions" does not exist, skipping4286NOTICE: table "design_management_versions" does not exist, skipping4287NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4288NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4289NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4290NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4291Subscription4292 relationships4293 should belong to project required:4294 should belong to subscribable required:4295 should belong to user required:4296 validations4297 should validate that :subscribable cannot be empty/falsy4298 should validate that :user cannot be empty/falsy4299 validates uniqueness of project_id scoped to subscribable_id, subscribable_type, and user_id4300UpdateMergeRequestsWorker4301 #perform4302 executes MergeRequests::RefreshService with expected values4303 when slow4304 logs debug info4305CleanupBuildStageMigration4306NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4307NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4308NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4309 when there are pending background migrations4310== 20180420010616 CleanupBuildStageMigration: migrating =======================4311-- execute("SET statement_timeout TO 0")4312 -> 0.0007s4313-- indexes(:ci_builds)4314 -> 0.0129s4315-- transaction_open?()4316 -> 0.0000s4317-- index_exists?(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4318 -> 0.0127s4319-- execute("SET statement_timeout TO 0")4320 -> 0.0006s4321-- add_index(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4322 -> 0.0036s4323-- execute("RESET ALL")4324 -> 0.0005s4325-- transaction_open?()4326 -> 0.0000s4327-- select_one("SELECT current_setting('server_version_num') AS v")4328 -> 0.0007s4329-- indexes(:ci_builds)4330 -> 0.0129s4331-- execute("SET statement_timeout TO 0")4332 -> 0.0006s4333-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"tmp_id_stage_partial_null_index"})4334 -> 0.0014s4335-- execute("RESET ALL")4336 -> 0.0005s4337-- execute("RESET ALL")4338 -> 0.0005s4339== 20180420010616 CleanupBuildStageMigration: migrated (0.0639s) ==============4340 processes pending jobs synchronously4341 when there are no background migrations pending4342== 20180420010616 CleanupBuildStageMigration: migrating =======================4343-- execute("SET statement_timeout TO 0")4344 -> 0.0006s4345-- indexes(:ci_builds)4346 -> 0.0136s4347-- transaction_open?()4348 -> 0.0000s4349-- index_exists?(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4350 -> 0.0132s4351-- execute("SET statement_timeout TO 0")4352 -> 0.0006s4353-- add_index(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4354 -> 0.0038s4355-- execute("RESET ALL")4356 -> 0.0005s4357-- transaction_open?()4358 -> 0.0000s4359-- select_one("SELECT current_setting('server_version_num') AS v")4360 -> 0.0006s4361-- indexes(:ci_builds)4362 -> 0.0137s4363-- execute("SET statement_timeout TO 0")4364 -> 0.0006s4365-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"tmp_id_stage_partial_null_index"})4366 -> 0.0014s4367-- execute("RESET ALL")4368 -> 0.0005s4369-- execute("RESET ALL")4370 -> 0.0004s4371== 20180420010616 CleanupBuildStageMigration: migrated (0.0644s) ==============4372 does nothing4373 when there are still unmigrated builds present4374== 20180420010616 CleanupBuildStageMigration: migrating =======================4375-- execute("SET statement_timeout TO 0")4376 -> 0.0005s4377-- indexes(:ci_builds)4378 -> 0.0123s4379-- transaction_open?()4380 -> 0.0000s4381-- index_exists?(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4382 -> 0.0122s4383-- execute("SET statement_timeout TO 0")4384 -> 0.0006s4385-- add_index(:ci_builds, :id, {:where=>"stage_id IS NULL", :name=>"tmp_id_stage_partial_null_index", :algorithm=>:concurrently})4386 -> 0.0040s4387-- execute("RESET ALL")4388 -> 0.0005s4389DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block (2 levels) in up at /builds/gitlab-org/gitlab/db/migrate/20180420010616_cleanup_build_stage_migration.rb:43)4390-- transaction_open?()4391 -> 0.0000s4392-- select_one("SELECT current_setting('server_version_num') AS v")4393 -> 0.0007s4394-- indexes(:ci_builds)4395 -> 0.0130s4396-- execute("SET statement_timeout TO 0")4397 -> 0.0006s4398-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"tmp_id_stage_partial_null_index"})4399 -> 0.0016s4400-- execute("RESET ALL")4401 -> 0.0005s4402-- execute("RESET ALL")4403 -> 0.0004s4404== 20180420010616 CleanupBuildStageMigration: migrated (0.1052s) ==============4405 migrates stages sequentially in batches4406NOTICE: table "design_management_designs" does not exist, skipping4407NOTICE: table "design_management_designs_versions" does not exist, skipping4408NOTICE: table "design_management_versions" does not exist, skipping4409NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4410NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4411NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4412NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4413ProtectedTags::UpdateService4414 #execute4415 updates a protected tag4416 without admin_project permissions4417 raises error4418DeleteBranchService4419 #execute4420 when user has access to push to repository4421 behaves like a deleted branch4422 removes the branch4423 when user does not have access to push to repository4424 does not remove branch4425CohortsService4426 #execute4427DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "CAST(DATE_TRUNC('month', created_at) AS date) ASC", "CAST(DATE_TRUNC('month', last_activity_on) AS date) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from counts_by_month at /builds/gitlab-org/gitlab/app/services/cohorts_service.rb:91)4428 returns a list of user cohorts4429StorageHelper4430 #storage_counter4431 formats bytes to one decimal place4432 does not add decimals for sizes < 1 MB4433 does not add decimals for zeroes4434 uses commas as thousands separator4435 #storage_counters_details4436 works on ProjectStatistics4437 works on Namespace.with_statistics4438PagesDomainSslRenewalWorker4439 #perform4440 delegates to ObtainLetsEncryptCertificateService4441 when domain was deleted4442 does nothing4443 when domain is disabled4444 does nothing4445ObjectPool::DestroyWorker4446 #perform4447 when no pool is in the database4448 doesn't raise an error4449 when a pool is present4450 requests Gitaly to remove the object pool4451 destroys the pool4452Gitlab::DatabaseImporters::CommonMetrics::Importer4453 does import common_metrics.yml4454 has the same amount of groups4455 has the same amount of panels4456 has the same amount of metrics4457 does not have duplicate IDs4458 imports all IDs4459 does import common_metrics.yml4460 when executed from outside of the Rails.root4461 does import properly all fields4462 if ID is missing4463 raises exception4464 for existing common metric with different ID4465 behaves like stores metric4466 with all data4467 and existing metric is not changed4468 when metric with ID exists4469 behaves like stores metric4470 with all data4471 and existing metric is changed4472StripAttribute4473 .strip_attributes4474 should respond to #strip_attributes4475 should include :title4476 #strip_attributes4477 should eq "8.3"4478Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart4479 needs connection with an issue via merge_requests_closing_issues table4480 behaves like cycle analytics event4481 should be a kind of String4482 should be a kind of Symbol4483 should include ApplicationRecord(abstract)4484 should respond to #timestamp_projection4485 #apply_query_customization4486 expects an ActiveRecord::Relation object as argument and returns a modified version of it4487ScheduleFillValidTimeForPagesDomainCertificates4488NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4489NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4490NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4491== 20190524073827 ScheduleFillValidTimeForPagesDomainCertificates: migrating ==4492== 20190524073827 ScheduleFillValidTimeForPagesDomainCertificates: migrated (0.0211s) 4493 correctly schedules background migrations4494== 20190524073827 ScheduleFillValidTimeForPagesDomainCertificates: migrating ==4495== 20190524073827 ScheduleFillValidTimeForPagesDomainCertificates: migrated (0.0405s) 4496 sets certificate valid_not_before/not_after4497NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4498NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4499NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4500NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4501RescheduleBuildsStagesMigration4502NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4503NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4504NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4505NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping4506== 20180405101928 RescheduleBuildsStagesMigration: migrating ==================4507-- execute("SET statement_timeout TO 0")4508 -> 0.0006s4509-- execute("RESET ALL")4510 -> 0.0007s4511== 20180405101928 RescheduleBuildsStagesMigration: migrated (0.0661s) =========4512 schedules delayed background migrations in batches in bulk4513NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping4514NOTICE: table "design_management_designs" does not exist, skipping4515NOTICE: table "design_management_designs_versions" does not exist, skipping4516NOTICE: table "design_management_versions" does not exist, skipping4517NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4518NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4519NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4520NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4521Gitlab::Ci::Status::Build::Created4522 #illustration4523 should include :image, :size, :title, and :content4524 .matches?4525 when build is created4526 is a correct match4527 when build is not created4528 does not match4529ProjectCiCdSetting4530 .available?4531 returns true4532 memoizes the schema version4533 validations4534 validates default_git_depth is between 0 and 1000 or nil4535 #default_git_depth4536 sets default value for new records4537 does not set default value if present4538 when feature flag :ci_set_project_default_git_depth is disabled4539 does not set default value for new records4540Constraints::GroupUrlConstrainer4541 #matches?4542 valid request4543 should be truthy4544 valid request for nested group4545 should be truthy4546 valid request for nested group with reserved top level name4547 should be truthy4548 invalid request4549 should be falsey4550 when the request matches a redirect route4551 for a root group4552 and is a GET request4553 should be truthy4554 and is NOT a GET request4555 should be falsey4556 for a nested group4557 should be truthy4558Gitlab::BackgroundMigration::MigrateStageIndex4559NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4560NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4561NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4562 correctly migrates stages indices4563NOTICE: table "design_management_designs" does not exist, skipping4564NOTICE: table "design_management_designs_versions" does not exist, skipping4565NOTICE: table "design_management_versions" does not exist, skipping4566NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4567NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4568NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4569NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4570BuildCoverageWorker4571 #perform4572 when build exists4573 updates code coverage4574 when build does not exist4575 does not raise exception4576ProjectServiceWorker#perform4577 executes service with given data4578 logs error messages4579Banzai::CommitRenderer4580 .render4581 renders a commit description and title4582Gitlab::Tracking4583 .snowplow_options4584 returns useful client options4585 enables features using feature flags4586 tracking events4587 .event4588 can track events4589 behaves like events not tracked4590 does not track events4591 .self_describing_event4592 can track self describing events4593 behaves like events not tracked4594 does not track events4595SystemNotes::ZoomService4596 #zoom_link_added4597 sets the zoom link added note text4598 behaves like a system note4599 has the correct attributes4600 #zoom_link_removed4601 sets the zoom link removed note text4602 behaves like a system note4603 has the correct attributes4604BuildHooksWorker4605 #perform4606 when build exists4607 calls build hooks4608 when build does not exist4609 does not raise exception4610Gitlab::UsageDataCounters::CycleAnalyticsCounter4611 behaves like a redis usage counter4612 .count(views)4613 increments the CycleAnalytics views counter by 14614 .read(views)4615 returns the total number of views events4616 behaves like a redis usage counter with totals4617 totals4618 can report all totals4619 unknown events4620 cannot increment4621 cannot read4622ClusterSerializer4623 #represent_status4624 when provider type is gcp4625 serializes only status4626 when provider type is user4627 serializes only status4628LfsObjectsProject4629 associations4630 should belong to project required:4631 should belong to lfs_object required:4632 validation4633 should validate that :lfs_object_id cannot be empty/falsy4634 should validate that :project_id cannot be empty/falsy4635 validates object id4636 #update_project_statistics4637 updates project statistics when the object is added4638 updates project statistics when the object is removed4639ChatMessage::PipelineMessage4640 when the fancy_pipeline_slack_notifications feature flag is disabled4641 returns an empty pretext4642 returns the pipeline summary in the activity's title4643 returns a link to the project in the activity's subtitle4644 returns the build duration in the activity's text property4645 returns the user's avatar image URL in the activity's image property4646 returns the pipeline summary as the attachment's text property4647 returns 'good' as the attachment's color property4648 when the pipeline failed4649 returns the summary with a 'failed' status4650 when no user is provided because the pipeline was triggered by the API4651 returns the summary with 'API' as the username4652 when the user does not have an avatar4653 returns an empty string in the activity's image property4654 when the pipeline failed4655 returns 'danger' as the attachment's color property4656 when rendering markdown4657 returns the pipeline summary as the attachments in markdown format4658 when the fancy_pipeline_slack_notifications feature flag is enabled4659 returns an empty pretext4660 returns the pipeline summary in the activity's title4661 returns a link to the project in the activity's subtitle4662 returns the build duration in the activity's text property4663 returns the user's avatar image URL in the activity's image property4664 returns the pipeline summary as the attachment's fallback property4665 returns 'good' as the attachment's color property4666 returns the committer's name and username as the attachment's author_name property4667 returns the committer's avatar URL as the attachment's author_icon property4668 returns the committer's GitLab profile URL as the attachment's author_link property4669 returns the pipeline ID, status, and duration as the attachment's title property4670 returns the pipeline URL as the attachment's title_link property4671 returns two attachment fields4672 returns the commit message as the attachment's second field property4673 returns the ref name and link as the attachment's second field property4674 returns the stage name and link as the attachment's second field property4675 returns the project's name as the attachment's footer property4676 returns the project's avatar URL as the attachment's footer_icon property4677 returns the pipeline's timestamp as the attachment's ts property4678 when the pipeline failed4679 returns the summary with a 'failed' status4680 when the pipeline passed with warnings4681 returns the summary with a 'passed with warnings' status4682 when no user is provided because the pipeline was triggered by the API4683 returns the summary with 'API' as the username4684 when the user does not have an avatar4685 returns an empty string in the activity's image property4686 when the pipeline failed4687 returns 'danger' as the attachment's color property4688 when the pipeline passed with warnings4689 returns 'warning' as the attachment's color property4690 when no user is provided because the pipeline was triggered by the API4691 returns the committer's name and username as the attachment's author_name property4692 returns nil as the attachment's author_icon property4693 returns nil as the attachment's author_link property4694 when a job in the pipeline fails4695 returns four attachment fields4696 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4697 returns the job name and link as the attachment's fourth field property4698 when lots of jobs across multiple stages fail4699 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4700 returns the job names and links as the attachment's fourth field property4701 when the CI config file contains a YAML error4702 returns three attachment fields4703 returns the YAML error deatils as the attachment's third field property4704 when rendering markdown4705 returns the pipeline summary as the attachments in markdown format4706BroadcastMessage4707 should be valid4708 validations4709 should allow :color to be ‹nil›4710 should allow :color to be ‹"#000"›4711 should allow :color to be ‹"#AABBCC"›4712 should not allow :color to be ‹"000"›4713 should allow :font to be ‹nil›4714 should allow :font to be ‹"#000"›4715 should allow :font to be ‹"#AABBCC"›4716 should not allow :font to be ‹"000"›4717 .current4718 returns message if time match4719 returns multiple messages if time match4720 returns empty list if time not come4721 returns empty list if time has passed4722 caches the output of the query for two weeks4723 does not create new records4724 includes messages that need to be displayed in the future4725 does not clear the cache if only a future message should be displayed4726 #attributes4727 includes message_html field4728 #active?4729 is truthy when started and not ended4730 is falsey when ended4731 is falsey when not started4732 #started?4733 is truthy when starts_at has passed4734 is falsey when starts_at is in the future4735 #ended?4736 is truthy when ends_at has passed4737 is falsey when ends_at is in the future4738 #flush_redis_cache4739 flushes the Redis cache4740BoardSerializer4741 serialization4742 matches issue_sidebar json schema4743Gitlab::Ci::CronParser4744 #next_time_from4745 when cron and cron_timezone are valid4746 when specific time4747 returns exact time4748 behaves like returns time in the future4749 should be > 2019-10-15 08:54:54 +00004750 when specific day of week4751 returns exact day of week4752 behaves like returns time in the future4753 should be > 2019-10-15 08:54:54 +00004754 when slash used4755 returns specific time4756 behaves like returns time in the future4757 should be > 2019-10-15 08:54:54 +00004758 when range used4759 returns specific time4760 behaves like returns time in the future4761 should be > 2019-10-15 08:54:54 +00004762 when cron_timezone is TZInfo format4763 when cron_timezone is US/Pacific4764 behaves like returns time in the future4765 should be > 2019-10-15 08:54:54 +00004766 when PST (Pacific Standard Time)4767 converts time in server time zone4768 when PDT (Pacific Daylight Time)4769 converts time in server time zone4770 when cron_timezone is ActiveSupport::TimeZone format4771 when cron_timezone is Berlin4772 behaves like returns time in the future4773 should be > 2019-10-15 08:54:54 +00004774 when CET (Central European Time)4775 converts time in server time zone4776 when CEST (Central European Summer Time)4777 converts time in server time zone4778 when cron_timezone is Eastern Time (US & Canada)4779 behaves like returns time in the future4780 should be > 2019-10-15 08:54:54 +00004781 when EST (Eastern Standard Time)4782 converts time in server time zone4783 when EDT (Eastern Daylight Time)4784 converts time in server time zone4785 when cron and cron_timezone are invalid4786 should be nil4787 when cron syntax is quoted4788 should be nil4789 when cron syntax is rufus-scheduler syntax4790 should be nil4791 when cron is scheduled to a non existent day4792 should be nil4793 #cron_valid?4794 when cron is valid4795 should eq true4796 when cron is invalid4797 should eq false4798 when cron syntax is quoted4799 should eq false4800 #cron_timezone_valid?4801 when cron is valid4802 should eq true4803 when cron is invalid4804 should eq false4805 when cron_timezone is ActiveSupport::TimeZone format4806 should eq true4807Gitlab::Utils::SanitizeNodeLink4808 with the scheme: javascript:4809 #remove_unsafe_links4810 <a> tags4811 removes the unsafe link4812 <img> tags4813 removes the unsafe link4814 <video> tags4815 removes the unsafe link4816 <audio> tags4817 removes the unsafe link4818 #safe_protocol?4819 returns false4820 with the scheme: JaVaScRiPt:4821 #remove_unsafe_links4822 <a> tags4823 removes the unsafe link4824 <img> tags4825 removes the unsafe link4826 <video> tags4827 removes the unsafe link4828 <audio> tags4829 removes the unsafe link4830 #safe_protocol?4831 returns false4832 with the scheme: javascript:4833 #remove_unsafe_links4834 <a> tags4835 removes the unsafe link4836 <img> tags4837 removes the unsafe link4838 <video> tags4839 removes the unsafe link4840 <audio> tags4841 removes the unsafe link4842 #safe_protocol?4843 returns false4844 with the scheme: javascript :4845 #remove_unsafe_links4846 <a> tags4847 removes the unsafe link4848 <img> tags4849 removes the unsafe link4850 <video> tags4851 removes the unsafe link4852 <audio> tags4853 removes the unsafe link4854 #safe_protocol?4855 returns false4856 with the scheme: javascript:4857 #remove_unsafe_links4858 <a> tags4859 removes the unsafe link4860 <img> tags4861 removes the unsafe link4862 <video> tags4863 removes the unsafe link4864 <audio> tags4865 removes the unsafe link4866 #safe_protocol?4867 returns false4868 with the scheme: javascript :4869 #remove_unsafe_links4870 <a> tags4871 removes the unsafe link4872 <img> tags4873 removes the unsafe link4874 <video> tags4875 removes the unsafe link4876 <audio> tags4877 removes the unsafe link4878 #safe_protocol?4879 returns false4880 with the scheme: :javascript:4881 #remove_unsafe_links4882 <a> tags4883 removes the unsafe link4884 <img> tags4885 removes the unsafe link4886 <video> tags4887 removes the unsafe link4888 <audio> tags4889 removes the unsafe link4890 #safe_protocol?4891 returns false4892 with the scheme: javascript:4893 #remove_unsafe_links4894 <a> tags4895 removes the unsafe link4896 <img> tags4897 removes the unsafe link4898 <video> tags4899 removes the unsafe link4900 <audio> tags4901 removes the unsafe link4902 #safe_protocol?4903 returns false4904 with the scheme: javascript:4905 #remove_unsafe_links4906 <a> tags4907 removes the unsafe link4908 <img> tags4909 removes the unsafe link4910 <video> tags4911 removes the unsafe link4912 <audio> tags4913 removes the unsafe link4914 #safe_protocol?4915 returns false4916 with the scheme:  javascript:4917 #remove_unsafe_links4918 <a> tags4919 removes the unsafe link4920 <img> tags4921 removes the unsafe link4922 <video> tags4923 removes the unsafe link4924 <audio> tags4925 removes the unsafe link4926 #safe_protocol?4927 returns false4928Gitlab::Ci::Config::External::File::Remote4929 #matching?4930 when a remote is specified4931 returns true4932 with a missing remote4933 returns false4934 with a missing remote key4935 returns false4936 #valid?4937 when is a valid remote url4938 returns true4939 with an irregular url4940 returns false4941 with a timeout4942 is falsy4943 when is not a yaml file4944 is falsy4945 with an internal url4946 is falsy4947 #content4948 with a valid remote file4949 returns the content of the file4950 with a timeout4951 is falsy4952 with an invalid remote url4953 is nil4954 with an internal url4955 is nil4956 #error_message4957 when remote file location is not valid4958 returns an error message describing invalid address4959 when timeout error has been raised4960 returns error message about a timeout4961 when HTTP error has been raised4962 returns error message about a HTTP error4963 when response has 404 status4964 returns error message about a timeout4965 when the URL is blocked4966 includes details about blocked URL4967 #expand_context4968 drops all parameters4969Banzai::Filter::SanitizationFilter4970 default whitelist4971 sanitizes tags that are not whitelisted4972 sanitizes tag attributes4973 sanitizes javascript in attributes4974 sanitizes mixed-cased javascript in attributes4975 allows whitelisted HTML tags from the user4976 sanitizes `class` attribute on any element4977 sanitizes `id` attribute on any element4978 custom whitelist4979 customizes the whitelist only once4980 customizes the whitelist only once for different instances4981 sanitizes `class` attribute from all elements4982 sanitizes `class` attribute from non-highlight spans4983 allows `text-align` property in `style` attribute on table elements4984 disallows other properties in `style` attribute on table elements4985 disallows `text-align` property in `style` attribute on other elements4986 allows `span` elements4987 allows `abbr` elements4988 disallows the `name` attribute globally, allows on `a`4989 allows `summary` elements4990 allows `details` elements4991 allows `data-math-style` attribute on `code` and `pre` elements4992 removes `rel` attribute from `a` elements4993 disallows protocol-based JS injection: simple, no spaces4994 disallows protocol-based JS injection: simple, spaces before4995 disallows protocol-based JS injection: simple, spaces after4996 disallows protocol-based JS injection: simple, spaces before and after4997 disallows protocol-based JS injection: preceding colon4998 disallows protocol-based JS injection: UTF-8 encoding4999 disallows protocol-based JS injection: long UTF-8 encoding5000 disallows protocol-based JS injection: long UTF-8 encoding without semicolons5001 disallows protocol-based JS injection: hex encoding5002 disallows protocol-based JS injection: long hex encoding5003 disallows protocol-based JS injection: hex encoding without semicolons5004 disallows protocol-based JS injection: null char5005 disallows protocol-based JS injection: invalid URL char5006 disallows protocol-based JS injection: Unicode5007 disallows protocol-based JS injection: spaces and entities5008 disallows protocol whitespace5009 disallows data links5010 disallows vbscript links5011 disallows invalid URIs5012 allows non-standard anchor schemes5013 allows relative links5014 allows the `data-sourcepos` attribute globally5015 footnotes5016 allows correct footnote id property on links5017 allows correct footnote id property on li element5018 removes invalid id for footnote links5019 removes invalid id for footnote li5020 allows footnotes numbered higher than 95021AdminEmailWorker5022 .perform5023 does not attempt to send repository check mail when they are disabled5024 repository_checks enabled5025 checks if repository check mail should be sent5026 does not send mail when there are no failed repos5027 send mail when there is a failed repo5028Grafana::Client5029 #proxy_datasource5030 behaves like calls grafana api5031 calls grafana api5032 behaves like no redirects5033 does not follow redirects5034 behaves like handles exceptions5035 HTTParty::Error5036 should raise Grafana::Client::Error with "Error when connecting to Grafana"5037 Net::OpenTimeout5038 should raise Grafana::Client::Error with "Connection to Grafana timed out"5039 SocketError5040 should raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5041 OpenSSL::SSL::SSLError5042 should raise Grafana::Client::Error with "Grafana returned invalid SSL data"5043 Errno::ECONNREFUSED5044 should raise Grafana::Client::Error with "Connection refused"5045 StandardError5046 should raise Grafana::Client::Error with "Grafana request failed due to StandardError"5047TrackingHelper5048 #tracking_attrs5049 snowplow_enabled: true, environment: "production", result: :with_data5050 returns a hash5051 snowplow_enabled: false, environment: "production", result: :no_data5052 returns a hash5053 snowplow_enabled: true, environment: "development", result: :no_data5054 returns a hash5055 snowplow_enabled: false, environment: "development", result: :no_data5056 returns a hash5057 snowplow_enabled: true, environment: "test", result: :no_data5058 returns a hash5059 snowplow_enabled: false, environment: "test", result: :no_data5060 returns a hash5061Mutations::ResolvesProject5062 uses the ProjectsResolver to resolve projects by path5063ContainerTagEntity5064 exposes required informations5065 when user can manage repositories5066 exposes destroy_path5067 when user cannot manage repositories5068 does not expose destroy_path5069AfterCommitQueue5070 runs after transaction is committed5071TermAgreement5072 validations5073 should validate that :term cannot be empty/falsy5074 should validate that :user cannot be empty/falsy5075 .accepted5076 only includes accepted terms5077Gitlab::Metrics::Subscribers::RailsCache5078 #cache_read5079 increments the cache_read duration5080 with a transaction5081 with hit event5082 increments the cache_read_hit count5083 when super operation is fetch5084 does not increment cache read miss5085 with miss event5086 increments the cache_read_miss count5087 increments the cache_read_miss total5088 when super operation is fetch5089 does not increment cache read miss5090 does not increment cache_read_miss total5091 #cache_write5092 observes write duration5093 #cache_delete5094 observes delete duration5095 #cache_exist?5096 observes the exists duration5097 #cache_fetch_hit5098 without a transaction5099 returns5100 with a transaction5101 increments the cache_read_hit count5102 #cache_generate5103 without a transaction5104 returns5105 with a transaction5106 increments the cache_fetch_miss count5107 increments the cache_read_miss total5108 #observe5109 without a transaction5110 returns5111 with a transaction5112 increments the total and specific cache duration5113 observes cache metric5114 increments the operations total5115AwardEmojisFinder5116 param validation5117 raises an error if `name` is invalid5118 raises an error if `awarded_by` is invalid5119 #execute5120 scopes to the awardable5121 filters by emoji name5122 filters by user5123Banzai::Filter::EmojiFilter5124 replaces supported name emoji5125 replaces supported unicode emoji5126 ignores unsupported emoji5127 correctly encodes the URL5128 correctly encodes unicode to the URL5129 matches at the start of a string5130 unicode matches at the start of a string5131 matches at the end of a string5132 unicode matches at the end of a string5133 matches with adjacent text5134 unicode matches with adjacent text5135 does not match multiple emoji in a row5136 unicode matches multiple emoji in a row5137 mixed matches multiple emoji in a row5138 does not match emoji in a string5139 has a data-name attribute5140 has a data-unicode-version attribute5141 keeps whitespace intact5142 unicode keeps whitespace intact5143RuboCop::Cop::InjectEnterpriseEditionModule5144 flags the use of `prepend_if_ee EE` in the middle of a file5145 flags the use of `prepend_if_ee QA::EE` in the middle of a file5146 does not flag the use of `prepend_if_ee EEFoo` in the middle of a file5147 flags the use of `prepend_if_ee EE::Foo::Bar` in the middle of a file5148 flags the use of `prepend_if_ee(EE::Foo::Bar)` in the middle of a file5149 flags the use of `prepend_if_ee EE::Foo::Bar::Baz` in the middle of a file5150 flags the use of `prepend_if_ee ::EE` in the middle of a file5151 flags the use of `include_if_ee EE` in the middle of a file5152 flags the use of `include_if_ee ::EE` in the middle of a file5153 flags the use of `extend_if_ee EE` in the middle of a file5154 flags the use of `extend_if_ee ::EE` in the middle of a file5155 does not flag prepending of regular modules5156 does not flag including of regular modules5157 does not flag extending using regular modules5158 does not flag the use of `prepend_if_ee EE` on the last line5159 does not flag the use of `include_if_ee EE` on the last line5160 does not flag the use of `extend_if_ee EE` on the last line5161 autocorrects offenses by just disabling the Cop5162 disallows the use of prepend to inject an EE module5163 disallows the use of prepend to inject a QA::EE module5164 disallows the use of extend to inject an EE module5165 disallows the use of include to inject an EE module5166 disallows the use of prepend_if_ee without a String5167 disallows the use of include_if_ee without a String5168 disallows the use of extend_if_ee without a String5169Gitlab::LegacyGithubImport::Client5170 convert OAuth2 client options to symbols5171 does not crash (e.g. Settingslogic::MissingSetting) when verify_ssl config is not present5172 does not raise error when rate limit is disabled5173 when config is missing5174 is still possible to get an Octokit client5175 is not be possible to get an OAuth2 client5176 allow SSL verification to be configurable on API5177 uses supplied value5178 #api_endpoint5179 when provider does not specity an API endpoint5180 uses GitHub root API endpoint5181 when provider specify a custom API endpoint5182 uses the custom API endpoint5183 when given a host5184 builds a endpoint with the given host and the default API version5185 when given an API version5186 does not use the API version without a host5187 when given a host and version5188 builds a endpoint with the given options5189UpdateExternalPullRequestsWorker5190 #perform5191 when ref is a branch5192 runs CreatePipelineService for each pull request matching the source branch and repository5193 when ref is not a branch5194 does nothing5195Gitlab::VersionInfo5196 >5197 should be > 1.1.05198 should be > 1.0.15199 should be > 1.0.05200 should be > 0.1.05201 should be > 0.0.15202 >=5203 should be >= 2.0.05204 should be >= 1.1.05205 <5206 should be < 0.1.05207 should be < 1.0.05208 should be < 1.0.15209 should be < 1.1.05210 should be < 2.0.05211 <=5212 should be <= 0.0.15213 should be <= 0.1.05214 ==5215 should eq #<Gitlab::VersionInfo:0x00005651859106b8 @major=0, @minor=0, @patch=1>5216 should eq #<Gitlab::VersionInfo:0x0000565185928178 @major=0, @minor=1, @patch=0>5217 should eq #<Gitlab::VersionInfo:0x0000565185957798 @major=1, @minor=0, @patch=0>5218 !=5219 should not eq #<Gitlab::VersionInfo:0x000056518596acd0 @major=0, @minor=1, @patch=0>5220 unknown5221 should not equal #<Gitlab::VersionInfo:0x0000565185992fc8 @major=0, @minor=0, @patch=1>5222 should not equal #<Gitlab::VersionInfo:0x00005651859b03c0 @major=0, @minor=0, @patch=0>5223 should raise ArgumentError5224 should raise ArgumentError5225 parse5226 should eq #<Gitlab::VersionInfo:0x0000565185a79b80 @major=1, @minor=0, @patch=0>5227 should eq #<Gitlab::VersionInfo:0x0000565185ac6020 @major=1, @minor=0, @patch=0>5228 should eq #<Gitlab::VersionInfo:0x0000565185b82c98 @major=1, @minor=0, @patch=0>5229 should eq #<Gitlab::VersionInfo:0x0000565185bacb38 @major=1, @minor=0, @patch=0>5230 should eq #<Gitlab::VersionInfo:0x0000565185bcb0b0 @major=1, @minor=0, @patch=0>5231 should eq #<Gitlab::VersionInfo:0x0000565185be4150 @major=1, @minor=0, @patch=0>5232 should not be valid5233 to_s5234 should eq "1.0.0"5235 should eq "Unknown"5236IdentityProviderPolicy5237 #rules5238 should be allowed :link5239 should be allowed :unlink5240 when user is anonymous5241 should not be allowed :link5242 should not be allowed :unlink5243 when provider is saml5244 should be allowed :link5245 should not be allowed :unlink5246 when provider is cas35247 should be allowed :link5248 should not be allowed :unlink5249ProjectMetricsSetting5250 Associations5251 should belong to project required:5252 Validations5253 when external_dashboard_url is over 255 chars5254 fails validation5255 with unsafe url5256 should be invalid5257 non ascii chars in external_dashboard_url5258 should be invalid5259 internal url in external_dashboard_url5260 should be valid5261 external_dashboard_url is blank5262 should be invalid5263ConversationalDevelopmentIndex::Metric5264 #percentage_score5265 returns stored percentage score5266BroadcastMessagesHelper5267 broadcast_message5268 returns nil when no current message5269 includes the current message5270 includes custom style5271 broadcast_message_style5272 defaults to no style5273 allows custom style5274 broadcast_message_status5275 returns Active5276 returns Expired5277 returns Pending5278AuthorizedProjectsWorker5279 #perform5280 refreshes user's authorized projects5281 when the user is not found5282 does nothing5283BitbucketServer::Representation::Activity5284 regular comment5285 should be truthy5286 should be falsey5287 should be a kind of BitbucketServer::Representation::Comment5288 should be a kind of Time5289 inline comment5290 should be truthy5291 should be truthy5292 should be a kind of BitbucketServer::Representation::PullRequestComment5293 should be a kind of Time5294 merge event5295 should be falsey5296 should be falsey5297 should eq "root"5298 should eq "test.user@example.com"5299 should be a kind of Time5300 should be a kind of Time5301 should eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"5302Gitlab::Metrics::Transaction5303 #duration5304 returns the duration of a transaction in seconds5305 #allocated_memory5306 returns the allocated memory in bytes5307 #run5308 yields the supplied block5309 stores the transaction in the current thread5310 removes the transaction from the current thread upon completion5311 #add_metric5312 adds a metric to the transaction5313 with sensitive tags5314 behaves like tag filter5315 filters potentially sensitive tags5316 #method_call_for5317 returns a MethodCall5318 #increment5319 increments a counter5320 #set5321 sets a value5322 #finish5323 tracks the transaction details and submits them to Sidekiq5324 #track_self5325 adds a metric for the transaction itself5326 #submit5327 submits the metrics to Sidekiq5328 adds the action as a tag for every metric5329 does not add an action tag for events5330 #add_event5331 adds a metric5332 does not prefix the metric's series name5333 tracks a counter for every event5334 tracks the event name5335 allows tracking of custom tags5336 with sensitive tags5337 behaves like tag filter5338 filters potentially sensitive tags5339Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches5340 .build5341 with non-evaluable operands5342 creates a new instance of the token5343 with evaluable operands5344 creates a new instance of the token5345 .type5346 is an operator5347 .precedence5348 has a precedence5349 #evaluate5350 when left and right do not match5351 should eq true5352 when left and right match5353 should eq false5354 when left is nil5355 should eq true5356 when right is nil5357 should eq true5358 when left and right are nil5359 should eq true5360 when left is an empty string5361 should eq true5362 when left and right are empty strings5363 should eq false5364 when left is a multiline string and matches right5365 should eq false5366 when left is a multiline string and does not match right5367 should eq true5368 when a matching pattern uses regex flags5369 should eq false5370 when a non-matching pattern uses regex flags5371 should eq true5372Gitlab::Diff::Parser5373 #parse5374 should eq 305375 lines5376 first line5377 should eq "match"5378 should eq 65379 should eq 65380 should eq "@@ -6,12 +6,18 @@ module Popen"5381 removal line5382 should eq "old"5383 should eq 145384 should eq 135385 should eq "- options = { chdir: path }"5386 addition line5387 should eq "new"5388 should eq 155389 should eq 185390 should eq "+ options = {"5391 unchanged line5392 should eq nil5393 should eq 245394 should eq 315395 should eq " @cmd_output << stderr.read"5396 \ No newline at end of file5397 parses nonewline in one file correctly5398 parses nonewline in two files correctly5399 when lines is empty5400 should eq []5401 should eq []5402 tolerates special diff markers in a content5403 counts lines correctly5404Gitlab::Git::Conflict::Parser5405 .parse5406 when the file has valid conflicts5407 sets our lines as new lines5408 sets their lines as old lines5409 sets non-conflicted lines as both5410 sets consecutive line numbers for line_obj_index, line_old, and line_new5411 when the file contents include conflict delimiters5412 raises MissingEndDelimiter when there is no end delimiter at the end5413 when there is a non-start delimiter first5414 raises UnexpectedDelimiter when there is a middle delimiter first5415 raises UnexpectedDelimiter when there is an end delimiter first5416 does not raise when there is an end delimiter for a different path first5417 when a start delimiter is followed by a non-middle delimiter5418 raises UnexpectedDelimiter when it is followed by an end delimiter5419 raises UnexpectedDelimiter when it is followed by another start delimiter5420 does not raise when it is followed by a start delimiter for a different path5421 when a middle delimiter is followed by a non-end delimiter5422 raises UnexpectedDelimiter when it is followed by another middle delimiter5423 raises UnexpectedDelimiter when it is followed by a start delimiter5424 does not raise when it is followed by a start delimiter for another path5425 other file types5426 raises UnmergeableFile when lines is blank, indicating a binary file5427 raises UnmergeableFile when the file is over 200 KB5428 when the file contains UTF-8 characters5429 does not raise5430Gitlab::UntrustedRegexp::RubySyntax5431 .matches_syntax?5432 returns true if regexp is valid5433 returns true if regexp is invalid, but resembles regexp5434 .valid?5435 returns true if regexp is valid5436 returns false if regexp is invalid5437 .fabricate5438 when regexp is valid5439 fabricates regexp without flags5440 when regexp is empty5441 fabricates regexp correctly5442 when regexp is a raw pattern5443 returns error5444 .fabricate!5445 safe regexp is used5446 when regexp is using /regexp/ scheme with flags5447 fabricates regexp with a single flag5448 fabricates regexp with multiple flags5449 fabricates regexp without flags5450 when unsafe regexp is used5451 when no fallback is enabled5452 raises an exception5453 when fallback is used5454 fabricates regexp with a single flag5455 fabricates regexp with multiple flags5456 fabricates regexp without flags5457 when regexp is a raw pattern5458 raises an error5459RspecFlaky::Config5460 .generate_report?5461 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is not set5462 returns false5463 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is set5464 env_value: "1", result: true5465 returns false5466 env_value: "true", result: true5467 returns false5468 env_value: "foo", result: false5469 returns false5470 env_value: "0", result: false5471 returns false5472 env_value: "false", result: false5473 returns false5474 .suite_flaky_examples_report_path5475 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is not set5476 returns the default path5477 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is set5478 returns the value of the env variable5479 .flaky_examples_report_path5480 when ENV['FLAKY_RSPEC_REPORT_PATH'] is not set5481 returns the default path5482 when ENV['FLAKY_RSPEC_REPORT_PATH'] is set5483 returns the value of the env variable5484 .new_flaky_examples_report_path5485 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is not set5486 returns the default path5487 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is set5488 returns the value of the env variable5489Gitlab::Database::Grant5490 .create_and_execute_trigger5491 returns true when the user can create and execute a trigger5492 returns false when the user can not create and/or execute a trigger5493ApplicationsFinder5494 #execute5495 returns an array of applications5496 returns the application by id5497admin/application_settings/_repository_storage.html.haml5498 when multiple storages are available5499 lists them all5500Gitlab::ImportExport::Config5501 #to_h5502 when using default config5503 ee: true5504 parses default config5505 ee: false5506 parses default config5507 when using custom config5508 when using CE5509 just returns the normalized Hash5510 when using EE5511 just returns the normalized Hash5512Gitlab::HealthChecks::Redis::QueuesCheck5513 #metrics5514 Check is passing5515 should include (have attributes {:name => "redis_queues_ping_success", :value => 1})5516 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})5517 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5518 Check is misbehaving5519 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})5520 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})5521 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5522 Check is timeouting5523 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})5524 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 1})5525 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5526 #readiness5527 Check returns ok5528 should have attributes {:success => true}5529 Check is misbehaving5530 should have attributes {:message => "unexpected Queues check result: error!", :success => false}5531 Check is timeouting5532 should have attributes {:message => "Queues check timed out", :success => false}5533 Check is raising an unhandled exception5534 should have attributes {:message => "unexpected Queues check result: unexpected error", :success => false}5535Gitlab::Ci::Build::Artifacts::Metadata5536 metadata file exists5537 #find_entries! empty string5538 matches correct paths5539 matches metadata for every path5540 return Hashes for each metadata5541 #find_entries! other_artifacts_0.1.2/5542 matches correct paths5543 #find_entries! other_artifacts_0.1.2/another-subdirectory/5544 matches correct paths5545 #find_entries! recursively for other_artifacts_0.1.2/5546 matches correct paths5547 #to_entry5548 should be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5549 #full_version5550 should eq "GitLab Build Artifacts Metadata 0.0.1"5551 #version5552 should eq "0.0.1"5553 #errors5554 should eq {}5555 metadata file does not exist5556 #find_entries!5557 raises error5558 metadata file is invalid5559 #find_entries!5560 raises error5561 generated metadata5562 #find_entries!5563 reads expected number of entries5564Gitlab::PollingInterval5565 .set_header5566 when polling is disabled5567 sets value to -15568 when polling is enabled5569 applies modifier to base interval5570RuboCop::Cop::Migration::AddTimestamps5571 in migration5572 registers an offense when the "add_timestamps" method is used5573 does not register an offense when the "add_timestamps" method is not used5574 does not register an offense when the "add_timestamps_with_timezone" method is used5575 outside of migration5576 registers no offense5577Gitlab::Git::Util5578 #count_lines5579 counts 0 lines in ""5580 counts 1 lines in "foo"5581 counts 1 lines in "foo\n"5582 counts 2 lines in "foo\n\n"5583Gitlab::Email::Hook::DeliveryMetricsObserver5584 when email has been delivered5585 increments both email delivery metrics5586 when email has not been delivered due to an error5587 increments only delivery attempt metric5588Gitlab::Ci::Reports::TestReportsComparer5589 #suite_comparers5590 when head and base reports include two test suites5591 returns test suite comparers with specified values5592 #total_status5593 when all tests cases are success in head suites5594 returns the total status5595 when there is a failed test case in head suites5596 returns the total status in head suite5597 #total_count5598 returns the total test counts in head suites5599 #resolved_count5600 when there is a resolved test case in head suites5601 returns the correct count5602 when there are no resolved test cases in head suites5603 returns the correct count5604 #failed_count5605 when there is a failed test case in head suites5606 returns the correct count5607 when there are no failed test cases in head suites5608 returns the correct count5609QualifiedDomainArrayValidator5610 validations5611 returns error when attribute is nil5612 allows when domain is valid5613 returns error when domain contains unicode5614 returns error when entry is larger than 255 chars5615 returns error when entry contains HTML tags5616 behaves like can be blank5617 allows when attribute is blank5618 when allow_nil is set to true5619 behaves like can be nil5620 allows when attribute is nil5621 behaves like can be blank5622 allows when attribute is blank5623 when allow_blank is set to true5624 behaves like can be nil5625 allows when attribute is nil5626 behaves like can be blank5627 allows when attribute is blank5628SystemCheck::App::GitUserDefaultSSHConfigCheck5629 only whitelists safe files5630 #skip?5631 user_exists: true, home_dir_exists: true5632 should eq false5633 user_exists: true, home_dir_exists: false5634 should eq true5635 user_exists: false, home_dir_exists: true5636 should eq true5637 user_exists: false, home_dir_exists: false5638 should eq true5639 #check?5640 fails if a forbidden file exists5641 succeeds if the SSH directory doesn't exist5642 succeeds if all the whitelisted files exist5643ActionMailer hooks5644 smime signature interceptor5645 is disabled by default5646 interceptor testbed5647 email_enabled: false, email_smime_enabled: false, smime_interceptor_enabled: false5648 is enabled depending on settings5649 email_enabled: false, email_smime_enabled: true, smime_interceptor_enabled: false5650 is enabled depending on settings5651 email_enabled: true, email_smime_enabled: false, smime_interceptor_enabled: false5652 is enabled depending on settings5653 email_enabled: true, email_smime_enabled: true, smime_interceptor_enabled: true5654 is enabled depending on settings5655Banzai::Filter::ImageLinkFilter5656 wraps the image with a link to the image src5657 does not wrap a duplicate link5658 works with external images5659 works with inline images5660 keep the data-canonical-src5661GitlabDanger5662 .local_warning_message5663 returns an informational message with rules that can run5664 .success_message5665 returns an informational success message5666 #rule_names5667 when running locally5668 returns local only rules5669 when running under CI5670 returns all rules5671 #html_link5672 when running locally5673 returns the same string5674 when running under CI5675 returns a HTML link formatted version of the string5676 #ci?5677 when gitlab_danger_helper is not available5678 returns false5679 when gitlab_danger_helper is available5680 returns true5681ActiveRecord::Schema5682 > schema version equals last migration timestamp5683 > schema version should equal the latest migration timestamp stored in schema_migrations table5684ExploreHelper5685 #explore_nav_links5686 has all the expected links by default5687BlameHelper5688 #get_age_map_start_date5689 returns the earliest date from a blame group5690 returns the earliest date from a project5691 #age_map_class5692 returns blame-commit-age-9 when oldest5693 returns blame-commit-age-0 class when newest5694 when called on the same day as project creation5695 returns blame-commit-age-0 class5696Gitlab::Chat::Responder::Base5697 #pipeline5698 returns the pipeline5699 #project5700 returns the project5701 #success5702 raises NotImplementedError5703 #failure5704 raises NotImplementedError5705 #send_response5706 raises NotImplementedError5707 #scheduled_output5708 raises NotImplementedError5709Resolvers::BaseResolver5710 .single5711 returns a subclass from the resolver5712 returns the same subclass every time5713 returns a resolver that gives the first result from the original resolver5714 when field is a connection5715 increases complexity based on arguments5716 does not increase complexity when filtering by iids5717RuboCop::Cop::Migration::ReversibleAddColumnWithDefault5718 in migration5719 registers an offense when add_column_with_default is used inside a change method5720 registers no offense when add_column_with_default is used inside an up method5721 outside of migration5722 registers no offense5723Gitlab::Ci::Config::Entry::Variables5724 validations5725 when entry config value is correct5726 #value5727 returns hash with key value strings5728 with numeric keys and values in the config5729 converts numeric key and numeric value into strings5730 #errors5731 does not append errors5732 #valid?5733 is valid5734 when entry value is not correct5735 #errors5736 saves errors5737 #valid?5738 is not valid5739OmniAuth::Strategies::SAML5740 POST /users/auth/saml5741I, [2019-10-15T08:55:25.476042 #200] INFO -- omniauth: (saml) Request phase initiated.5742 redirects to the provider login page5743I, [2019-10-15T08:55:25.662292 #200] INFO -- omniauth: (saml) Request phase initiated.5744 stores request ID during request phase5745Gitlab::Metrics::Subscribers::ActiveRecord5746 #sql5747 without a current transaction5748 simply returns5749 with a current transaction5750 observes sql_duration metric5751 increments the :sql_duration value5752 events are internal to Rails or irrelevant5753 skips schema/begin/commit sql commands5754Gitlab::Ci::Status::Scheduled5755 #text5756 should eq "delayed"5757 #label5758 should eq "delayed"5759 #icon5760 should eq "status_scheduled"5761 #favicon5762 should eq "favicon_status_scheduled"5763 #group5764 should eq "scheduled"5765Gitlab::Config::Entry::Simplifiable5766 .strategy5767 defines entry strategies5768 setting strategy by a condition5769 when first strategy should be used5770 attemps to load a first strategy5771 when second strategy should be used5772 attemps to load a second strategy5773 when neither one is a valid strategy5774 instantiates an unknown strategy5775 when a unknown strategy class is not defined5776 raises an error when being initialized5777Gitlab::Git::Conflict::File5778 #lines5779 when the content contains non-UTF-8 characters5780 raises UnsupportedEncoding5781 when the content can be converted to UTF-85782 sets lines to the lines5783 sets the type to text5784 #content5785 when the content contains non-UTF-8 characters5786 raises UnsupportedEncoding5787 when the content can be converted to UTF-85788 returns a valid UTF-8 string5789Feature::Gitaly5790 .enabled?5791 when the gate is closed5792 returns false5793 when the flag defaults to on5794 returns true5795 .server_feature_flags5796 when one flag is disabled5797 should be a kind of Hash5798 should eq {"gitaly-feature-mep-mep"=>"false"}5799TrendingProjectsWorker5800 #perform5801 refreshes the trending projects5802Ci::BridgePresenter5803 presents information about recoverable state5804TokenAuthenticatableStrategies::Base5805 .fabricate5806 when digest stragegy is specified5807 fabricates digest strategy object5808 when encrypted strategy is specified5809 fabricates encrypted strategy object5810 when no strategy is specified5811 fabricates insecure strategy object5812 when incompatible options are provided5813 raises an error5814RuboCop::Cop::IncludeActionViewContext5815 when `ActionView::Context` is included5816 registers an offense5817 autocorrects to the right version5818 when `ActionView::Context` is not included5819 registers no offense5820Gitlab::PhabricatorImport::Conduit::Maniphest5821 #tasks5822 calls the api with the correct params5823 returns a parsed response5824Namespace5825 should eq "Namespace"5826 has the expected fields5827 should require graphql authorizations :read_namespace5828BitbucketServer::Collection5829 #current_page5830 returns 15831 #prev_page5832 returns nil5833 #next_page5834 returns 25835Gitlab::LegacyGithubImport::IssuableFormatter5836 #project_association5837 should raise NotImplementedError5838 #number5839 should eq 425840 #find_condition5841 should eq {:iid=>42}5842Gitlab::FogbugzImport::Client5843 retrieves user_map with one user5844 retrieves user_map with two users5845BlocksJsonSerialization5846 blocks as_json5847 blocks to_json5848Gitlab::Diff::Line5849 .init_from_hash5850 round-trips correctly with to_hash5851 when setting rich text5852 escapes any HTML special characters in the diff chunk header5853Types::Tree::TypeEnum5854 should eq "EntryType"5855 exposes all tree entry types5856Banzai::Querying5857 .css5858 optimizes queries for elements with classes5859NotePermissions5860 has the expected fields5861Gitlab::Diff::InlineDiffMarkdownMarker5862 #mark5863 does not escape html etities and marks the range5864Types::MutationType5865 is expected to have the MergeRequestSetWip5866Knapsack report was generated. Preview:5867{5868 "spec/models/repository_spec.rb": 88.40676140785217,5869 "spec/lib/banzai/filter/external_issue_reference_filter_spec.rb": 60.924564599990845,5870 "spec/models/clusters/applications/prometheus_spec.rb": 44.71795725822449,5871 "spec/models/project_services/jira_service_spec.rb": 28.136816263198853,5872 "spec/policies/project_statistics_policy_spec.rb": 23.3991219997406,5873 "spec/serializers/pipeline_serializer_spec.rb": 24.20854163169861,5874 "spec/services/notes/quick_actions_service_spec.rb": 15.915326833724976,5875 "spec/lib/gitlab/email/handler/create_note_handler_spec.rb": 18.14763879776001,5876 "spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb": 18.23288869857788,5877 "spec/lib/banzai/filter/commit_range_reference_filter_spec.rb": 11.730710744857788,5878 "spec/serializers/build_details_entity_spec.rb": 12.340277671813965,5879 "spec/services/clusters/applications/check_installation_progress_service_spec.rb": 14.018458843231201,5880 "spec/lib/gitlab/tree_summary_spec.rb": 9.963427543640137,5881 "spec/lib/banzai/filter/user_reference_filter_spec.rb": 8.893555879592896,5882 "spec/lib/gitlab/graphql/connections/keyset_connection_spec.rb": 8.488918542861938,5883 "spec/lib/gitlab/gpg_spec.rb": 9.158385992050171,5884 "spec/models/concerns/avatarable_spec.rb": 9.04678988456726,5885 "spec/lib/gitlab/email/message/repository_push_spec.rb": 6.306819438934326,5886 "spec/helpers/events_helper_spec.rb": 6.206310272216797,5887 "spec/helpers/merge_requests_helper_spec.rb": 2.239453077316284,5888 "spec/helpers/tree_helper_spec.rb": 2.6445906162261963,5889 "spec/models/deployment_metrics_spec.rb": 6.362878084182739,5890 "spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb": 4.868586301803589,5891 "spec/lib/banzai/reference_parser/base_parser_spec.rb": 5.602607011795044,5892 "spec/lib/gitlab/blob_helper_spec.rb": 4.250454425811768,5893 "spec/serializers/analytics_build_entity_spec.rb": 5.063442707061768,5894 "spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 4.200690984725952,5895 "spec/lib/gitlab/email/handler/create_issue_handler_spec.rb": 4.033729791641235,5896 "spec/lib/gitlab/ci/status/build/scheduled_spec.rb": 2.594831705093384,5897 "spec/services/projects/move_deploy_keys_projects_service_spec.rb": 1.989748239517212,5898 "spec/lib/gitlab/import_export/fork_spec.rb": 2.55019474029541,5899 "spec/services/projects/create_from_template_service_spec.rb": 3.548365831375122,5900 "spec/lib/gitlab/import_export/lfs_restorer_spec.rb": 4.074706792831421,5901 "spec/models/blob_spec.rb": 3.169696092605591,5902 "spec/services/ci/extract_sections_from_build_trace_service_spec.rb": 3.29010009765625,5903 "spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb": 2.333216428756714,5904 "spec/lib/banzai/reference_redactor_spec.rb": 2.3086605072021484,5905 "spec/models/release_spec.rb": 2.5429296493530273,5906 "spec/services/projects/propagate_service_template_spec.rb": 2.4710988998413086,5907 "spec/helpers/milestones_helper_spec.rb": 3.802976369857788,5908 "spec/lib/gitlab/chat/output_spec.rb": 2.561368227005005,5909 "spec/policies/issuable_policy_spec.rb": 1.7307207584381104,5910 "spec/models/concerns/has_environment_scope_spec.rb": 2.374758243560791,5911 "spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb": 2.181792736053467,5912 "spec/services/test_hooks/system_service_spec.rb": 2.0757946968078613,5913 "spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb": 0.5993897914886475,5914 "spec/views/layouts/header/_new_dropdown.haml_spec.rb": 2.4508745670318604,5915 "spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb": 2.3933780193328857,5916 "spec/services/wiki_pages/create_service_spec.rb": 1.793759822845459,5917 "spec/models/pool_repository_spec.rb": 1.4585676193237305,5918 "spec/lib/gitlab/slash_commands/issue_new_spec.rb": 2.132455587387085,5919 "spec/initializers/active_record_locking_spec.rb": 1.6334788799285889,5920 "spec/lib/gitlab/file_finder_spec.rb": 1.999842882156372,5921 "spec/finders/users_star_projects_finder_spec.rb": 0.9487998485565186,5922 "spec/lib/banzai/pipeline/full_pipeline_spec.rb": 1.2391953468322754,5923 "spec/serializers/diffs_entity_spec.rb": 1.715829849243164,5924 "spec/lib/gitlab/phabricator_import/base_worker_spec.rb": 1.3447861671447754,5925 "spec/lib/gitlab/background_migration/archive_legacy_traces_spec.rb": 1.604435682296753,5926 "spec/services/git/tag_push_service_spec.rb": 2.330120801925659,5927 "spec/lib/api/helpers_spec.rb": 1.2604930400848389,5928 "spec/workers/stuck_import_jobs_worker_spec.rb": 1.5998289585113525,5929 "spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb": 0.9903304576873779,5930 "spec/lib/gitlab/ci/status/build/manual_spec.rb": 2.0527358055114746,5931 "spec/validators/sha_validator_spec.rb": 2.2234208583831787,5932 "spec/models/project_deploy_token_spec.rb": 1.8537626266479492,5933 "spec/models/personal_access_token_spec.rb": 0.7200148105621338,5934 "spec/serializers/job_artifact_report_entity_spec.rb": 1.5473906993865967,5935 "spec/services/tags/create_service_spec.rb": 1.0695745944976807,5936 "spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb": 1.0104560852050781,5937 "spec/models/concerns/loaded_in_group_list_spec.rb": 1.2597830295562744,5938 "spec/finders/container_repositories_finder_spec.rb": 0.6800582408905029,5939 "spec/lib/gitlab/database/count/exact_count_strategy_spec.rb": 1.1016714572906494,5940 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 0.5403866767883301,5941 "spec/migrations/change_default_value_for_dsa_key_restriction_spec.rb": 1.0674989223480225,5942 "spec/models/subscription_spec.rb": 0.9781506061553955,5943 "spec/workers/update_merge_requests_worker_spec.rb": 0.7009434700012207,5944 "spec/migrations/cleanup_build_stage_migration_spec.rb": 0.8413174152374268,5945 "spec/services/protected_tags/update_service_spec.rb": 1.071821689605713,5946 "spec/services/delete_branch_service_spec.rb": 0.8500640392303467,5947 "spec/services/cohorts_service_spec.rb": 0.8710277080535889,5948 "spec/helpers/storage_helper_spec.rb": 0.8651080131530762,5949 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 0.5044362545013428,5950 "spec/workers/object_pool/destroy_worker_spec.rb": 0.5530617237091064,5951 "spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb": 1.041363000869751,5952 "spec/models/concerns/strip_attribute_spec.rb": 0.3008694648742676,5953 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb": 0.6203324794769287,5954 "spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb": 0.6494715213775635,5955 "spec/migrations/reschedule_builds_stages_migration_spec.rb": 0.7443552017211914,5956 "spec/lib/gitlab/ci/status/build/created_spec.rb": 1.4682626724243164,5957 "spec/models/project_ci_cd_setting_spec.rb": 0.6451923847198486,5958 "spec/lib/constraints/group_url_constrainer_spec.rb": 0.3907327651977539,5959 "spec/lib/gitlab/background_migration/migrate_stage_index_spec.rb": 0.7022724151611328,5960 "spec/workers/build_coverage_worker_spec.rb": 0.9584565162658691,5961 "spec/workers/project_service_worker_spec.rb": 0.127763032913208,5962 "spec/lib/banzai/commit_renderer_spec.rb": 0.4795408248901367,5963 "spec/lib/gitlab/tracking_spec.rb": 0.2664952278137207,5964 "spec/services/system_notes/zoom_service_spec.rb": 0.532850980758667,5965 "spec/workers/build_hooks_worker_spec.rb": 0.3370237350463867,5966 "spec/lib/gitlab/usage_data_counters/cycle_analytics_counter_spec.rb": 0.03775286674499512,5967 "spec/serializers/cluster_serializer_spec.rb": 0.4997997283935547,5968 "spec/models/lfs_objects_project_spec.rb": 0.34430766105651855,5969 "spec/models/project_services/chat_message/pipeline_message_spec.rb": 0.2887842655181885,5970 "spec/models/broadcast_message_spec.rb": 0.45879364013671875,5971 "spec/serializers/board_serializer_spec.rb": 0.34889841079711914,5972 "spec/lib/gitlab/ci/cron_parser_spec.rb": 0.38872718811035156,5973 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 0.5647797584533691,5974 "spec/lib/gitlab/ci/config/external/file/remote_spec.rb": 0.20894956588745117,5975 "spec/lib/banzai/filter/sanitization_filter_spec.rb": 0.2234663963317871,5976 "spec/workers/admin_email_worker_spec.rb": 0.2455425262451172,5977 "spec/lib/grafana/client_spec.rb": 0.20807576179504395,5978 "spec/helpers/tracking_helper_spec.rb": 0.09030866622924805,5979 "spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb": 0.2448256015777588,5980 "spec/serializers/container_tag_entity_spec.rb": 0.23617172241210938,5981 "spec/lib/after_commit_queue_spec.rb": 0.12102675437927246,5982 "spec/models/term_agreement_spec.rb": 0.18832945823669434,5983 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.09270358085632324,5984 "spec/finders/award_emojis_finder_spec.rb": 0.08208775520324707,5985 "spec/lib/banzai/filter/emoji_filter_spec.rb": 0.08768010139465332,5986 "spec/rubocop/cop/inject_enterprise_edition_module_spec.rb": 0.1624000072479248,5987 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 0.09891843795776367,5988 "spec/workers/update_external_pull_requests_worker_spec.rb": 0.08780097961425781,5989 "spec/lib/gitlab/version_info_spec.rb": 0.05785512924194336,5990 "spec/policies/identity_provider_policy_spec.rb": 0.09037470817565918,5991 "spec/models/project_metrics_setting_spec.rb": 0.06981325149536133,5992 "spec/models/conversational_development_index/metric_spec.rb": 0.06732988357543945,5993 "spec/helpers/broadcast_messages_helper_spec.rb": 0.07174897193908691,5994 "spec/workers/authorized_projects_worker_spec.rb": 0.0854637622833252,5995 "spec/lib/bitbucket_server/representation/activity_spec.rb": 0.08561468124389648,5996 "spec/lib/gitlab/metrics/transaction_spec.rb": 0.08551335334777832,5997 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb": 0.057168006896972656,5998 "spec/lib/gitlab/diff/parser_spec.rb": 0.050295352935791016,5999 "spec/lib/gitlab/git/conflict/parser_spec.rb": 0.04802560806274414,6000 "spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb": 0.03503704071044922,6001 "spec/lib/rspec_flaky/config_spec.rb": 0.04909324645996094,6002 "spec/lib/gitlab/database/grant_spec.rb": 0.04881882667541504,6003 "spec/finders/applications_finder_spec.rb": 0.05965304374694824,6004 "spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb": 0.03760552406311035,6005 "spec/lib/gitlab/import_export/config_spec.rb": 0.015849828720092773,6006 "spec/lib/gitlab/health_checks/redis/queues_check_spec.rb": 0.037390947341918945,6007 "spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb": 0.3666379451751709,6008 "spec/lib/gitlab/polling_interval_spec.rb": 0.04176759719848633,6009 "spec/rubocop/cop/migration/add_timestamps_spec.rb": 0.03490567207336426,6010 "spec/lib/gitlab/git/util_spec.rb": 0.010398387908935547,6011 "spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb": 0.03532814979553223,6012 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.029256582260131836,6013 "spec/validators/qualified_domain_array_validator_spec.rb": 0.0383758544921875,6014 "spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb": 0.033005714416503906,6015 "spec/initializers/action_mailer_hooks_spec.rb": 0.022875547409057617,6016 "spec/lib/banzai/filter/image_link_filter_spec.rb": 0.016828536987304688,6017 "spec/lib/gitlab_danger_spec.rb": 0.01863408088684082,6018 "spec/migrations/active_record/schema_spec.rb": 0.02234959602355957,6019 "spec/helpers/explore_helper_spec.rb": 0.016831636428833008,6020 "spec/helpers/blame_helper_spec.rb": 0.017171382904052734,6021 "spec/lib/gitlab/chat/responder/base_spec.rb": 0.01511383056640625,6022 "spec/graphql/resolvers/base_resolver_spec.rb": 0.014646530151367188,6023 "spec/rubocop/cop/migration/reversible_add_column_with_default_spec.rb": 0.01345205307006836,6024 "spec/lib/gitlab/ci/config/entry/variables_spec.rb": 0.01763319969177246,6025 "spec/lib/omni_auth/strategies/saml_spec.rb": 0.1944901943206787,6026 "spec/lib/gitlab/metrics/subscribers/active_record_spec.rb": 0.013627052307128906,6027 "spec/lib/gitlab/ci/status/scheduled_spec.rb": 0.014133691787719727,6028 "spec/lib/gitlab/config/entry/simplifiable_spec.rb": 0.01290130615234375,6029 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.01361083984375,6030 "spec/lib/feature/gitaly_spec.rb": 0.01084446907043457,6031 "spec/workers/trending_projects_worker_spec.rb": 0.0026051998138427734,6032 "spec/presenters/ci/bridge_presenter_spec.rb": 0.010292291641235352,6033 "spec/models/concerns/token_authenticatable_strategies/base_spec.rb": 0.013339996337890625,6034 "spec/rubocop/cop/include_action_view_context_spec.rb": 0.011692523956298828,6035 "spec/lib/gitlab/phabricator_import/conduit/maniphest_spec.rb": 0.011307477951049805,6036 "spec/graphql/types/namespace_type_spec.rb": 0.012989282608032227,6037 "spec/lib/bitbucket_server/collection_spec.rb": 0.01205134391784668,6038 "spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb": 0.012455224990844727,6039 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.007922172546386719,6040 "spec/models/concerns/blocks_json_serialization_spec.rb": 0.006963014602661133,6041 "spec/lib/gitlab/diff/line_spec.rb": 0.007389545440673828,6042 "spec/graphql/types/tree/type_enum_spec.rb": 0.009089231491088867,6043 "spec/lib/banzai/querying_spec.rb": 0.003920078277587891,6044 "spec/graphql/types/permission_types/note_spec.rb": 0.0033180713653564453,6045 "spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb": 0.0033652782440185547,6046 "spec/graphql/types/mutation_type_spec.rb": 0.00398063659667968756047}6048Knapsack global time execution for tests: 09m 29s6049Finished in 13 minutes 49 seconds (files took 46.59 seconds to load)60502174 examples, 0 failures6051Tue Oct 15 08:55:46 UTC 20196053$ date6054Tue Oct 15 08:55:51 UTC 20196057coverage/: found 5 matching files 6058knapsack/: found 6 matching files 6059rspec_flaky/: found 4 matching files 6060rspec_profiling/: found 1 matching files 6061WARNING: tmp/capybara/: no matching files 6062tmp/memory_test/: found 2 matching files 6063Uploading artifacts to coordinator... ok id=321109494 responseStatus=201 Created token=kuhHzysi6064Uploading artifacts...6065junit_rspec.xml: found 1 matching files 6066Uploading artifacts to coordinator... ok id=321109494 responseStatus=201 Created token=kuhHzysi6067Job succeeded