rspec unit pg9-foss 15/20
Passed Started
by
@grzesiek

Grzegorz Bizon
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com 8a6210b8 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
00:21
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:61c59b9a763f02dd11635b20ef117812dad973b95a68bd125f3a1767f9159cf9 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:f9d774eafe0d9aa813860e94490efffec6041d63a786133749974c15c055663e for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...13Using docker image sha256:3689b07c936dec3fdafc5ec40ed80a6cfdba089394a505d60f2a6926b0b982a3 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 14 Running on runner-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1571120258-efe5d780...
00:05
16Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/18 * [new ref] refs/pipelines/88859459 -> refs/pipelines/8885945919 * [new branch] master -> origin/master20Checking out f5bf17c9 as master...21Skipping Git submodules setup23Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 24Successfully extracted cache26Downloading artifacts from coordinator... ok id=321109103 responseStatus=200 OK token=XMSy3Ehb27Downloading artifacts for setup-test-env (321109105)...28Downloading artifacts from coordinator... ok id=321109105 responseStatus=200 OK token=wfkozyzh29WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 30Downloading artifacts for retrieve-tests-metadata (321109113)...31Downloading artifacts from coordinator... ok id=321109113 responseStatus=200 OK token=rMBaZ9wv33$ date34Tue Oct 15 08:39:42 UTC 201935$ export GOPATH=$CI_PROJECT_DIR/.go36$ mkdir -p $GOPATH37$ source scripts/utils.sh38$ source scripts/prepare_build.sh39Bundler version 1.17.240Warning: 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`.41The Gemfile's dependencies are satisfied42Successfully installed knapsack-1.18.0431 gem installed44CREATE ROLE45GRANT46Dropped database 'gitlabhq_test'47Created database 'gitlabhq_test'48-- enable_extension("pg_trgm")49 -> 0.0293s50-- enable_extension("plpgsql")51 -> 0.0028s52-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})53 -> 0.0041s54-- create_table("alerts_service_data", {:force=>:cascade})55 -> 0.0060s56-- create_table("allowed_email_domains", {:force=>:cascade})57 -> 0.0043s58-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})59 -> 0.0138s60-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})61 -> 0.0131s62-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})63 -> 0.0072s64-- create_table("analytics_repository_file_commits", {:force=>:cascade})65 -> 0.0061s66-- create_table("analytics_repository_files", {:force=>:cascade})67 -> 0.0046s68-- create_table("appearances", {:id=>:serial, :force=>:cascade})69 -> 0.0034s70-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})71 -> 0.0024s72-- create_table("application_settings", {:id=>:serial, :force=>:cascade})73 -> 0.0960s74-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})75 -> 0.0062s76-- create_table("approval_merge_request_rules", {:force=>:cascade})77 -> 0.0154s78-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})79 -> 0.0061s80-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})81 -> 0.0061s82-- create_table("approval_merge_request_rules_users", {:force=>:cascade})83 -> 0.0061s84-- create_table("approval_project_rules", {:force=>:cascade})85 -> 0.0099s86-- create_table("approval_project_rules_groups", {:force=>:cascade})87 -> 0.0061s88-- create_table("approval_project_rules_users", {:force=>:cascade})89 -> 0.0061s90-- create_table("approvals", {:id=>:serial, :force=>:cascade})91 -> 0.0062s92-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})93 -> 0.0067s94-- create_table("approvers", {:id=>:serial, :force=>:cascade})95 -> 0.0064s96-- create_table("audit_events", {:id=>:serial, :force=>:cascade})97 -> 0.0068s98-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})99 -> 0.0066s100-- create_table("badges", {:id=>:serial, :force=>:cascade})101 -> 0.0068s102-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})103 -> 0.0061s104-- create_table("board_group_recent_visits", {:force=>:cascade})105 -> 0.0102s106-- create_table("board_labels", {:id=>:serial, :force=>:cascade})107 -> 0.0059s108-- create_table("board_project_recent_visits", {:force=>:cascade})109 -> 0.0102s110-- create_table("boards", {:id=>:serial, :force=>:cascade})111 -> 0.0090s112-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})113 -> 0.0049s114-- create_table("chat_names", {:id=>:serial, :force=>:cascade})115 -> 0.0071s116-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})117 -> 0.0046s118-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})119 -> 0.0045s120-- create_table("ci_build_trace_chunks", {:force=>:cascade})121 -> 0.0045s122-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})123 -> 0.0045s124-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})125 -> 0.0084s126-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})127 -> 0.0552s128-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})129 -> 0.0093s130-- create_table("ci_builds_runner_session", {:force=>:cascade})131 -> 0.0046s132-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})133 -> 0.0062s134-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})135 -> 0.0899s136-- create_table("ci_job_variables", {:force=>:cascade})137 -> 0.0077s138-- create_table("ci_pipeline_chat_data", {:force=>:cascade})139 -> 0.0069s140-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})141 -> 0.0056s142-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})143 -> 0.0099s144-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})145 -> 0.0055s146-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})147 -> 0.0316s148-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})149 -> 0.0064s150-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})151 -> 0.0064s152-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})153 -> 0.0180s154-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})155 -> 0.0126s156-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})157 -> 0.0113s158-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})159 -> 0.0069s160-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})161 -> 0.0069s162-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})163 -> 0.0069s164-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})165 -> 0.0066s166-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})167 -> 0.0051s168-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})169 -> 0.0065s170-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})171 -> 0.0084s172-- create_table("clusters", {:id=>:serial, :force=>:cascade})173 -> 0.0112s174-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})175 -> 0.0050s176-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})177 -> 0.0049s178-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})179 -> 0.0052s180-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})181 -> 0.0073s182-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})183 -> 0.0050s184-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})185 -> 0.0049s186-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})187 -> 0.0079s188-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})189 -> 0.0158s190-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})191 -> 0.0068s192-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})193 -> 0.0074s194-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})195 -> 0.0049s196-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})197 -> 0.0048s198-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})199 -> 0.0046s200-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})201 -> 0.0112s202-- create_table("deployments", {:id=>:serial, :force=>:cascade})203 -> 0.0243s204-- create_table("design_management_designs", {:force=>:cascade})205 -> 0.0068s206-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})207 -> 0.0098s208-- create_table("design_management_versions", {:force=>:cascade})209 -> 0.0146s210-- create_table("draft_notes", {:force=>:cascade})211 -> 0.0099s212-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})213 -> 0.0036s214-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})215 -> 0.0033s216-- create_table("emails", {:id=>:serial, :force=>:cascade})217 -> 0.0089s218-- create_table("environments", {:id=>:serial, :force=>:cascade})219 -> 0.0113s220-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})221 -> 0.0061s222-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})223 -> 0.0043s224-- create_table("epics", {:id=>:serial, :force=>:cascade})225 -> 0.0217s226-- create_table("events", {:id=>:serial, :force=>:cascade})227 -> 0.0167s228-- create_table("external_pull_requests", {:force=>:cascade})229 -> 0.0052s230-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})231 -> 0.0049s232-- create_table("features", {:id=>:serial, :force=>:cascade})233 -> 0.0046s234-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})235 -> 0.0081s236-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})237 -> 0.0046s238-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})239 -> 0.0041s240-- create_table("geo_cache_invalidation_events", {:force=>:cascade})241 -> 0.0035s242-- create_table("geo_container_repository_updated_events", {:force=>:cascade})243 -> 0.0041s244-- create_table("geo_event_log", {:force=>:cascade})245 -> 0.0288s246-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})247 -> 0.0046s248-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})249 -> 0.0048s250-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})251 -> 0.0045s252-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})253 -> 0.0046s254-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})255 -> 0.0082s256-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})257 -> 0.0061s258-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})259 -> 0.0127s260-- create_table("geo_repositories_changed_events", {:force=>:cascade})261 -> 0.0041s262-- create_table("geo_repository_created_events", {:force=>:cascade})263 -> 0.0048s264-- create_table("geo_repository_deleted_events", {:force=>:cascade})265 -> 0.0046s266-- create_table("geo_repository_renamed_events", {:force=>:cascade})267 -> 0.0048s268-- create_table("geo_repository_updated_events", {:force=>:cascade})269 -> 0.0074s270-- create_table("geo_reset_checksum_events", {:force=>:cascade})271 -> 0.0041s272-- create_table("geo_upload_deleted_events", {:force=>:cascade})273 -> 0.0047s274-- create_table("gitlab_subscriptions", {:force=>:cascade})275 -> 0.0077s276-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})277 -> 0.0085s278-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})279 -> 0.0085s280-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})281 -> 0.0138s282-- create_table("grafana_integrations", {:force=>:cascade})283 -> 0.0048s284-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})285 -> 0.0069s286-- create_table("historical_data", {:id=>:serial, :force=>:cascade})287 -> 0.0022s288-- create_table("identities", {:id=>:serial, :force=>:cascade})289 -> 0.0093s290-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})291 -> 0.0069s292-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})293 -> 0.0050s294-- create_table("insights", {:id=>:serial, :force=>:cascade})295 -> 0.0063s296-- create_table("internal_ids", {:force=>:cascade})297 -> 0.0113s298-- create_table("ip_restrictions", {:force=>:cascade})299 -> 0.0051s300-- create_table("issue_assignees", {:id=>false, :force=>:cascade})301 -> 0.0073s302-- create_table("issue_links", {:id=>:serial, :force=>:cascade})303 -> 0.0089s304-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})305 -> 0.0069s306-- create_table("issue_tracker_data", {:force=>:cascade})307 -> 0.0054s308-- create_table("issues", {:id=>:serial, :force=>:cascade})309 -> 0.0452s310-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})311 -> 0.0057s312-- create_table("jira_connect_installations", {:force=>:cascade})313 -> 0.0052s314-- create_table("jira_connect_subscriptions", {:force=>:cascade})315 -> 0.0086s316-- create_table("jira_tracker_data", {:force=>:cascade})317 -> 0.0050s318-- create_table("keys", {:id=>:serial, :force=>:cascade})319 -> 0.0092s320-- create_table("label_links", {:id=>:serial, :force=>:cascade})321 -> 0.0067s322-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})323 -> 0.0085s324-- create_table("labels", {:id=>:serial, :force=>:cascade})325 -> 0.0135s326-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})327 -> 0.0027s328-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})329 -> 0.0067s330-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})331 -> 0.0068s332-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})333 -> 0.0062s334-- create_table("licenses", {:id=>:serial, :force=>:cascade})335 -> 0.0025s336-- create_table("list_user_preferences", {:force=>:cascade})337 -> 0.0087s338-- create_table("lists", {:id=>:serial, :force=>:cascade})339 -> 0.0139s340-- create_table("members", {:id=>:serial, :force=>:cascade})341 -> 0.0181s342-- create_table("merge_request_assignees", {:force=>:cascade})343 -> 0.0082s344-- create_table("merge_request_blocks", {:force=>:cascade})345 -> 0.0063s346-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})347 -> 0.0061s348-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})349 -> 0.0043s350-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})351 -> 0.0073s352-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})353 -> 0.0193s354-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})355 -> 0.0500s356-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})357 -> 0.0067s358-- create_table("merge_trains", {:force=>:cascade})359 -> 0.0111s360-- create_table("milestone_releases", {:id=>false, :force=>:cascade})361 -> 0.0052s362-- create_table("milestones", {:id=>:serial, :force=>:cascade})363 -> 0.0154s364-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})365 -> 0.0035s366-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})367 -> 0.0062s368-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})369 -> 0.0049s370-- create_table("namespaces", {:id=>:serial, :force=>:cascade})371 -> 0.0464s372-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})373 -> 0.0051s374-- create_table("notes", {:id=>:serial, :force=>:cascade})375 -> 0.0253s376-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})377 -> 0.0105s378-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})379 -> 0.0050s380-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})381 -> 0.0112s382-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})383 -> 0.0079s384-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})385 -> 0.0048s386-- create_table("operations_feature_flag_scopes", {:force=>:cascade})387 -> 0.0061s388-- create_table("operations_feature_flags", {:force=>:cascade})389 -> 0.0050s390-- create_table("operations_feature_flags_clients", {:force=>:cascade})391 -> 0.0068s392-- create_table("packages_maven_metadata", {:force=>:cascade})393 -> 0.0050s394-- create_table("packages_package_files", {:force=>:cascade})395 -> 0.0050s396-- create_table("packages_package_metadata", {:force=>:cascade})397 -> 0.0047s398-- create_table("packages_package_tags", {:force=>:cascade})399 -> 0.0042s400-- create_table("packages_packages", {:force=>:cascade})401 -> 0.0070s402-- create_table("pages_domain_acme_orders", {:force=>:cascade})403 -> 0.0072s404-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})405 -> 0.0190s406-- create_table("path_locks", {:id=>:serial, :force=>:cascade})407 -> 0.0088s408-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})409 -> 0.0084s410-- create_table("plans", {:id=>:serial, :force=>:cascade})411 -> 0.0053s412-- create_table("pool_repositories", {:force=>:cascade})413 -> 0.0089s414-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})415 -> 0.0048s416-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})417 -> 0.0019s418-- create_table("project_aliases", {:force=>:cascade})419 -> 0.0068s420-- create_table("project_authorizations", {:id=>false, :force=>:cascade})421 -> 0.0054s422-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})423 -> 0.0047s424-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})425 -> 0.0052s426-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})427 -> 0.0068s428-- create_table("project_daily_statistics", {:force=>:cascade})429 -> 0.0051s430-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})431 -> 0.0063s432-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})433 -> 0.0027s434-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})435 -> 0.0084s436-- create_table("project_features", {:id=>:serial, :force=>:cascade})437 -> 0.0067s438-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})439 -> 0.0067s440-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})441 -> 0.0048s442-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})443 -> 0.0034s444-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})445 -> 0.0019s446-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})447 -> 0.0161s448-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})449 -> 0.0057s450-- create_table("project_repositories", {:force=>:cascade})451 -> 0.0087s452-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})453 -> 0.0152s454-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})455 -> 0.0091s456-- create_table("project_tracing_settings", {:force=>:cascade})457 -> 0.0048s458-- create_table("projects", {:id=>:serial, :force=>:cascade})459 -> 0.0707s460-- create_table("prometheus_alert_events", {:force=>:cascade})461 -> 0.0070s462-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})463 -> 0.0086s464-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})465 -> 0.0117s466-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})467 -> 0.0089s468-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})469 -> 0.0088s470-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})471 -> 0.0089s472-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})473 -> 0.0075s474-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})475 -> 0.0089s476-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})477 -> 0.0067s478-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})479 -> 0.0089s480-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})481 -> 0.0070s482-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})483 -> 0.0040s484-- create_table("push_rules", {:id=>:serial, :force=>:cascade})485 -> 0.0096s486-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})487 -> 0.0089s488-- create_table("release_links", {:force=>:cascade})489 -> 0.0071s490-- create_table("releases", {:id=>:serial, :force=>:cascade})491 -> 0.0073s492-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})493 -> 0.0081s494-- create_table("repository_languages", {:id=>false, :force=>:cascade})495 -> 0.0033s496-- create_table("resource_label_events", {:force=>:cascade})497 -> 0.0129s498-- create_table("reviews", {:force=>:cascade})499 -> 0.0082s500-- create_table("routes", {:id=>:serial, :force=>:cascade})501 -> 0.0089s502-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})503 -> 0.0057s504-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})505 -> 0.0048s506-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})507 -> 0.0048s508-- create_table("services", {:id=>:serial, :force=>:cascade})509 -> 0.0157s510-- create_table("shards", {:id=>:serial, :force=>:cascade})511 -> 0.0050s512-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})513 -> 0.0099s514-- create_table("smartcard_identities", {:force=>:cascade})515 -> 0.0071s516-- create_table("snippets", {:id=>:serial, :force=>:cascade})517 -> 0.0185s518-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})519 -> 0.0074s520-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})521 -> 0.0069s522-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})523 -> 0.0037s524-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})525 -> 0.0071s526-- create_table("suggestions", {:force=>:cascade})527 -> 0.0067s528-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})529 -> 0.0047s530-- create_table("taggings", {:id=>:serial, :force=>:cascade})531 -> 0.0112s532-- create_table("tags", {:id=>:serial, :force=>:cascade})533 -> 0.0073s534-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})535 -> 0.0089s536-- create_table("timelogs", {:id=>:serial, :force=>:cascade})537 -> 0.0085s538-- create_table("todos", {:id=>:serial, :force=>:cascade})539 -> 0.0218s540-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})541 -> 0.0043s542-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})543 -> 0.0075s544-- create_table("uploads", {:id=>:serial, :force=>:cascade})545 -> 0.0111s546-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})547 -> 0.0055s548-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})549 -> 0.0065s550-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})551 -> 0.0070s552-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})553 -> 0.0054s554-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})555 -> 0.0069s556-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})557 -> 0.0052s558-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})559 -> 0.0058s560-- create_table("users", {:id=>:serial, :force=>:cascade})561 -> 0.0699s562-- create_table("users_ops_dashboard_projects", {:force=>:cascade})563 -> 0.0065s564-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})565 -> 0.0062s566-- create_table("vulnerabilities", {:force=>:cascade})567 -> 0.0230s568-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})569 -> 0.0156s570-- create_table("vulnerability_identifiers", {:force=>:cascade})571 -> 0.0051s572-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})573 -> 0.0063s574-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})575 -> 0.0064s576-- create_table("vulnerability_occurrences", {:force=>:cascade})577 -> 0.0135s578-- create_table("vulnerability_scanners", {:force=>:cascade})579 -> 0.0048s580-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})581 -> 0.0072s582-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})583 -> 0.0123s584-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})585 -> 0.0024s586-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})587 -> 0.0023s588-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})589 -> 0.0019s590-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})591 -> 0.0014s592-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})593 -> 0.0014s594-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})595 -> 0.0015s596-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})597 -> 0.0013s598-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})599 -> 0.0028s600-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})601 -> 0.0016s602-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})603 -> 0.0016s604-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})605 -> 0.0015s606-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})607 -> 0.0017s608-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})609 -> 0.0016s610-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})611 -> 0.0036s612-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})613 -> 0.0024s614-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})615 -> 0.0034s616-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})617 -> 0.0034s618-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})619 -> 0.0019s620-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})621 -> 0.0015s622-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})623 -> 0.0023s624-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})625 -> 0.0014s626-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})627 -> 0.0015s628-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})629 -> 0.0015s630-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})631 -> 0.0014s632-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})633 -> 0.0014s634-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})635 -> 0.0016s636-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})637 -> 0.0017s638-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})639 -> 0.0014s640-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})641 -> 0.0014s642-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})643 -> 0.0014s644-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})645 -> 0.0016s646-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})647 -> 0.0016s648-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})649 -> 0.0015s650-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})651 -> 0.0015s652-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})653 -> 0.0016s654-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})655 -> 0.0015s656-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})657 -> 0.0015s658-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})659 -> 0.0015s660-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})661 -> 0.0014s662-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})663 -> 0.0017s664-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})665 -> 0.0013s666-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})667 -> 0.0013s668-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})669 -> 0.0014s670-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})671 -> 0.0017s672-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})673 -> 0.0016s674-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})675 -> 0.0014s676-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})677 -> 0.0016s678-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})679 -> 0.0015s680-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})681 -> 0.0026s682-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})683 -> 0.0015s684-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})685 -> 0.0016s686-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})687 -> 0.0013s688-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})689 -> 0.0014s690-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})691 -> 0.0016s692-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})693 -> 0.0021s694-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})695 -> 0.0015s696-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})697 -> 0.0016s698-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})699 -> 0.0016s700-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})701 -> 0.0019s702-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})703 -> 0.0016s704-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})705 -> 0.0016s706-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})707 -> 0.0015s708-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})709 -> 0.0015s710-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})711 -> 0.0017s712-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})713 -> 0.0017s714-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})715 -> 0.0017s716-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})717 -> 0.0016s718-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})719 -> 0.0013s720-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})721 -> 0.0014s722-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})723 -> 0.0017s724-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})725 -> 0.0016s726-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})727 -> 0.0015s728-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})729 -> 0.0013s730-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})731 -> 0.0013s732-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})733 -> 0.0016s734-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})735 -> 0.0016s736-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})737 -> 0.0018s738-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})739 -> 0.0016s740-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})741 -> 0.0015s742-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})743 -> 0.0017s744-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})745 -> 0.0017s746-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})747 -> 0.0013s748-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})749 -> 0.0013s750-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})751 -> 0.0017s752-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})753 -> 0.0017s754-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})755 -> 0.0020s756-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})757 -> 0.0016s758-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})759 -> 0.0014s760-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})761 -> 0.0017s762-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})763 -> 0.0016s764-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})765 -> 0.0017s766-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})767 -> 0.0016s768-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})769 -> 0.0014s770-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})771 -> 0.0014s772-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})773 -> 0.0014s774-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})775 -> 0.0020s776-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})777 -> 0.0014s778-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})779 -> 0.0016s780-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})781 -> 0.0017s782-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})783 -> 0.0014s784-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})785 -> 0.0014s786-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})787 -> 0.0018s788-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})789 -> 0.0018s790-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})791 -> 0.0016s792-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})793 -> 0.0015s794-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})795 -> 0.0015s796-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})797 -> 0.0014s798-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})799 -> 0.0014s800-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})801 -> 0.0017s802-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})803 -> 0.0014s804-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})805 -> 0.0018s806-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})807 -> 0.0019s808-- add_foreign_key("container_repositories", "projects")809 -> 0.0019s810-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})811 -> 0.0016s812-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})813 -> 0.0015s814-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})815 -> 0.0018s816-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})817 -> 0.0020s818-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})819 -> 0.0019s820-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})821 -> 0.0023s822-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})823 -> 0.0018s824-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})825 -> 0.0014s826-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})827 -> 0.0015s828-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})829 -> 0.0015s830-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})831 -> 0.0019s832-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})833 -> 0.0018s834-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})835 -> 0.0018s836-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})837 -> 0.0016s838-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})839 -> 0.0018s840-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})841 -> 0.0018s842-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})843 -> 0.0018s844-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})845 -> 0.0014s846-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})847 -> 0.0014s848-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})849 -> 0.0013s850-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})851 -> 0.0017s852-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})853 -> 0.0016s854-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})855 -> 0.0017s856-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})857 -> 0.0016s858-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})859 -> 0.0016s860-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})861 -> 0.0018s862-- add_foreign_key("events", "projects", {:on_delete=>:cascade})863 -> 0.0018s864-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})865 -> 0.0015s866-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})867 -> 0.0018s868-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})869 -> 0.0016s870-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})871 -> 0.0017s872-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})873 -> 0.0018s874-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})875 -> 0.0016s876-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})877 -> 0.0017s878-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})879 -> 0.0013s880-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})881 -> 0.0019s882-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})883 -> 0.0012s884-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})885 -> 0.0013s886-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})887 -> 0.0013s888-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})889 -> 0.0013s890-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})891 -> 0.0016s892-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})893 -> 0.0014s894-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})895 -> 0.0021s896-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})897 -> 0.0014s898-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})899 -> 0.0015s900-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})901 -> 0.0013s902-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})903 -> 0.0013s904-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})905 -> 0.0019s906-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})907 -> 0.0018s908-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})909 -> 0.0016s910-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})911 -> 0.0015s912-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})913 -> 0.0016s914-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})915 -> 0.0012s916-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})917 -> 0.0017s918-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})919 -> 0.0017s920-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})921 -> 0.0017s922-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})923 -> 0.0017s924-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})925 -> 0.0017s926-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})927 -> 0.0014s928-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})929 -> 0.0015s930-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})931 -> 0.0017s932-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})933 -> 0.0015s934-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})935 -> 0.0013s936-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})937 -> 0.0017s938-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})939 -> 0.0019s940-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})941 -> 0.0017s942-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})943 -> 0.0015s944-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})945 -> 0.0018s946-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})947 -> 0.0019s948-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})949 -> 0.0017s950-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})951 -> 0.0016s952-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})953 -> 0.0016s954-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})955 -> 0.0017s956-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})957 -> 0.0014s958-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})959 -> 0.0015s960-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})961 -> 0.0016s962-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})963 -> 0.0016s964-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})965 -> 0.0013s966-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})967 -> 0.0015s968-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})969 -> 0.0014s970-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})971 -> 0.0015s972-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})973 -> 0.0014s974-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})975 -> 0.0015s976-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})977 -> 0.0019s978-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})979 -> 0.0018s980-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})981 -> 0.0016s982-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})983 -> 0.0016s984-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})985 -> 0.0015s986-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})987 -> 0.0014s988-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})989 -> 0.0016s990-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})991 -> 0.0015s992-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})993 -> 0.0015s994-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})995 -> 0.0014s996-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})997 -> 0.0014s998-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})999 -> 0.0017s1000-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1001 -> 0.0016s1002-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1003 -> 0.0019s1004-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1005 -> 0.0018s1006-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1007 -> 0.0016s1008-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1009 -> 0.0017s1010-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1011 -> 0.0016s1012-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1013 -> 0.0013s1014-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1015 -> 0.0013s1016-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1017 -> 0.0014s1018-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1019 -> 0.0016s1020-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1021 -> 0.0020s1022-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1023 -> 0.0017s1024-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1025 -> 0.0019s1026-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1027 -> 0.0016s1028-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1029 -> 0.0014s1030-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1031 -> 0.0015s1032-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1033 -> 0.0014s1034-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1035 -> 0.0014s1036-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1037 -> 0.0018s1038-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1039 -> 0.0015s1040-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1041 -> 0.0017s1042-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1043 -> 0.0017s1044-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1045 -> 0.0016s1046-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1047 -> 0.0021s1048-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1049 -> 0.0015s1050-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1051 -> 0.0020s1052-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1053 -> 0.0019s1054-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1055 -> 0.0018s1056-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1057 -> 0.0017s1058-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1059 -> 0.0018s1060-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1061 -> 0.0018s1062-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1063 -> 0.0017s1064-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1065 -> 0.0015s1066-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1067 -> 0.0016s1068-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1069 -> 0.0015s1070-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1071 -> 0.0017s1072-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1073 -> 0.0017s1074-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1075 -> 0.0013s1076-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1077 -> 0.0014s1078-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1079 -> 0.0016s1080-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1081 -> 0.0018s1082-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1083 -> 0.0015s1084-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1085 -> 0.0016s1086-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1087 -> 0.0015s1088-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1089 -> 0.0015s1090-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1091 -> 0.0015s1092-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1093 -> 0.0020s1094-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1095 -> 0.0019s1096-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1097 -> 0.0019s1098-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1099 -> 0.0016s1100-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1101 -> 0.0020s1102-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1103 -> 0.0019s1104-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1105 -> 0.0014s1106-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1107 -> 0.0017s1108-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1109 -> 0.0019s1110-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1111 -> 0.0013s1112-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1113 -> 0.0012s1114-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1115 -> 0.0013s1116-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1117 -> 0.0012s1118-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1119 -> 0.0018s1120-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1121 -> 0.0017s1122-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1123 -> 0.0018s1124-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1125 -> 0.0018s1126-- add_foreign_key("path_locks", "users")1127 -> 0.0018s1128-- add_foreign_key("personal_access_tokens", "users")1129 -> 0.0018s1130-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1131 -> 0.0018s1132-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1133 -> 0.0013s1134-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1135 -> 0.0018s1136-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1137 -> 0.0017s1138-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1139 -> 0.0017s1140-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1141 -> 0.0017s1142-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1143 -> 0.0018s1144-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1145 -> 0.0017s1146-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1147 -> 0.0018s1148-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1149 -> 0.0017s1150-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1151 -> 0.0015s1152-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1153 -> 0.0017s1154-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1155 -> 0.0018s1156-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1157 -> 0.0018s1158-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1159 -> 0.0017s1160-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1161 -> 0.0018s1162-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1163 -> 0.0017s1164-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1165 -> 0.0017s1166-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1167 -> 0.0017s1168-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1169 -> 0.0019s1170-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1171 -> 0.0017s1172-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1173 -> 0.0017s1174-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1175 -> 0.0013s1176-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1177 -> 0.0023s1178-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1179 -> 0.0019s1180-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1181 -> 0.0017s1182-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1183 -> 0.0019s1184-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1185 -> 0.0017s1186-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1187 -> 0.0015s1188-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1189 -> 0.0013s1190-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1191 -> 0.0018s1192-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1193 -> 0.0015s1194-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1195 -> 0.0017s1196-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1197 -> 0.0017s1198-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1199 -> 0.0018s1200-- add_foreign_key("protected_branch_merge_access_levels", "users")1201 -> 0.0017s1202-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1203 -> 0.0016s1204-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1205 -> 0.0012s1206-- add_foreign_key("protected_branch_push_access_levels", "users")1207 -> 0.0016s1208-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1209 -> 0.0016s1210-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1211 -> 0.0012s1212-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1213 -> 0.0016s1214-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1215 -> 0.0019s1216-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1217 -> 0.0016s1218-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1219 -> 0.0014s1220-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1221 -> 0.0016s1222-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1223 -> 0.0018s1224-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1225 -> 0.0016s1226-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1227 -> 0.0014s1228-- add_foreign_key("protected_tag_create_access_levels", "users")1229 -> 0.0016s1230-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1231 -> 0.0019s1232-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1233 -> 0.0013s1234-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1235 -> 0.0020s1236-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1237 -> 0.0013s1238-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1239 -> 0.0018s1240-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1241 -> 0.0016s1242-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1243 -> 0.0019s1244-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1245 -> 0.0019s1246-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1247 -> 0.0017s1248-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1249 -> 0.0015s1250-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1251 -> 0.0014s1252-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1253 -> 0.0015s1254-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1255 -> 0.0017s1256-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1257 -> 0.0016s1258-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1259 -> 0.0018s1260-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1261 -> 0.0017s1262-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1263 -> 0.0016s1264-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1265 -> 0.0016s1266-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1267 -> 0.0019s1268-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1269 -> 0.0014s1270-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1271 -> 0.0018s1272-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1273 -> 0.0021s1274-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1275 -> 0.0020s1276-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1277 -> 0.0014s1278-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1279 -> 0.0019s1280-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1281 -> 0.0014s1282-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1283 -> 0.0014s1284-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1285 -> 0.0014s1286-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1287 -> 0.0018s1288-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1289 -> 0.0016s1290-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1291 -> 0.0016s1292-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1293 -> 0.0019s1294-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1295 -> 0.0014s1296-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1297 -> 0.0019s1298-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1299 -> 0.0017s1300-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1301 -> 0.0017s1302-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1303 -> 0.0019s1304-- add_foreign_key("u2f_registrations", "users")1305 -> 0.0018s1306-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1307 -> 0.0018s1308-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1309 -> 0.0019s1310-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1311 -> 0.0019s1312-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1313 -> 0.0016s1314-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1315 -> 0.0018s1316-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1317 -> 0.0017s1318-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1319 -> 0.0018s1320-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1321 -> 0.0018s1322-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1323 -> 0.0022s1324-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1325 -> 0.0051s1326-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1327 -> 0.0020s1328-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1329 -> 0.0022s1330-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1331 -> 0.0020s1332-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1333 -> 0.0014s1334-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1335 -> 0.0013s1336-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1337 -> 0.0015s1338-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1339 -> 0.0021s1340-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1341 -> 0.0018s1342-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1343 -> 0.0017s1344-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1345 -> 0.0017s1346-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1347 -> 0.0025s1348-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1349 -> 0.0018s1350-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1351 -> 0.0015s1352-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1353 -> 0.0016s1354-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1355 -> 0.0020s1356-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1357 -> 0.0017s1358-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1359 -> 0.0016s1360-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1361 -> 0.0020s1362-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1363 -> 0.0018s1364-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1365 -> 0.0015s1366-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1367 -> 0.0015s1368-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1369 -> 0.0013s1370-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1371 -> 0.0020s1372-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1373 -> 0.0015s1374-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1375 -> 0.0012s1376-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1377 -> 0.0013s1378-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1379 -> 0.0019s1380-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1381 -> 0.0016s1382-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1383 -> 0.0020s1384$ date1385Tue Oct 15 08:40:16 UTC 20191386$ source scripts/rspec_helpers.sh1387$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1388KNAPSACK_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.rb1389Checking gitaly-ruby bundle...1390Warning: 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`.1391The Gemfile's dependencies are satisfied1392Trying to connect to gitaly: ...... OK1393Report specs:1394spec/services/merge_requests/update_service_spec.rb1395spec/services/projects/import_service_spec.rb1396spec/models/concerns/resolvable_discussion_spec.rb1397spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb1398spec/models/commit_spec.rb1399spec/lib/gitlab/search_results_spec.rb1400spec/models/namespace_spec.rb1401spec/finders/notes_finder_spec.rb1402spec/models/environment_status_spec.rb1403spec/serializers/pipeline_entity_spec.rb1404spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb1405spec/services/issuable/clone/content_rewriter_spec.rb1406spec/presenters/ci/pipeline_presenter_spec.rb1407spec/models/snippet_spec.rb1408spec/finders/projects/serverless/functions_finder_spec.rb1409spec/models/prometheus_metric_spec.rb1410spec/lib/gitlab/data_builder/note_spec.rb1411spec/lib/gitlab/data_builder/push_spec.rb1412spec/services/clusters/applications/upgrade_service_spec.rb1413spec/presenters/ci/build_presenter_spec.rb1414spec/services/issuable/clone/attributes_rewriter_spec.rb1415spec/models/cycle_analytics/group_level_spec.rb1416spec/models/commit_collection_spec.rb1417spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb1418spec/workers/invalid_gpg_signature_update_worker_spec.rb1419spec/finders/cluster_ancestors_finder_spec.rb1420spec/services/award_emojis/destroy_service_spec.rb1421spec/models/project_services/gitlab_issue_tracker_service_spec.rb1422spec/workers/namespaceless_project_destroy_worker_spec.rb1423spec/lib/gitlab/diff/highlight_spec.rb1424spec/services/discussions/resolve_service_spec.rb1425spec/helpers/search_helper_spec.rb1426spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb1427spec/lib/banzai/reference_parser/commit_range_parser_spec.rb1428spec/services/projects/open_issues_count_service_spec.rb1429spec/services/wiki_pages/update_service_spec.rb1430spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb1431spec/services/issues/import_csv_service_spec.rb1432spec/presenters/issue_presenter_spec.rb1433spec/services/projects/hashed_storage/migrate_repository_service_spec.rb1434spec/workers/ci/archive_traces_cron_worker_spec.rb1435spec/graphql/features/authorization_spec.rb1436spec/models/project_import_state_spec.rb1437spec/services/lfs/locks_finder_service_spec.rb1438spec/helpers/gitlab_routing_helper_spec.rb1439spec/lib/gitlab/kubernetes/helm/init_command_spec.rb1440spec/lib/gitlab/exclusive_lease_spec.rb1441spec/services/members/create_service_spec.rb1442spec/lib/gitlab/sanitizers/exif_spec.rb1443spec/models/concerns/project_features_compatibility_spec.rb1444spec/models/label_note_spec.rb1445spec/lib/gitlab/kubernetes/default_namespace_spec.rb1446spec/helpers/award_emoji_helper_spec.rb1447spec/workers/repository_import_worker_spec.rb1448spec/views/projects/diffs/_stats.html.haml_spec.rb1449spec/initializers/secret_token_spec.rb1450spec/models/project_services/issue_tracker_service_spec.rb1451spec/models/user_agent_detail_spec.rb1452spec/services/boards/list_service_spec.rb1453spec/services/wiki_pages/destroy_service_spec.rb1454spec/lib/gitlab/visibility_level_checker_spec.rb1455spec/services/merge_requests/migrate_external_diffs_service_spec.rb1456spec/models/hooks/web_hook_log_spec.rb1457spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb1458spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb1459spec/serializers/paginated_diff_entity_spec.rb1460spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb1461spec/lib/gitlab/ci/status/build/preparing_spec.rb1462spec/uploaders/namespace_file_uploader_spec.rb1463spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb1464spec/workers/concerns/project_import_options_spec.rb1465spec/lib/gitlab/legacy_github_import/wiki_formatter_spec.rb1466spec/lib/gitlab/metrics/instrumentation_spec.rb1467spec/lib/gitlab/graphql/loaders/pipeline_for_sha_loader_spec.rb1468spec/services/prometheus/adapter_service_spec.rb1469spec/models/blob_viewer/base_spec.rb1470spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb1471spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb1472spec/lib/gitlab/ci/status/build/erased_spec.rb1473spec/lib/gitlab/checks/project_created_spec.rb1474spec/migrations/set_issue_id_for_all_versions_spec.rb1475spec/migrations/enqueue_reset_merge_status_spec.rb1476spec/workers/mail_scheduler/issue_due_worker_spec.rb1477spec/workers/hashed_storage/migrator_worker_spec.rb1478spec/services/projects/container_repository/cleanup_tags_service_spec.rb1479spec/migrations/remove_empty_extern_uid_auth0_identities_spec.rb1480spec/workers/import_issues_csv_worker_spec.rb1481spec/models/project_services/pivotaltracker_service_spec.rb1482spec/helpers/boards_helper_spec.rb1483spec/lib/gitlab/phabricator_import/project_creator_spec.rb1484spec/migrations/assure_commits_count_for_merge_request_diff_spec.rb1485spec/services/projects/container_repository/delete_tags_service_spec.rb1486spec/lib/gitlab/graphql/representation/tree_entry_spec.rb1487spec/services/protected_branches/destroy_service_spec.rb1488spec/lib/gitlab/import/database_helpers_spec.rb1489spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb1490spec/validators/public_url_validator_spec.rb1491spec/rubocop/cop/graphql/authorize_types_spec.rb1492spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb1493spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb1494spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb1495spec/lib/omni_auth/strategies/jwt_spec.rb1496spec/helpers/commits_helper_spec.rb1497spec/services/projects/forks_count_service_spec.rb1498spec/services/protected_tags/create_service_spec.rb1499spec/lib/gitlab/ci/config/entry/job_spec.rb1500spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb1501spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb1502spec/tasks/gitlab/task_helpers_spec.rb1503spec/lib/gitlab/fake_application_settings_spec.rb1504spec/lib/banzai/filter/external_link_filter_spec.rb1505spec/initializers/zz_metrics_spec.rb1506spec/rubocop/cop/gitlab/rails_logger_spec.rb1507spec/db/development/import_common_metrics_spec.rb1508spec/finders/user_finder_spec.rb1509spec/lib/gitlab/http_connection_adapter_spec.rb1510spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb1511spec/lib/mattermost/team_spec.rb1512spec/lib/gitlab/favicon_spec.rb1513spec/services/deploy_keys/create_service_spec.rb1514spec/lib/gitlab/sql/pattern_spec.rb1515spec/db/production/import_common_metrics_spec.rb1516spec/workers/every_sidekiq_worker_spec.rb1517spec/models/concerns/feature_gate_spec.rb1518spec/lib/gitlab/ci/config/entry/reports_spec.rb1519spec/serializers/move_to_project_serializer_spec.rb1520spec/lib/gitlab/redis/shared_state_spec.rb1521spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb1522spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb1523spec/models/shard_spec.rb1524spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb1525spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb1526spec/finders/license_template_finder_spec.rb1527spec/lib/banzai/filter/inline_diff_filter_spec.rb1528spec/lib/gitlab/ci/config/entry/cache_spec.rb1529spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb1530spec/models/merge_request/metrics_spec.rb1531spec/lib/gitlab/kubernetes_spec.rb1532spec/helpers/tab_helper_spec.rb1533spec/lib/gitlab/sidekiq_status_spec.rb1534spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb1535spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb1536spec/lib/gitlab/git/changes_spec.rb1537spec/lib/prometheus/pid_provider_spec.rb1538spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb1539spec/lib/gitlab/dependency_linker_spec.rb1540spec/models/clusters/project_spec.rb1541spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb1542spec/lib/gitlab/sherlock/collection_spec.rb1543spec/lib/gitlab/ci/config/entry/hidden_spec.rb1544spec/lib/gitlab/diff/suggestion_diff_spec.rb1545spec/models/project_services/chat_message/note_message_spec.rb1546spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb1547spec/rubocop/cop/qa/element_with_pattern_spec.rb1548spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb1549spec/lib/gitlab/git/raw_diff_change_spec.rb1550spec/lib/gitlab/github_import/page_counter_spec.rb1551spec/lib/gitlab/ci/status/group/common_spec.rb1552spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb1553spec/lib/gitlab/github_import/bulk_importing_spec.rb1554spec/lib/rspec_flaky/flaky_examples_collection_spec.rb1555spec/lib/gitlab/ci/config/entry/paths_spec.rb1556spec/lib/gitlab/diff/inline_diff_spec.rb1557Knapsack report generator started!1558Run options:1559 include {:focus=>true}1560 exclude {:quarantine=>true, :geo=>true}1561All examples were filtered out; ignoring {:focus=>true}1562==> Setting up GitLab Shell...1563 GitLab Shell set up in 0.169309262 seconds...1564==> Setting up Gitaly...1565 Gitaly set up in 0.000128791 seconds...1566MergeRequests::UpdateService1567 execute1568 valid params1569 matches base expectations1570 executes hooks with update action1571 sends email to user2 about assign of new merge request and email to user3 about merge request unassignment1572 creates system note about merge_request reassign1573 creates a resource label event1574 creates system note about title change1575 creates system note about description change1576 creates system note about branch change1577 creates system note about discussion lock1578 when not including source branch removal options1579 maintains the original options1580 merge1581 without pipeline1582 merges the MR1583 with finished pipeline1584 merges the MR1585 with active pipeline1586 should receive execute(#<MergeRequest id:13 group13/project13!1>) 1 time1587 with a non-authorised user1588 does not merge the MR1589 MR can not be merged when note sha != MR sha1590 should eq "opened"1591 todos1592 when the title change1593 marks pending todos as done1594 does not create any new todos1595 when the description change1596 marks pending todos as done1597 creates only 1 new todo1598 when is reassigned1599 marks previous assignee pending todos as done1600 creates a pending todo for new assignee1601 when the milestone is removed1602 sends notifications for subscribers of changed milestone1603 behaves like system notes for milestones1604 group milestones1605 creates a system note1606 project milestones1607 creates a system note1608 when the milestone is changed1609 marks pending todos as done1610 sends notifications for subscribers of changed milestone1611 behaves like system notes for milestones1612 group milestones1613 creates a system note1614 project milestones1615 creates a system note1616 when the labels change1617 marks pending todos as done1618 updates updated_at1619 when the assignee changes1620 updates open merge request counter for assignees when merge request is reassigned1621 when the target branch change1622 marks pending todos as done1623 when auto merge is enabled and target branch changed1624 marks pending todos as done1625 when the merge request is relabeled1626 sends notifications for subscribers of newly added labels1627 when issue has the `label` label1628 does not send notifications for existing labels1629 does not send notifications for removed labels1630 updating mentions1631 when mentioning a different user1632 in title1633 emails only the newly-mentioned user1634 in description1635 emails only the newly-mentioned user1636 when mentioning a user and a group with access to1637 when group is public1638 behaves like updating attribute with allowed mentions1639 emails group members1640 behaves like updating attribute with allowed mentions1641 emails group members1642 when the group is private1643 behaves like updating attribute with allowed mentions1644 emails group members1645 behaves like updating attribute with allowed mentions1646 emails group members1647 when mentioning a user and a group without access to1648 when the group is private1649 behaves like updating attribute with not allowed mentions1650 emails mentioned user1651 behaves like updating attribute with not allowed mentions1652 emails mentioned user1653 when MergeRequest has tasks1654 should eq true1655 behaves like updating a single task1656 when a task is marked as completed1657 creates system note about task status change1658 when a task is marked as incomplete1659 creates system note about task status change1660 when the task position has been modified1661 raises an exception1662 when the content changes but not task line number1663 creates system note about task status change1664 when tasks are marked as completed1665 creates system note about task status change1666 when tasks are marked as incomplete1667 creates system note about task status change1668 while saving references to issues that the updated merge request closes1669 creates a `MergeRequestsClosingIssues` record for each issue1670 removes `MergeRequestsClosingIssues` records when issues are not closed anymore1671 updating asssignee_ids1672 does not update assignee when assignee_id is invalid1673 unassigns assignee when user id is 01674 saves assignee when user id is valid1675 does not update assignee_id when user cannot read issue1676 when issuable feature is private1677 does not update with unauthorized assignee when project is Internal1678 does not update with unauthorized assignee when project is Public1679 changing state1680 to reopened1681 executes hooks only once1682 to closed1683 executes hooks only once1684 setting `allow_collaboration`1685 does not allow a maintainer of the target project to set `allow_collaboration`1686 is allowed by a user that can push to the source and can update the merge request1687Projects::ImportService1688 #async?1689 returns true for an asynchronous importer1690 returns false for a regular importer1691 returns false when the importer does not define #async?1692 returns false when the importer does not exist1693 #execute1694 with unknown url1695 succeeds if repository is created successfully1696 fails if repository creation fails1697 when repository creation succeeds1698 does not download lfs files1699 with known url1700 with a Github repository1701 succeeds if repository import was scheduled1702 fails if repository import was not scheduled1703 when repository import scheduled1704 does not download lfs objects1705 with a non Github repository1706 succeeds if repository import is successful1707 fails if repository import fails1708 when lfs import fails1709 logs the error1710 when repository import scheduled1711 downloads lfs objects if lfs_enabled is enabled for project1712 does not download lfs objects if lfs_enabled is not enabled for project1713 with valid importer1714 succeeds if importer succeeds1715 fails if importer fails1716 when importer1717 has a custom repository importer it does not download lfs objects1718 does not have a custom repository importer downloads lfs objects1719 when lfs import fails1720 logs the error1721 with blocked import_URL1722 fails with localhost1723 fails with port 251724Discussion ResolvableDiscussion1725 #resolvable?1726 when potentially resolvable1727 when all notes are unresolvable1728 returns false1729 when some notes are unresolvable and some notes are resolvable1730 returns true1731 when all notes are resolvable1732 returns true1733 when not potentially resolvable1734 returns false1735 #resolved?1736 when not resolvable1737 returns false1738 when resolvable1739 when all resolvable notes are resolved1740 returns true1741 when some resolvable notes are not resolved1742 returns false1743 #to_be_resolved?1744 when not resolvable1745 returns false1746 when resolvable1747 when all resolvable notes are resolved1748 returns false1749 when some resolvable notes are not resolved1750 returns true1751 #can_resolve?1752 when not resolvable1753 returns false1754 when resolvable1755 when not signed in1756 returns false1757 when signed in1758 when the signed in user is the noteable author1759 returns true1760 when the signed in user can push to the project1761 returns true1762 when the signed in user is a random user1763 returns false1764 #resolve!1765 when not resolvable1766 returns nil1767 doesn't set resolved_at1768 doesn't set resolved_by1769 doesn't mark as resolved1770 when resolvable1771 when all resolvable notes are resolved1772 doesn't change resolved_at on the resolved notes1773 doesn't change resolved_by on the resolved notes1774 doesn't change the resolved state on the resolved notes1775 doesn't change resolved_at1776 doesn't change resolved_by1777 doesn't change resolved state1778 when some resolvable notes are resolved1779 doesn't change resolved_at on the resolved note1780 doesn't change resolved_by on the resolved note1781 doesn't change the resolved state on the resolved note1782 sets resolved_at on the unresolved note1783 sets resolved_by on the unresolved note1784 marks the unresolved note as resolved1785 sets resolved_at1786 sets resolved_by1787 marks as resolved1788 when no resolvable notes are resolved1789 sets resolved_at on the unresolved notes1790 sets resolved_by on the unresolved notes1791 marks the unresolved notes as resolved1792 sets resolved_at1793 sets resolved_by1794 marks as resolved1795 #unresolve!1796 when not resolvable1797 returns nil1798 when resolvable1799 when all resolvable notes are resolved1800 unsets resolved_at on the resolved notes1801 unsets resolved_by on the resolved notes1802 unmarks the resolved notes as resolved1803 unsets resolved_at1804 unsets resolved_by1805 unmarks as resolved1806 when some resolvable notes are resolved1807 unsets resolved_at on the resolved note1808 unsets resolved_by on the resolved note1809 unmarks the resolved note as resolved1810 #first_note_to_resolve1811 returns the first note that still needs to be resolved1812 #last_resolved_note1813 returns the last note that was resolved1814Gitlab::SidekiqDaemon::MemoryKiller1815 #start_working1816 not invoke restart_sidekiq when rss in range1817 invoke restart_sidekiq when rss not in range1818 when structured logging is used1819 logs start message once1820 logs StandardError message twice1821WARNING: 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 #<Exception: My Exception>. 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/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb:65:in `block (4 levels) in <top (required)>'.1822 logs exception message once and raise execption and log stop message1823 logs stop message once1824 #stop_working1825 changed enable? to false1826 #rss_within_range?1827 return true when everything is within limit1828 return false when rss exceeds hard_limit_rss1829 return false when rss exceed hard_limit_rss after a while1830 return true when rss below soft_limit_rss after a while within GRACE_BALLOON_SECONDS1831 return false when rss exceed soft_limit_rss longer than GRACE_BALLOON_SECONDS1832 #restart_sidekiq1833 send signal1834 #signal_and_wait1835 send signal and return when all jobs finished1836 send signal and wait till deadline if any job not finished1837 #signal_pgroup1838 send signal to this proces if it is not group leader1839 send signal to whole process group as group leader1840 #log_rss_out_of_range1841 invoke sidekiq logger warn1842 #out_of_range_description1843 when rss > hard_limit1844 tells reason1845 when rss <= hard_limit1846 tells reason1847 #rss_increase_by_jobs1848 adds up individual rss_increase_by_job1849 return 0 if no job1850 #rss_increase_by_job1851 return 0 if memory_growth_kb return 01852 return time factored growth value when it does not exceed max growth limit for whilited job1853 return max growth limit when time factored growth value exceed max growth limit for whilited job1854 #get_job_options1855 return default if key is not defined1856 return default if get StandardError when retrieve sidekiq_options1857 return right value if sidekiq_options has the key1858Commit1859 modules1860 should includes the Mentionable module1861 should includes the Participable module1862 should includes the Referable module1863 should includes the StaticModel module1864 should includes the Presentable module1865 .lazy1866 when the commits are found1867 batches requests for commits1868 maintains ordering1869 does not attempt to replace methods via BatchLoader1870 when not found1871 returns nil as commit1872 #author1873 looks up the author in a case-insensitive way1874 caches the author1875 using eager loading1876 executes only two SQL queries1877 preloads the authors for Commits matching a user's primary Email1878 preloads the authors for Commits using a User's alternative Email1879 preloads the authors for Commits using a User's private commit Email1880 preloads the authors for Commits using a User's outdated private commit Email1881 sets the author to Nil if an author could not be found for a Commit1882 does not execute SQL queries once the authors are preloaded1883 #to_reference1884 returns a String reference to the object1885 supports a cross-project reference1886 .reference_valid?1887 ref: "1234567", result: true1888 should eq true1889 ref: "123456", result: false1890 should eq false1891 ref: "1", result: false1892 should eq false1893 ref: "0000000000000000000000000000000000000000", result: true1894 should eq true1895 ref: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: true1896 should eq true1897 ref: "H1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: false1898 should eq false1899 ref: nil, result: false1900 should eq false1901 #reference_link_text1902 returns a String reference to the object1903 supports a cross-project reference1904 #title1905 returns no_commit_message when safe_message is blank1906 truncates a message without a newline at natural break to 80 characters1907 truncates a message with a newline before 80 characters at the newline1908 does not truncates a message with a newline after 80 but less 100 characters1909 #full_title1910 returns no_commit_message when safe_message is blank1911 returns entire message if there is no newline1912 returns first line of message if there is a newLine1913 description1914 returns no_commit_message when safe_message is blank1915 returns description of commit message if title less than 100 characters1916 returns full commit message if commit title more than 100 characters1917 delegation1918 should respond to #message1919 should respond to #authored_date1920 should respond to #committed_date1921 should respond to #committer_email1922 should respond to #author_email1923 should respond to #parents1924 should respond to #date1925 should respond to #diffs1926 should respond to #id1927 #closes_issues1928 detects issues that this commit is marked as closing1929 behaves like a mentionable1930 generates a descriptive back-reference1931 extracts references from its reference property1932 creates cross-reference notes1933 when there are cached markdown fields1934 sends in cached markdown fields when appropriate1935 #hook_attrs1936 should be a kind of Hash1937 should include "adds bar folder and branch-test text file to check Repository merged_to_root_ref method"1938 should eq "2016-09-27T14:37:46Z"1939 should contain exactly "bar/branch-test.txt"1940 should eq []1941 should eq []1942 #cherry_pick_message1943 of a regular commit1944 should include "\n\n(cherry picked from commit 88790590ed1337ab189bccaa355f068481c90bec)"1945 of a merge commit1946 that is found1947 should include "\n(cherry picked from commit 91257535bb6d962d8855971c6614c1e8dc0101fc)\n\n467dc98f Add new 'videos' directory\n88790590 Upload new video file"1948 that is existing but not found1949 does not include details of the merged commits1950 #reverts_commit?1951 should be falsy1952 commit has no description1953 should be falsy1954 another_commit's description does not revert commit1955 should be falsy1956 another_commit's description reverts commit1957 should be truthy1958 another_commit's description reverts merged merge request1959 should be truthy1960 #participants1961 includes the commit author1962 includes the committer1963 includes the authors of the commit notes1964 #uri_type with Gitaly enabled1965 behaves like #uri_type1966 returns the URI type at the given path1967 returns nil if the path doesn't exists1968 is nil if the path is nil or empty1969 #uri_type with Rugged enabled1970 calls out to the Rugged implementation1971 behaves like #uri_type1972 returns the URI type at the given path1973 returns nil if the path doesn't exists1974 is nil if the path is nil or empty1975 .from_hash1976 returns a Commit1977 wraps a Gitlab::Git::Commit1978 stores the correct commit fields1979 #work_in_progress?1980 detects the 'squash! ' prefix1981 detects the 'fixup! ' prefix1982 detects the 'wip: ' prefix1983 detects the 'WIP: ' prefix1984 detects the '[WIP] ' prefix1985 detects WIP for a commit just saying 'wip'1986 doesn't detect WIP for a commit that begins with 'FIXUP! '1987 doesn't detect WIP for words starting with WIP1988 .valid_hash?1989 checks hash contents1990 checks hash length1991 #merge_requests1992 returns merge_requests that introduced that commit1993Gitlab::SearchResults1994 does not list issues on private projects1995 does not list merge requests on projects with limited access1996 as a user with access1997 includes merge requests from source and target projects1998 #objects1999 returns without_counts collection by default2000 returns with counts collection when requested2001 #formatted_count2002 scope: "projects", count_method: :limited_projects_count, expected: "99+"2003 returns the expected formatted count2004 scope: "issues", count_method: :limited_issues_count, expected: "99+"2005 returns the expected formatted count2006 scope: "merge_requests", count_method: :limited_merge_requests_count, expected: "99+"2007 returns the expected formatted count2008 scope: "milestones", count_method: :limited_milestones_count, expected: "99+"2009 returns the expected formatted count2010 scope: "users", count_method: :limited_users_count, expected: "99+"2011 returns the expected formatted count2012 scope: "unknown", count_method: nil, expected: nil2013 returns the expected formatted count2014 #formatted_limited_count2015 count: 23, expected: "23"2016 returns the expected formatted limited count2017 count: 99, expected: "99"2018 returns the expected formatted limited count2019 count: 100, expected: "99+"2020 returns the expected formatted limited count2021 count: 1234, expected: "99+"2022 returns the expected formatted limited count2023 when count_limit is lower than total amount2024 #limited_projects_count2025 returns the limited amount of projects2026 #limited_merge_requests_count2027 returns the limited amount of merge requests2028 #limited_milestones_count2029 returns the limited amount of milestones2030 #limited_issues_count2031 runs single SQL query to get the limited amount of issues2032 when count_limit is higher than total amount2033 #limited_issues_count2034 runs multiple queries to get the limited amount of issues2035 #merge_requests2036 includes project filter by default2037 skips project filter if default project context is used2038 #issues2039 includes project filter by default2040 skips project filter if default project context is used2041 #users2042 does not call the UsersFinder when the current_user is not allowed to read users list2043 calls the UsersFinder2044 confidential issues2045 does not list confidential issues for non project members2046 does not list confidential issues for project members with guest role2047 lists confidential issues for author2048 lists confidential issues for assignee2049 lists confidential issues for project members2050 lists all issues for admin2051 milestones2052 returns correct set of milestones2053Namespace2054 associations2055 should have many projects2056 should have many project_statistics2057 should belong to parent required:2058 should have many children2059 should have one root_storage_statistics2060 should have one aggregation_schedule2061 validations2062 should validate that :name cannot be empty/falsy2063 should validate that the length of :name is at most 2552064 should validate that the length of :description is at most 2552065 should validate that :path cannot be empty/falsy2066 should validate that the length of :path is at most 2552067 should validate that :owner cannot be empty/falsy2068 does not allow too deep nesting2069 reserved path validation2070 nested group2071 should not be valid2072 rejects nested paths2073 is case insensitive2074 should not be valid2075 top-level group2076 should be valid2077 delegate2078 should delegate #owner_name to the #owner object passing arguments [{:allow_nil=>true}] as #name2079 should delegate #avatar_url to the #owner object passing arguments [{:allow_nil=>true}]2080 Respond to2081 should respond to #human_name2082 should respond to #to_param2083 should respond to #has_parent?2084 inclusions2085 should includes the Gitlab::VisibilityLevel module2086 #visibility_level_field2087 should eq :visibility_level2088 #to_param2089 should eq "namespace331"2090 #human_name2091 should eq "John Doe827"2092 #first_project_with_container_registry_tags2093 returns the project2094 returns no project2095 .search2096 returns namespaces with a matching name2097 returns namespaces with a partially matching name2098 returns namespaces with a matching name regardless of the casing2099 returns namespaces with a matching path2100 returns namespaces with a partially matching path2101 returns namespaces with a matching path regardless of the casing2102 .with_statistics2103 sums all project storage counters in the namespace2104 correctly handles namespaces without projects2105 .find_by_pages_host2106 finds namespace by GitLab Pages host and is case-insensitive2107 #ancestors_upto2108 returns all ancestors when no namespace is given2109 includes ancestors upto but excluding the given ancestor2110 #move_dir2111 legacy storage2112 raises error when directory exists2113 moves dir if path changed2114 behaves like namespace restrictions2115 when any project has container images2116 raises an error about not movable project2117 when #write_projects_repository_config raises an error2118 in test environment2119 raises an exception2120 in production environment2121 does not cancel later callbacks2122 with subgroups2123 renaming child2124 correctly moves the repository, uploads and pages2125 renaming parent2126 correctly moves the repository, uploads and pages2127 moving from one parent to another2128 correctly moves the repository, uploads and pages2129 moving from having a parent to root2130 correctly moves the repository, uploads and pages2131 moving from root to having a parent2132 correctly moves the repository, uploads and pages2133 hashed storage2134 repository directory remains unchanged if path changed2135 behaves like namespace restrictions2136 when any project has container images2137 raises an error about not movable project2138 for each project inside the namespace2139 updates project full path in .git/config2140 updates the project storage location2141 #rm_dir callback2142 legacy storage2143 renames its dirs when deleted2144 schedules the namespace for deletion2145 in sub-groups2146 renames its dirs when deleted2147 schedules the namespace for deletion2148 hashed storage2149 has no repositories base directories to remove2150 .find_by_path_or_name2151 should eq #<Namespace id: 972, name: "John Doe882", path: "woW", owner_id: 875, created_at: "2019-10-15 08:45:0...nil, subgroup_creation_level: 1, emails_disabled: nil, max_pages_size: nil, max_artifacts_size: nil>2152 should eq #<Namespace id: 974, name: "John Doe884", path: "woW", owner_id: 877, created_at: "2019-10-15 08:45:0...nil, subgroup_creation_level: 1, emails_disabled: nil, max_pages_size: nil, max_artifacts_size: nil>2153 should eq nil2154 .clean_path2155 cleans the path and makes sure it's available2156 #self_and_hierarchy2157 returns the correct tree2158 #ancestors2159 returns the correct ancestors2160 #self_and_ancestors2161 returns the correct ancestors2162 #descendants2163 returns the correct descendants2164 #self_and_descendants2165 returns the correct descendants2166 #users_with_descendants2167 returns member users on every nest level without duplication2168 #user_ids_for_project_authorizations2169 returns the user IDs for which to refresh authorizations2170 #all_projects2171 should contain exactly #<Project id:345 group115/group116/project302> and #<Project id:344 group115/project301>2172 should contain exactly #<Project id:347 group117/group118/project304>2173 #all_pipelines2174 should contain exactly #<Ci::Pipeline id: 3, ref: "master", sha: "97de212e80737a608d939f648d959671fb0a0142", before_sha: nil...nil, iid: 1, merge_request_id: nil, source_sha: nil, target_sha: nil, external_pull_request_id: nil> and #<Ci::Pipeline id: 4, ref: "master", sha: "97de212e80737a608d939f648d959671fb0a0142", before_sha: nil...nil, iid: 1, merge_request_id: nil, source_sha: nil, target_sha: nil, external_pull_request_id: nil>2175 #share_with_group_lock with subgroups2176 when creating a subgroup2177 under a parent with "Share with group lock" enabled2178 enables "Share with group lock" on the subgroup2179 under a parent with "Share with group lock" disabled2180 does not enable "Share with group lock" on the subgroup2181 when enabling the parent group "Share with group lock"2182 the subgroup "Share with group lock" becomes enabled2183 when disabling the parent group "Share with group lock" (which was already enabled)2184 and the subgroup "Share with group lock" is enabled2185 the subgroup "Share with group lock" does not change2186 but the subgroup "Share with group lock" is disabled2187 the subgroup "Share with group lock" does not change2188 when a group is transferred into a root group2189 when the root group "Share with group lock" is enabled2190 when the subgroup "Share with group lock" is enabled2191 the subgroup "Share with group lock" does not change2192 when the subgroup "Share with group lock" is disabled2193 the subgroup "Share with group lock" becomes enabled2194 when the root group "Share with group lock" is disabled2195 when the subgroup "Share with group lock" is enabled2196 the subgroup "Share with group lock" does not change2197 when the subgroup "Share with group lock" is disabled2198 the subgroup "Share with group lock" does not change2199 #find_fork_of?2200 knows if there is a direct fork in the namespace2201 knows when there is as fork-of-fork in the namespace2202 with request store enabled2203 only queries once2204 #root_ancestor2205 returns the top most ancestor2206 #full_path_before_last_save2207 when the group has no parent2208 returns the path before last save2209 when a parent is assigned to a group with no previous parent2210 returns the path before last save2211 when a parent is removed from the group2212 returns the parent full path2213 when changing parents2214 returns the previous parent full path2215 #auto_devops_enabled2216 with users2217 when auto devops is explicitly enabled2218 should eq true2219 when auto devops is explicitly disabled2220 should eq false2221 #user?2222 when type is a user2223 should be truthy2224 when type is a group2225 should be falsy2226 #aggregation_scheduled?2227 with an aggregation scheduled association2228 should be truthy2229 without an aggregation scheduled association2230 should be falsy2231 #emails_disabled?2232 when not a subgroup2233 returns false2234 returns true2235 when a subgroup2236 returns false2237 when ancestor emails are disabled2238 returns true2239 #pages_virtual_domain2240 when there are pages deployed for the project2241 but pages metadata is not migrated2242 migrates pages metadata and returns the virual domain2243 and pages metadata is migrated2244 returns the virual domain2245 #has_parent?2246 returns true when the group has a parent2247 returns true when the group has an unsaved parent2248 returns false when the group has no parent2249 #closest_setting2250 when setting is of non-boolean type2251 root_setting: 100, child_setting: 200, result: 2002252 behaves like fetching closest setting2253 returns closest non-nil value2254 root_setting: 100, child_setting: nil, result: 1002255 behaves like fetching closest setting2256 returns closest non-nil value2257 root_setting: nil, child_setting: nil, result: nil2258 behaves like fetching closest setting2259 returns closest non-nil value2260 when setting is of boolean type2261 root_setting: true, child_setting: false, result: false2262 behaves like fetching closest setting2263 returns closest non-nil value2264 root_setting: true, child_setting: nil, result: true2265 behaves like fetching closest setting2266 returns closest non-nil value2267 root_setting: nil, child_setting: nil, result: nil2268 behaves like fetching closest setting2269 returns closest non-nil value2270NotesFinder2271 #execute2272 finds notes on merge requests2273 finds notes on snippets2274 excludes notes on commits the author can't download2275 succeeds when no notes found2276 when notes filter is present2277 returns only user notes when using only_comments filter2278 returns only system notes when using only_activity filters2279 gets all notes2280 on restricted projects2281 publicly excludes notes on merge requests2282 publicly excludes notes on issues2283 publicly excludes notes on snippets2284 for target type2285 finds only notes for the selected type2286 for target2287 finds all notes2288 finds notes on merge requests2289 finds notes on snippets2290 finds notes on personal snippets2291 raises an exception for an invalid target_type2292 filters out old notes2293 confidential issue notes2294 returns notes if user can see the issue2295 raises an error if user can not see the issue2296 raises an error for project members with guest role2297 for explicit target2298 returns the expected notes2299 returns the expected notes when last_fetched_at is given2300 fails when nil is provided2301 .search2302 returns notes with matching content2303 returns notes with matching content regardless of the casing2304 returns commit notes user can access2305 confidential issues2306 returns notes with matching content if user can see the issue2307 does not return notes with matching content if user can not see the issue2308 does not return notes with matching content for project members with guest role2309 does not return notes with matching content for unauthenticated users2310 inlines SQL filters on subqueries for performance2311 project_id check2312 search filter2313 #target2314 for a issue target2315 returns the issue2316 for a merge request target2317 returns the merge_request2318 for a snippet target2319 returns the snippet2320 for a commit target2321 returns the commit2322 target_iid2323 finds issues by iid2324 finds merge requests by iid2325 returns nil if both target_id and target_iid are not given2326 prioritizes target_id over target_iid2327EnvironmentStatus2328 should delegate #id to the #environment object2329 should delegate #name to the #environment object2330 should delegate #deployed_at to the #deployment object2331 should delegate #status to the #deployment object2332 #project2333 should eq #<Project id:414 namespace487/project367>2334 #merge_request2335 should eq #<MergeRequest id:173 namespace490/project370!1>2336 #deployment2337 should eq #<Deployment id: 7, iid: 1, project_id: 420, environment_id: 7, ref: "pages-deploy", tag: false, sha:...-15 08:45:29", on_stop: nil, status: "success", finished_at: "2019-10-15 08:45:29", cluster_id: nil>2338 #changes2339 contains only added and modified public pages2340 .for_merge_request2341 is based on merge_request.diff_head_sha2342 .after_merge_request2343 is based on merge_request.merge_commit_sha2344 .build_environments_status2345 when environment is created on a forked project2346 returns environment status2347 when environment is created on a target project2348 returns environment status2349 when the build stops an environment2350 does not return environment status2351 when user does not have a permission to see the environment2352 does not return environment status2353 when multiple deployments with the same SHA in different environments2354 returns deployments related to the head pipeline2355 when multiple deployments in the same pipeline for the same environments2356 returns unique entries2357 when environment is stopped2358 does not return environment status2359PipelineEntity2360 #as_json2361 when pipeline is empty2362 contains required fields2363 excludes coverage data when disabled2364 contains details2365 contains flags2366 when pipeline is retryable2367 does not serialize stage builds2368 user has ability to retry pipeline2369 contains retry path2370 user does not have ability to retry pipeline2371 does not contain retry path2372 when pipeline is cancelable2373 does not serialize stage builds2374 user has ability to cancel pipeline2375 contains cancel path2376 user does not have ability to cancel pipeline2377 does not contain cancel path2378 when pipeline ref is empty2379 does not generate branch path2380 when pipeline has a failure reason set2381 has a correct failure reason2382 when pipeline is detached merge request pipeline2383 makes detached flag true2384 does not expose source sha and target sha2385 when user is a developer2386 has merge request information2387 when user is an external user2388 has no merge request information2389 when pipeline is merge request pipeline2390 makes detached flag false2391 makes atached flag true2392 exposes source sha and target sha2393 exposes merge request event type2394MigrateAutoDevOpsDomainToClusterDomain2395NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping2396NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2397NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2398 with ProjectAutoDevOps with no domain2399== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrating ===========2400-- execute("UPDATE clusters\nSET domain = project_auto_devops.domain\nFROM cluster_projects, project_auto_devops\nWHERE\n cluster_projects.cluster_id = clusters.id\n AND project_auto_devops.project_id = cluster_projects.project_id\n AND project_auto_devops.domain != ''\n")2401 -> 0.0011s2402== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrated (0.0012s) ==2403 does not update cluster project2404 with ProjectAutoDevOps with domain2405== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrating ===========2406-- execute("UPDATE clusters\nSET domain = project_auto_devops.domain\nFROM cluster_projects, project_auto_devops\nWHERE\n cluster_projects.cluster_id = clusters.id\n AND project_auto_devops.project_id = cluster_projects.project_id\n AND project_auto_devops.domain != ''\n")2407 -> 0.0012s2408== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrated (0.0013s) ==2409 updates all cluster projects2410 when only some ProjectAutoDevOps have domain set2411== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrating ===========2412-- execute("UPDATE clusters\nSET domain = project_auto_devops.domain\nFROM cluster_projects, project_auto_devops\nWHERE\n cluster_projects.cluster_id = clusters.id\n AND project_auto_devops.project_id = cluster_projects.project_id\n AND project_auto_devops.domain != ''\n")2413 -> 0.0011s2414== 20190204115450 MigrateAutoDevOpsDomainToClusterDomain: migrated (0.0012s) ==2415 only updates specific cluster projects2416NOTICE: table "design_management_designs" does not exist, skipping2417NOTICE: table "design_management_designs_versions" does not exist, skipping2418NOTICE: table "design_management_versions" does not exist, skipping2419NOTICE: table "geo_container_repository_updated_events" does not exist, skipping2420NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping2421NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping2422NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping2423Issuable::Clone::ContentRewriter2424 rewriting award emojis2425 copies the award emojis2426 rewriting description2427 when description is a simple text2428 does not rewrite the description2429 when description contains a local reference2430 rewrites the local reference correctly2431 when description contains a cross reference2432 rewrites the cross reference correctly2433 when description contains a user reference2434 works with a user reference2435 when description contains uploads2436 rewrites uploads in the description2437 rewriting notes2438 simple notes2439 rewrites existing notes in valid order2440 copies all the issue notes2441 does not change the note attributes2442 copies the award emojis2443 copies system_note_metadata for system note2444 notes with reference2445 rewrites the references correctly2446 notes with upload2447 rewrites note content correctly2448 discussion notes2449 rewrites discussion correctly2450Ci::PipelinePresenter2451 inherits from Gitlab::View::Presenter::Delegated2452 #initialize2453 takes a pipeline and optional params2454 exposes pipeline2455 forwards missing methods to pipeline2456 #status_title2457 when pipeline is auto-canceled2458 shows that the pipeline is auto-canceled2459 when pipeline is not auto-canceled2460 does not have a status title2461 #failure_reason2462 when pipeline has failure reason2463 represents a failure reason sentence2464 when pipeline does not have failure reason2465 returns nil2466 #name2467 when pipeline is detached merge request pipeline2468 should eq "Detached merge request pipeline"2469 when pipeline is merge request pipeline2470 should eq "Merged result pipeline"2471 when pipeline is merge train pipeline2472 should eq "Merge train pipeline"2473 when pipeline is branch pipeline2474 should eq "Pipeline"2475 #ref_text2476 when pipeline is detached merge request pipeline2477 returns a correct ref text2478 when pipeline is merge request pipeline2479 returns a correct ref text2480 when pipeline is branch pipeline2481 when ref exists in the repository2482 returns a correct ref text2483 when ref contains malicious script2484 does not include the malicious script2485 when ref exists in the repository2486 returns a correct ref text2487 when ref contains malicious script2488 does not include the malicious script2489 #all_related_merge_request_text2490 with zero related merge requests (branch pipeline)2491 should eq "No related merge requests found."2492 with one related merge request2493 should eq "1 related merge request: <a class=\"mr-iid\" href=\"/namespace588/project468/merge_requests/1\">!1 My title 410</a>"2494 with two related merge requests2495 should eq "2 related merge requests: <a class=\"mr-iid\" href=\"/namespace589/project469/merge_requests/2\">!2 ...412</a>, <a class=\"mr-iid\" href=\"/namespace589/project469/merge_requests/1\">!1 My title 411</a>"2496 #all_related_merge_requests2497 memoizes the returned relation2498 #link_to_merge_request2499 returns a correct link2500 when pipeline is branch pipeline2501 returns nothing2502 #link_to_merge_request_source_branch2503 returns a correct link2504 when pipeline is branch pipeline2505 returns nothing2506 #link_to_merge_request_target_branch2507 returns a correct link2508 when pipeline is branch pipeline2509 returns nothing2510Snippet2511 modules2512 should includes the Gitlab::VisibilityLevel module2513 should includes the Participable module2514 should includes the Referable module2515 should includes the Sortable module2516 should includes the Awardable module2517 associations2518 should belong to author class_name => User required:2519 should belong to project required:2520 should have many notes dependent => destroy2521 should have many award_emoji dependent => destroy2522 validation2523 should validate that :author cannot be empty/falsy2524 should validate that :title cannot be empty/falsy2525 should validate that the length of :title is at most 2552526 should validate that the length of :file_name is at most 2552527 should validate that :content cannot be empty/falsy2528 should validate that :visibility_level is either ‹0›, ‹10›, or ‹20›2529 #to_reference2530 when snippet belongs to a project2531 returns a String reference to the object2532 supports a cross-project reference2533 when snippet does not belong to a project2534 returns a String reference to the object2535 still returns shortest reference when project arg present2536 #file_name2537 file_name is nil2538 returns an empty string2539 file_name is not nil2540 returns the file_name2541 #content_html_invalidated?2542 invalidates the HTML cache of content when the filename changes2543 .search2544 returns snippets with a matching title2545 returns snippets with a partially matching title2546 returns snippets with a matching title regardless of the casing2547 returns snippets with a matching file name2548 returns snippets with a partially matching file name2549 returns snippets with a matching file name regardless of the casing2550 .search_code2551 returns snippets with matching content2552 returns snippets with partially matching content2553 returns snippets with matching content regardless of the casing2554 .with_optional_visibility2555 when a visibility level is provided2556 returns snippets with the given visibility2557 when a visibility level is not provided2558 returns all snippets2559 .only_global_snippets2560 returns snippets not associated with any projects2561 .only_include_projects_visible_to2562 when a user is provided2563 returns snippets visible to the user2564 when a user is not provided2565 returns snippets visible to anonymous users2566 only_include_projects_with_snippets_enabled2567 includes snippets for projects with snippets enabled2568 when the include_private option is enabled2569 includes snippets for projects with snippets set to private2570 when the include_private option is not enabled2571 does not include snippets for projects that have snippets set to private2572 .only_include_authorized_projects2573 only includes snippets for projects the user is authorized to see2574 .for_project_with_user2575 when a user is provided2576 returns an empty collection if the user can not view the snippets2577 returns the snippets if the user is a member of the project2578 returns public snippets for a public project the user is not a member of2579 when a user is not provided2580 returns an empty collection for a private project2581 returns public snippets for a public project2582 .visible_to_or_authored_by2583 returns snippets visible to the user2584 #participants2585 includes the snippet author2586 includes the note authors2587 #check_for_spam2588 when public and spammable attributes changed2589 returns true2590 when private2591 returns false2592 returns true when switching to public2593 when spammable attributes have not changed2594 returns false2595 #blob2596 returns a blob representing the snippet data2597 #embeddable?2598 project snippet2599 only returns true when both project and snippet are public2600 only returns true when both project and snippet are public2601 only returns true when both project and snippet are public2602 only returns true when both project and snippet are public2603 only returns true when both project and snippet are public2604 only returns true when both project and snippet are public2605 only returns true when both project and snippet are public2606 only returns true when both project and snippet are public2607 only returns true when both project and snippet are public2608 personal snippet2609 only returns true when snippet is public2610 only returns true when snippet is public2611 only returns true when snippet is public2612Projects::Serverless::FunctionsFinder2613 #installed2614 when reactive_caching is still fetching data2615 when reactive_caching has finished2616 when knative is not installed2617 returns false2618 reactive_caching is finished and knative is installed2619 returns true2620 retrieve data from knative2621 does not have knative installed2622 should be empty2623 has knative installed2624 there are no functions2625 there are functions2626 has a function2627 has metrics2628 has prometheus2629 is available2630 has query data2631PrometheusMetric2632 should belong to project required:2633 should validate that :title cannot be empty/falsy2634 should validate that :query cannot be empty/falsy2635 should validate that :group cannot be empty/falsy2636 behaves like having unique enum values2637 has unique values in "group"2638 common metrics2639 common: false, with_project: true, result: true2640 should eq true2641 common: false, with_project: false, result: false2642 should eq false2643 common: true, with_project: true, result: false2644 should eq false2645 common: true, with_project: false, result: true2646 should eq true2647 #query_series2648 legend: "Some other legend", type: NilClass2649 should be a kind of NilClass2650 legend: "Status Code", type: Array2651 should be a kind of Array2652 #group_title2653 behaves like group_title2654 returns text Response metrics (NGINX Ingress VTS) for group nginx_ingress_vts2655 behaves like group_title2656 returns text Response metrics (NGINX Ingress) for group nginx_ingress2657 behaves like group_title2658 returns text Response metrics (HA Proxy) for group ha_proxy2659 behaves like group_title2660 returns text Response metrics (AWS ELB) for group aws_elb2661 behaves like group_title2662 returns text Response metrics (NGINX) for group nginx2663 behaves like group_title2664 returns text System metrics (Kubernetes) for group kubernetes2665 behaves like group_title2666 returns text Business metrics (Custom) for group business2667 behaves like group_title2668 returns text Response metrics (Custom) for group response2669 behaves like group_title2670 returns text System metrics (Custom) for group system2671 #priority2672 group: :nginx_ingress_vts, priority: 102673 should eq 102674 group: :nginx_ingress, priority: 102675 should eq 102676 group: :ha_proxy, priority: 102677 should eq 102678 group: :aws_elb, priority: 102679 should eq 102680 group: :nginx, priority: 102681 should eq 102682 group: :kubernetes, priority: 52683 should eq 52684 group: :business, priority: 02685 should eq 02686 group: :response, priority: -52687 should eq -52688 group: :system, priority: -102689 should eq -102690 #required_metrics2691 group: :nginx_ingress_vts, required_metrics: ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]2692 should eq ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]2693 group: :nginx_ingress, required_metrics: ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]2694 should eq ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]2695 group: :ha_proxy, required_metrics: ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]2696 should eq ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]2697 group: :aws_elb, required_metrics: ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]2698 should eq ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]2699 group: :nginx, required_metrics: ["nginx_server_requests", "nginx_server_requestMsec"]2700 should eq ["nginx_server_requests", "nginx_server_requestMsec"]2701 group: :kubernetes, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]2702 should eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]2703 group: :business, required_metrics: []2704 should eq []2705 group: :response, required_metrics: []2706 should eq []2707 group: :system, required_metrics: []2708 should eq []2709 #to_query_metric2710 converts to queryable metric object2711 queryable metric object has title2712 queryable metric object has y_label2713 queryable metric has no required_metric2714 queryable metric has weight 02715 queryable metrics has query description2716 #to_metric_hash2717 returns a hash suitable for inclusion on a metrics dashboard2718Gitlab::DataBuilder::Note2719 When asking for a note on commit2720 returns the note and commit-specific data2721 contains project data2722 contains deprecated repository data2723 When asking for a note on commit diff2724 returns the note and commit-specific data2725 contains project data2726 contains deprecated repository data2727 When asking for a note on issue2728 returns the note and issue-specific data2729 contains project data2730 contains deprecated repository data2731 with confidential issue2732 sets event_type to confidential_note2733 When asking for a note on merge request2734 returns the note and merge request data2735 contains project data2736 contains deprecated repository data2737 When asking for a note on merge request diff2738 returns the note and merge request diff data2739 contains project data2740 contains deprecated repository data2741 When asking for a note on project snippet2742 returns the note and project snippet data2743 contains project data2744 contains deprecated repository data2745Gitlab::DataBuilder::Push2746 .build2747 with changed files2748 returns commit hook data2749 without changed files2750 returns commit hook data without include deltas2751 .build_sample2752 should be a kind of Hash2753 should eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"2754 should eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2755 should eq "refs/heads/master"2756 should eq 32757 should eq 32758 should eq ["bar/branch-test.txt"]2759 should eq []2760 should eq []2761 contains project data2762 contains deprecated repository data2763 .build2764 should be a kind of Hash2765 should eq "0000000000000000000000000000000000000000"2766 should eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"2767 should eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"2768 should eq "refs/tags/v1.1.0"2769 should eq nil2770 should eq "John Doe1513"2771 should eq "user1514"2772 should eq "public-email@example.com"2774 should eq 7492775 should be a kind of Hash2776 should be empty2777 should be zero2778 contains project data2779 contains deprecated repository data2780 does not raise an error when given nil commits2781Clusters::Applications::UpgradeService2782 #execute2783 when there are no errors2784 make the application updating2785 schedule async installation status check2786 when kubernetes cluster communication fails2787 logs into kubernetes.log and Sentry2788 make the application errored2789 a non kubernetes error happens2790 logs into kubernetes.log and Sentry2791 make the application errored2792Ci::BuildPresenter2793 inherits from Gitlab::View::Presenter::Delegated2794 #initialize2795 takes a build and optional params2796 exposes build2797 forwards missing methods to build2798 #erased_by_user?2799 takes a build and optional params2800 #erased_by_name2801 when build is not erased2802 returns nil2803 when build is erased2804 returns the name of the eraser2805 #status_title2806 when build is auto-canceled2807 shows that the build is auto-canceled2808 when build failed2809 returns the reason of failure2810 when build has failed && retried2811 does not include retried title2812 when build has failed and is allowed to2813 returns the reason of failure2814 For any other build2815 returns the status2816 quack like a Ci::Build permission-wise2817 user is not allowed2818 returns false2819 user is allowed2820 returns true2821 #trigger_variables2822 when variable is stored in ci_pipeline_variables2823 when pipeline is triggered by trigger API2824 returns variables2825 when pipeline is not triggered by trigger API2826 does not return variables2827 when variable is stored in ci_trigger_requests.variables2828 returns variables2829 #tooltip_message2830 When build has failed2831 returns the reason of failure2832 When build has failed and retried2833 includes the reason of failure and the retried title2834 When build has failed and is allowed to2835 includes the reason of failure2836 For any other build (no retried)2837 includes build name and status2838 For any other build (retried)2839 includes build name and status2840 #execute_in2841 when build is scheduled2842 when schedule is not expired2843 returns execution time2844 when schedule is expired2845 returns execution time2846 when build is not delayed2847 does not return execution time2848 #callout_failure_message2849 returns a verbose failure reason2850 #recoverable?2851 when is a script or missing dependency failure2852 returns false2853 when is any other failure type2854 returns true2855Issuable::Clone::AttributesRewriter2856 setting labels2857 sets labels present in the new project and group labels2858 does not set any labels when not used on the original issue2859 copies the resource label events2860 setting milestones2861 sets milestone to nil when old issue milestone is not in the new project2862 copies the milestone when old issue milestone title is in the new project2863 copies the milestone when old issue milestone is a group milestone2864CycleAnalytics::GroupLevel2865 #permissions2866 returns true for all stages2867 #stats28682019-10-15T08:47:28.059Z 91 TID-gohcudbg3 WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>65}2869 returns medians for each stage for a specific group2870 #summary28712019-10-15T08:47:30.736Z 91 TID-gohcudbg3 WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>67}2872 returns medians for each stage for a specific group2873CommitCollection2874 #each2875 yields every commit2876 .committers2877 returns a relation of users when users are found2878 returns empty array when committers cannot be found2879 excludes authors of merge commits2880 #without_merge_commits2881 returns all commits except merge commits2882 #with_latest_pipeline2883 sets the latest pipeline for every commit so no additional queries are necessary2884 enrichment methods2885 #unenriched2886 returns all commits that are not backed by gitaly data2887 #fully_enriched?2888 returns true when all commits are backed by gitaly data2889 returns false when any commits are not backed by gitaly data2890 returns true when the collection is empty2891 #enrich!2892 replaces commits in the collection with those backed by gitaly data2893 maintains the original order of the commits2894 fetches data if there are unenriched commits2895 does not fetch data if all commits are enriched2896 returns the original commit if the commit could not be lazy loaded2897 #respond_to_missing?2898 returns true when the underlying Array responds to the message2899 returns false when the underlying Array does not respond to the message2900 #method_missing2901 delegates undefined methods to the underlying Array2902layouts/nav/sidebar/_project2903 behaves like has nav sidebar2904 has collapsed nav sidebar on mobile2905 issue boards2906 has board tab2907 packages tab2908 highlights sidebar item and flyout2909 highlights container registry tab2910 releases entry2911 renders releases link2912 wiki entry tab2913 when wiki is enabled2914 shows the wiki tab with the wiki internal link2915 when wiki is disabled2916 does not show the wiki tab2917 external wiki entry tab2918 when it is active2919 shows the external wiki tab with the external wiki service link2920 when it is disabled2921 does not show the external wiki tab2922 ci/cd settings tab2923 when project is archived2924 does not show the ci/cd settings tab2925 when project is active2926 shows the ci/cd settings tab2927 operations settings tab2928 when project is archived2929 does not show the operations settings tab2930 when project is active2931 shows the operations settings tab2932InvalidGpgSignatureUpdateWorker2933 when GpgKey is found2934 calls NotificationService.new.run2935 when GpgKey is not found2936 does not raise errors2937 does not call NotificationService.new.run2938ClusterAncestorsFinder#execute2939 for a project2940 returns the project clusters followed by group clusters2941 nested groups2942 returns the project clusters followed by group clusters ordered ascending the hierarchy2943 user cannot read clusters for clusterable2944 returns nothing2945 for a group2946 returns the list of group clusters2947 nested groups2948 returns the list of group clusters ordered ascending the hierarchy2949 for an instance2950 returns the list of instance clusters2951AwardEmojis::DestroyService2952 #execute2953 when user is not authorized2954 behaves like a service that does not authorize the user2955 does not remove the emoji2956 returns an error state2957 returns a nil award2958 returns the error2959 when the user is authorized2960 when user has not awarded an emoji to the awardable2961 behaves like a service that does not authorize the user2962 does not remove the emoji2963 returns an error state2964 returns a nil award2965 returns the error2966 when user has awarded an emoji to the awardable2967 removes the emoji2968 returns a success status2969 returns no errors2970 returns the destroyed award2971GitlabIssueTrackerService2972 Associations2973 should belong to project required:2974 should have one service_hook2975 Validations2976 when service is active2977 should validate that :issues_url cannot be empty/falsy2978 behaves like issue tracker service URL attribute2979 should allow :issues_url to be ‹"https://example.com"›2980 should not allow :issues_url to be ‹"example.com"›2981 should not allow :issues_url to be ‹"ftp://example.com"›2982 should not allow :issues_url to be ‹"herp-and-derp"›2983 when service is inactive2984 should not validate that :issues_url cannot be empty/falsy2985 project and issue urls2986 with absolute urls2987 gives the correct path2988 with relative urls2989 gives the correct path2990 overriding properties2991 when data are stored in properties2992 behaves like issue tracker fields2993 when data are stored in the properties2994 #update2995 removes title and description from properties2996 stores title & description in services table2997 reading fields2998 returns correct values2999 when data are stored in separated fields3000 behaves like issue tracker fields3001 when data are stored in the properties3002 #update3003 removes title and description from properties3004 stores title & description in services table3005 reading fields3006 returns correct values3007 when data are stored in both properties and separated fields3008 behaves like issue tracker fields3009 when data are stored in the properties3010 #update3011 removes title and description from properties3012 stores title & description in services table3013 reading fields3014 returns correct values3015 when no title & description are set3016 returns default values3017NamespacelessProjectDestroyWorker3018 #perform3019 project has namespace3020 does not do anything3021 project has no namespace3022 project not a fork of another project3023 truncates the project's team3024 deletes the project3025 does not call unlink_fork3026 does not do anything in Project#remove_pages method3027 project forked from another3028 closes open merge requests3029 destroys fork network members3030 project has non-existing namespace3031 deletes the project3032Gitlab::Diff::Highlight3033 #highlight3034 with a diff file3035 returns Gitlab::Diff::Line elements3036 does not modify "match" lines3037 highlights and marks unchanged lines3038 highlights and marks removed lines3039 highlights and marks added lines3040 when no diff_refs3041 when no inline diffs3042 behaves like without inline diffs3043 returns html escaped diff text3044 with diff lines3045 returns Gitlab::Diff::Line elements3046 does not modify "match" lines3047 marks unchanged lines3048 marks removed lines3049 marks added lines3050 when the inline diff marker has an invalid range3051 keeps the original rich line3052 reports to Sentry if configured3053 when no inline diffs3054 behaves like without inline diffs3055 returns html escaped diff text3056Discussions::ResolveService3057 #execute3058 doesn't resolve discussions the user can't resolve3059 resolves the discussion3060 executes the notification service3061 adds a system note to the discussion3062 can resolve multiple discussions at once3063SearchHelper3064 search_autocomplete_opts3065 with no current user3066 returns nil3067 with a standard user3068 includes Help sections3069 includes default sections3070 does not include admin sections3071 does not allow regular expression in search term3072 includes the user's groups3073 includes nested group3074 includes the user's projects3075 includes the required project attrs3076 includes the required group attrs3077 does not include the public group3078 with a current project3079 includes project-specific sections3080 with an admin user3081 includes admin sections3082 search_entries_info3083 raises an error for unrecognized scopes3084 scope: "blobs", label: "code result"3085 uses the correct singular label3086 uses the correct plural label3087 scope: "commits", label: "commit"3088 uses the correct singular label3089 uses the correct plural label3090 scope: "issues", label: "issue"3091 uses the correct singular label3092 uses the correct plural label3093 scope: "merge_requests", label: "merge request"3094 uses the correct singular label3095 uses the correct plural label3096 scope: "milestones", label: "milestone"3097 uses the correct singular label3098 uses the correct plural label3099 scope: "notes", label: "comment"3100 uses the correct singular label3101 uses the correct plural label3102 scope: "projects", label: "project"3103 uses the correct singular label3104 uses the correct plural label3105 scope: "snippet_blobs", label: "snippet result"3106 uses the correct singular label3107 uses the correct plural label3108 scope: "snippet_titles", label: "snippet"3109 uses the correct singular label3110 uses the correct plural label3111 scope: "users", label: "user"3112 uses the correct singular label3113 uses the correct plural label3114 scope: "wiki_blobs", label: "wiki result"3115 uses the correct singular label3116 uses the correct plural label3117 search_entries_empty_message3118 returns the formatted entry message3119 search_filter_input_options3120 project3121 includes id with type3122 includes project-id3123 includes project endpoints3124 includes autocomplete=off flag3125 group3126 does not includes project-id3127 includes group endpoints3128 dashboard3129 does not include group-id and project-id3130 includes dashboard endpoints3131 search_history_storage_prefix3132 project3133 returns project full_path3134 group3135 returns group full_path3136 dashboard3137 returns dashboard3138 search_filter_link3139 renders a search filter link for the current scope3140 renders a search filter link for another scope3141 merges in the current search params and given params3142 assigns given data attributes on the list container3143Gitlab::MarkdownCache::ActiveRecord::Extension3144 an unchanged markdown field3145 should eq "`Foo`"3146 should eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Foo</code></p>"3147 should not be truthy3148 should eq 11796483149 a changed markdown field3150 should eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Bar</code></p>"3151 should eq 11796483152 when a markdown field is set repeatedly to an empty string3153 should receive refresh_markdown_cache(*(any args)) 1 time3154 when a markdown field is set repeatedly to a string which renders as empty html3155 should receive refresh_markdown_cache(*(any args)) 1 time3156 a non-markdown field changed3157 should eq "closed"3158 should eq "`Foo`"3159 should eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Foo</code></p>"3160 should eq 11796483161 version is out of date3162 should eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Bar</code></p>"3163 should eq 11796483164 when an invalidating field is changed3165 invalidates the cache when project changes3166 invalidates the cache when author changes3167 .attributes3168 excludes cache attributes that is blacklisted by default3169 #cached_html_up_to_date?3170 returns false if markdown has been changed but html has not3171 returns true if markdown has not been changed but html has3172 returns true if markdown and html have both been changed3173 returns false if the markdown field is set but the html is not3174 #refresh_markdown_cache!3175 skips saving if not persisted3176 saves the changes3177Banzai::ReferenceParser::CommitRangeParser3178 #nodes_visible_to_user3179 when the link has a data-issue attribute3180 behaves like referenced feature visibility3181 when feature is disabled3182 does not create reference3183 when feature is enabled only for team members3184 does not create reference for non member3185 creates reference for member3186 when feature is enabled3187 creates reference3188 #referenced_by3189 when the link has a data-project attribute3190 when the link as a data-commit-range attribute3191 returns an Array of commit ranges3192 returns an empty Array when the commit range could not be found3193 when the link does not have a data-commit-range attribute3194 returns an empty Array3195 when the link does not have a data-project attribute3196 returns an empty Array3197 #commit_range_ids_per_project3198 returns a Hash containing range IDs per project3199 does not add a project when the data-commit-range attribute is empty3200 #find_ranges3201 returns an Array of range objects3202 skips ranges that could not be found3203 #find_object3204 when the range has valid commits3205 returns the commit range3206 when the range does not have any valid commits3207 returns nil3208 group context3209 returns nil3210Projects::OpenIssuesCountService3211 behaves like a counter caching service3212 #count3213 caches the count3214 #refresh_cache3215 refreshes the cache3216 #delete_cache3217 removes the cache3218 #uncached_count3219 does not cache the count3220 #count3221 when user is nil3222 does not include confidential issues in the issue count3223 when user is provided3224 when user can read confidential issues3225 returns the right count with confidential issues3226 uses total_open_issues_count cache key3227 when user cannot read confidential issues3228 does not include confidential issues3229 uses public_open_issues_count cache key3230 #refresh_cache3231 when cache is empty3232 refreshes cache keys correctly3233 when cache is outdated3234 refreshes cache keys correctly3235WikiPages::UpdateService3236 #execute3237 updates the wiki page3238 executes webhooks3239 counts edit events3240 when the options are bad3241 does not count an edit event3242 reports the error3243Gitlab::CycleAnalytics::BaseEventFetcher3244 limits the rows to the max number3245Issues::ImportCsvService3246 #execute3247 invalid file3248 returns invalid file error3249 comma delimited file3250 imports CSV without errors3251 tab delimited file with error row3252 imports CSV with some error rows3253 semicolon delimited file with CRLF3254 imports CSV with a blank row3255IssuePresenter3256 #web_url3257 returns correct path3258 #subscribed?3259 returns not subscribed3260 returns subscribed3261 #issue_path3262 returns correct path3263Projects::HashedStorage::MigrateRepositoryService3264 #execute3265 works even when project validation fails3266 repository lock3267 tries to lock the repository3268 fails when a git operation is in progress3269 when repository doesnt exist on disk3270 skips the disk change but increase the version3271 when succeeds3272 renames project and wiki repositories3273 updates project to be hashed and not read-only3274 move operation is called for both repositories3275 writes project full path to .git/config3276 when one move fails3277 rollsback repositories to original name3278 when rollback fails3279 does not try to move nil repository over existing3280Ci::ArchiveTracesCronWorker3281 when a job succeeded3282 executes service3283 behaves like archives trace3284 should be exist3285 when the job finished recently3286 behaves like does not archive trace3287 should be nil3288 when a trace had already been archived3289 continues to archive live traces3290 when an unexpected exception happened during archiving3291 puts a log3292 when a job was cancelled3293 behaves like archives trace3294 should be exist3295 when a job is running3296 behaves like does not archive trace3297 should be nil3298Gitlab::Graphql::Authorization3299 Field authorizations3300 with a single permission3301 returns the protected field when user has permission3302 returns nil when user is not authorized3303 with a collection of permissions3304 returns the protected field when user has all permissions3305 returns nil when user only has one of the permissions3306 returns nil when user only has none of the permissions3307 Field authorizations when field is a built in type3308 with a single permission3309 returns the protected field when user has permission3310 returns nil when user is not authorized3311 with a collection of permissions3312 returns the protected field when user has all permissions3313 returns nil when user only has one of the permissions3314 returns nil when user only has none of the permissions3315 Type authorizations3316 with a single permission3317 returns the protected field when user has permission3318 returns nil when user is not authorized3319 with a collection of permissions3320 returns the protected field when user has all permissions3321 returns nil when user only has one of the permissions3322 returns nil when user only has none of the permissions3323 type and field authorizations together3324 returns the protected field when user has all permissions3325 returns nil when user only has one of the permissions3326 returns nil when user only has none of the permissions3327 type authorizations when applied to a relay connection3328 returns only the elements visible to the user3329 returns nil when user is not authorized3330 limiting connections with multiple objects3331 only checks permissions for the first object3332 type authorizations when applied to a basic connection3333 returns the protected field when user has permission3334 returns nil when user is not authorized3335 Authorizations on active record relations3336 renders the issues the user has access to3337 does not check access on fields that will not be rendered3338ProjectImportState3339 associations3340 should belong to project required:3341 validations3342 should validate that :project cannot be empty/falsy3343 Project import job3344 imports a project3345 #human_status_name3346 when import_state exists3347 returns the humanized status name3348 import state transitions3349 state transition: [:started] => [:finished]3350 resets last_error3351 performs housekeeping when an import of a fresh project is completed3352 does not perform housekeeping when project repository does not exist3353 does not perform housekeeping when project does not have a valid import type3354 #remove_jid3355 without an JID3356 does nothing3357 with an JID3358 unsets the JID3359Lfs::LocksFinderService3360 #execute3361 find by id3362 with results3363 returns the record3364 without results3365 returns an empty list3366 find by path3367 with results3368 returns the record3369 without results3370 returns an empty list3371 find all3372 with results3373 returns all the records3374 without results3375 returns an empty list3376 when an error is raised3377 doesn't succeed3378GitlabRoutingHelper3379 Project URL helpers3380 #project_member_path3381 should eq "/namespace967/project846/-/project_members/1175"3382 #request_access_project_members_path3383 should eq "/namespace968/project847/-/project_members/request_access"3384 #leave_project_members_path3385 should eq "/namespace969/project848/-/project_members/leave"3386 #approve_access_request_project_member_path3387 should eq "/namespace970/project849/-/project_members/1177/approve_access_request"3388 #resend_invite_project_member_path3389 should eq "/namespace971/project850/-/project_members/1179/resend_invite"3390 Group URL helpers3391 #group_members_url3392 should eq "http://test.host/groups/group209/-/group_members"3393 #group_member_path3394 should eq "/groups/group210/-/group_members/1180"3395 #request_access_group_members_path3396 should eq "/groups/group211/-/group_members/request_access"3397 #leave_group_members_path3398 should eq "/groups/group212/-/group_members/leave"3399 #approve_access_request_group_member_path3400 should eq "/groups/group213/-/group_members/1181/approve_access_request"3401 #resend_invite_group_member_path3402 should eq "/groups/group214/-/group_members/1182/resend_invite"3403 #preview_markdown_path3404 returns group preview markdown path for a group parent3405 returns project preview markdown path for a project parent3406 returns snippet preview markdown path for a personal snippet3407 returns project preview markdown path for a project snippet3408 #edit_milestone_path3409 returns group milestone edit path when given entity parent is a Group3410 returns project milestone edit path when given entity parent is not a Group3411Gitlab::Kubernetes::Helm::InitCommand3412 behaves like helm commands3413 #generate_script3414 returns appropriate command3415 on a rbac-enabled cluster3416 behaves like helm commands3417 #generate_script3418 returns appropriate command3419 #rbac?3420 rbac is enabled3421 should be truthy3422 rbac is not enabled3423 should be falsey3424 #config_map_resource3425 returns a KubeClient resource with config map content for the application3426 #pod_resource3427 rbac is enabled3428 generates a pod that uses the tiller serviceAccountName3429 rbac is not enabled3430 generates a pod that uses the default serviceAccountName3431 #service_account_resource3432 rbac is enabled3433 generates a Kubeclient resource for the tiller ServiceAccount3434 rbac is not enabled3435 generates nothing3436 #cluster_role_binding_resource3437 rbac is enabled3438 generates a Kubeclient resource for the ClusterRoleBinding for tiller3439 rbac is not enabled3440 generates nothing3441Gitlab::ExclusiveLease3442 #try_obtain3443 cannot obtain twice before the lease has expired3444 can obtain after the lease has expired3445 #renew3446 returns true when we have the existing lease3447 returns false when we dont have a lease3448 #exists?3449 returns true for an existing lease3450 returns false for a lease that does not exist3451 .get_uuid3452 gets the uuid if lease with the key associated exists3453 returns false if the lease does not exist3454 .cancel3455 can cancel a lease3456 #ttl3457 returns the TTL of the Redis key3458 returns nil when the lease does not exist3459 .reset_all!3460 removes all existing lease keys from redis3461Members::CreateService3462 adds user to members3463 adds no user to members3464 limits the number of users to 1003465 does not add an invalid member3466 does not add a member with an existing invite3467Gitlab::Sanitizers::Exif3468 #batch_clean3469 filters only jpg/tiff images3470 with image uploads3471 processes all uploads if range ID is not set3472 processes only uploads in the selected range3473 processes only uploads for the selected uploader3474 processes only uploads created since specified date3475 pauses if sleep_time is set3476 #clean3477 no dry run3478 removes exif from the image3479 ignores image without exif3480 raises an error if the exiftool fails with an error3481 dry run3482 doesn't change the image3483 #extra_tags3484 returns a list of keys for exif file3485 returns an empty list for file with only whitelisted and ignored tags3486ProjectFeaturesCompatibility3487 converts fields from 'true' to ProjectFeature::ENABLED3488 converts fields from 'false' to ProjectFeature::DISABLED3489 converts fields from true to ProjectFeature::ENABLED3490 converts fields from false to ProjectFeature::DISABLED3491 accepts private as ProjectFeature::PRIVATE3492LabelNote3493 when resource is issue3494 behaves like label note created from events3495 .from_events3496 returns system note with expected attributes3497 updates markdown cache if reference is not set yet3498 updates markdown cache if label was deleted3499 returns html note3500 returns text note for added labels3501 returns text note for removed labels3502 returns text note for added and removed labels3503 returns text note for cross-project label3504 returns text note for cross-group label3505 when resource is merge request3506 behaves like label note created from events3507 .from_events3508 returns system note with expected attributes3509 updates markdown cache if reference is not set yet3510 updates markdown cache if label was deleted3511 returns html note3512 returns text note for added labels3513 returns text note for removed labels3514 returns text note for added and removed labels3515 returns text note for cross-project label3516 returns text note for cross-group label3517Gitlab::Kubernetes::DefaultNamespace3518 #from_environment_name3519 generates a slug and passes it to #from_environment_slug3520 #from_environment_slug3521 namespace per environment is enabled3522 platform namespace is specified3523 should eq "platform-namespace-environment22"3524 cluster is unmanaged3525 should eq "platform-namespace"3526 platform namespace is blank3527 constructs a namespace from the project and environment3528 namespace per environment is disabled3529 platform namespace is specified3530 should eq "platform-namespace"3531 platform namespace is blank3532 constructs a namespace from the project and environment3533AwardEmojiHelper3534 .toggle_award_url3535 note on personal snippet3536 returns correct url3537 note on project item3538 returns correct url3539 personal snippet3540 returns correct url3541 merge request3542 returns correct url3543 issue3544 returns correct url3545RepositoryImportWorker3546 modules3547 includes ProjectImportOptions3548 #perform3549 when worker was reset without cleanup3550 imports the project successfully3551 when the import was successful3552 imports a project3553 when the import has failed3554 hide the credentials that were used in the import URL3555 updates the error on Import/Export3556 when using an asynchronous importer3557 does not mark the import process as finished3558projects/diffs/_stats.html.haml3559 when the commit contains several changes3560 uses plural for additions3561 uses plural for deletions3562 when the commit contains no addition and no deletions3563 uses plural for additions3564 uses plural for deletions3565 when the commit contains exactly one addition and one deletion3566 uses singular for additions3567 uses singular for deletions3568create_tokens3569 setting secret keys3570 when none of the secrets exist3571 generates different hashes for secret_key_base, otp_key_base, and db_key_base3572 generates an RSA key for openid_connect_signing_key3573 warns about the secrets to add to secrets.yml3574 writes the secrets to secrets.yml3575 does not write a .secret file3576 when the other secrets all exist3577 when secret_key_base exists in the environment and secrets.yml3578 does not issue a warning3579 uses the environment variable3580 does not update secrets.yml3581 when secret_key_base and otp_key_base exist3582 does not write any files3583 sets the keys to the values from the environment and secrets.yml3584 deletes the .secret file3585 when secret_key_base and otp_key_base do not exist3586 uses the file secret3587 keeps the other secrets as they were3588 warns about the missing secrets3589 deletes the .secret file3590 when db_key_base is blank but exists in secrets.yml3591 warns about updating db_key_base3592 warns about the blank value existing in secrets.yml and exits3593 does not update secrets.yml3594IssueTrackerService3595 Validations3596 only one issue tracker per project3597 when service is changed manually by user3598 executes the validation3599 when service is changed internally3600 does not execute the validation3601UserAgentDetail3602 .submittable?3603 is submittable when not already submitted3604 is not submittable when already submitted3605 .valid?3606 is valid with a subject3607 is invalid without a subject3608Boards::ListService3609 #execute3610 when board parent is a project3611 behaves like boards list service3612 returns parent boards3613 when parent does not have a board3614 creates a new parent board3615 delegates the parent board creation to Boards::CreateService3616 when parent has a board3617 does not create a new board3618 when board parent is a group3619 behaves like boards list service3620 returns parent boards3621 when parent does not have a board3622 creates a new parent board3623 delegates the parent board creation to Boards::CreateService3624 when parent has a board3625 does not create a new board3626WikiPages::DestroyService3627 #execute3628 executes webhooks3629 increments the delete count3630 does not increment the delete count if the deletion failed3631Gitlab::VisibilityLevelChecker3632 #level_restricted?3633 when visibility level is allowed3634 returns false with nil for visibility level3635 when visibility level is restricted3636 returns true and visibility name3637 overridden visibility3638 when restricted3639 returns true and visibility name3640 when misspelled3641 returns false with nil for visibility level3642 when import_data is missing3643 returns false with nil for visibility level3644MergeRequests::MigrateExternalDiffsService3645 .enqueue!3646 enqueues nothing if external diffs are disabled3647 enqueues eligible in-database diffs if external diffs are enabled3648 #execute3649 migrates an in-database diff to the external store3650WebHookLog3651 should belong to web_hook required:3652 should serialize :request_headers class_name => Hash3653 should serialize :request_data class_name => Hash3654 should serialize :response_headers class_name => Hash3655 should validate that :web_hook cannot be empty/falsy3656 .recent3657 does not return web hook logs that are too old3658 returns the web hook logs in descending order3659 #success?3660 2xx3661 should be truthy3662 not 2xx3663 should be falsey3664 internal erorr3665 should be falsey3666Gitlab::BackgroundMigration::AddMergeRequestDiffCommitsCount3667NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3668NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3669NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3670NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping3671 #perform3672 migrates diffs that have no commits3673 skips diffs that have commits_count already set3674 migrates multiple diffs to the correct values3675NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping3676NOTICE: table "design_management_designs" does not exist, skipping3677NOTICE: table "design_management_designs_versions" does not exist, skipping3678NOTICE: table "design_management_versions" does not exist, skipping3679NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3680NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3681NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3682NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3683Gitlab::GithubImport::StageMethods3684 #perform3685 returns if no project could be found3686 imports the data when the project exists3687 #try_import3688 imports the project3689 reschedules the worker if RateLimitError was raised3690 #find_project3691 returns a Project for an existing ID3692 returns nil for a project that failed importing3693 returns nil for a non-existing project ID3694PaginatedDiffEntity3695 exposes diff_files3696 exposes pagination data3697MigrateManagedClustersWithNoTokenToUnmanaged3698NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3699NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3700NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3701== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrating =====3702== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrated (0.0343s) 3703 marks the cluster as unmanaged3704 cluster is not project type3705== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrating =====3706== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrated (0.0034s) 3707 does not update the cluster3708 kubernetes namespace has a service account token3709== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrating =====3710== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrated (0.0033s) 3711 does not update the cluster3712 cluster was created after the cutoff3713== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrating =====3714== 20190613231640 MigrateManagedClustersWithNoTokenToUnmanaged: migrated (0.0034s) 3715 does not update the cluster3716NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3717NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3718NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3719Gitlab::Ci::Status::Build::Preparing3720 #illustration3721 should include :image, :size, :title, and :content3722 .matches?3723 when build is preparing3724 is a correct match3725 when build is not preparing3726 does not match3727NamespaceFileUploader3728 behaves like builds correct paths3729 #store_dir3730 behaves like matches the method pattern3731 should match /uploads\/-\/system\/namespace\/\d+/3732 #cache_dir3733 behaves like matches the method pattern3734 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3735 #work_dir3736 behaves like matches the method pattern3737 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3738 #upload_path3739 behaves like matches the method pattern3740 should match /\h+\/\S+/3741 #relative_path3742 is relative (PENDING: Path not set, skipping.)3743 .absolute_path3744 behaves like matches the method pattern3745 should match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/namespace\/\d+\/(?-mix:\h+\/\S+)/3746 .base_dir3747 behaves like matches the method pattern3748 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3749 object_store is REMOTE3750 behaves like builds correct paths3751 #store_dir3752 behaves like matches the method pattern3753 should match /namespace\/\d+\/\h+/3754 #cache_dir3755 behaves like matches the method pattern3756 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3757 #work_dir3758 behaves like matches the method pattern3759 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3760 #upload_path3761 behaves like matches the method pattern3762 should match /\h+\/\S+/3763 #relative_path3764 is relative (PENDING: Path not set, skipping.)3765 .absolute_path3766 behaves like matches the method pattern3767 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3768 .base_dir3769 behaves like matches the method pattern3770 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3771 .base_dir3772 returns local storage base_dir without store param3773 returns local storage base_dir when store param is Store::LOCAL3774 returns remote base_dir when store param is Store::REMOTE3775 #workhorse_local_upload_path3776 returns the correct path in uploads directory3777 #migrate!3778 behaves like migrates3779 returns corresponding file type3780 does nothing when migrating to the current store3781 migrate to the specified store3782 removes the original file after the migration3783 can access to the original file during migration3784 when migrate! is not occupied by another process3785 executes migrate!3786 executes use_file3787 when migrate! is occupied by another process3788 does not execute migrate!3789 does not execute use_file3790 migration is unsuccessful3791 when the store is not supported3792 does not update the object_store3793 does not delete the original file3794 upon a fog failure3795 does not update the object_store3796 does not delete the original file3797 upon a database failure3798 does not update the object_store3799 does not delete the original file3800 behaves like migrates3801 returns corresponding file type3802 does nothing when migrating to the current store3803 migrate to the specified store3804 removes the original file after the migration3805 can access to the original file during migration3806 when migrate! is not occupied by another process3807 executes migrate!3808 executes use_file3809 when migrate! is occupied by another process3810 does not execute migrate!3811 does not execute use_file3812 migration is unsuccessful3813 when the store is not supported3814 does not update the object_store3815 does not delete the original file3816 upon a fog failure3817 does not update the object_store3818 does not delete the original file3819 upon a database failure3820 does not update the object_store3821 does not delete the original file3822 copy_to3823 files are stored locally3824 generates a new secret3825 creates new upload correctly3826 copies the file3827 copies the file to the correct location3828 files are stored remotely3829 generates a new secret3830 creates new upload correctly3831 copies the file3832 copies the file to the correct location3833Gitlab::Ci::Build::Prerequisite::Factory3834 .for_build3835 prerequisite is unmet3836 should eq [#<InstanceDouble(Gitlab::Ci::Build::Prerequisite::KubernetesNamespace) (anonymous)>]3837 prerequisite is met3838 should be empty3839ProjectImportOptions3840 sets default retry limit3841 sets default status expiration3842 .sidekiq_retries_exhausted38432019-10-15T08:49:54.855Z 91 TID-gohcudbg3 WARN: Failed with [1074, nil, nil]: 3844 marks fork as failed38452019-10-15T08:49:55.047Z 91 TID-gohcudbg3 WARN: Failed with [1075, nil, nil]: 3846 logs the appropriate error message for forked projects38472019-10-15T08:49:55.226Z 91 TID-gohcudbg3 WARN: Failed with [1076, nil, nil]: 3848 logs the appropriate error message for forked projects3849 when project does not have import_state3850 raises an error3851Gitlab::LegacyGithubImport::WikiFormatter3852 #disk_path3853 appends .wiki to disk path3854 #full_path3855 appends .wiki to project path3856 #import_url3857 returns URL of the wiki repository3858Gitlab::Metrics::Instrumentation3859 .series3860 returns a String3861 .configure3862 yields self3863 .instrument_method3864 with metrics enabled3865 instruments the Class3866 defines a proxy method3867 calls the instrumented method with the correct arguments3868 tracks the call duration upon calling the method3869 does not track method calls below a given duration threshold3870 generates a method with the correct arity when using methods without arguments3871 when a module is instrumented multiple times3872 calls the instrumented method with the correct arguments3873 with metrics disabled3874 does not instrument the method3875 .instrument_instance_method3876 with metrics enabled3877 instruments instances of the Class3878 defines a proxy method3879 calls the instrumented method with the correct arguments3880 tracks the call duration upon calling the method3881 does not track method calls below a given duration threshold3882 with metrics disabled3883 does not instrument the method3884 .instrument_class_hierarchy3885 recursively instruments a class hierarchy3886 does not instrument the root module3887 .instrument_methods3888 instruments all public class methods3889 instruments all protected class methods3890 instruments all private instance methods3891 only instruments methods directly defined in the module3892 can take a block to determine if a method should be instrumented3893 .instrument_instance_methods3894 instruments all public instance methods3895 instruments all protected instance methods3896 instruments all private instance methods3897 only instruments methods directly defined in the module3898 can take a block to determine if a method should be instrumented3899Gitlab::Graphql::Loaders::PipelineForShaLoader3900 #find_last3901 batch-resolves latest pipeline3902Prometheus::AdapterService3903 #prometheus_adapter3904 prometheus service can execute queries3905 return prometheus service as prometheus adapter3906 prometheus service can't execute queries3907 with cluster with prometheus not available3908 returns nil3909 with cluster with prometheus available3910 returns application handling all environments3911 with cluster without prometheus installed3912 returns nil3913BlobViewer::Base3914 .can_render?3915 when the extension is supported3916 when the binaryness matches3917 returns true3918 when the binaryness does not match3919 returns false3920 when the file type is supported3921 when the binaryness matches3922 returns true3923 when the binaryness does not match3924 returns false3925 when the extension and file type are not supported3926 returns false3927 #collapsed?3928 when the blob size is larger than the collapse limit3929 returns true3930 when the blob size is smaller than the collapse limit3931 returns false3932 #too_large?3933 when the blob size is larger than the size limit3934 returns true3935 when the blob size is smaller than the size limit3936 returns false3937 #render_error3938 when the blob is expanded3939 when the blob size is larger than the size limit3940 returns :too_large3941 when the blob size is smaller than the size limit3942 returns nil3943 when not expanded3944 when the blob size is larger than the collapse limit3945 returns :collapsed3946 when the blob size is smaller than the collapse limit3947 returns nil3948projects/pipeline_schedules/_pipeline_schedule3949 taking ownership of schedule3950 when non-owner is signed in3951 non-owner can take ownership of pipeline3952 when owner is signed in3953 owner cannot take ownership of pipeline3954Gitlab::CycleAnalytics::ProductionEventFetcher3955 behaves like default query config3956 has the stage attribute3957 has the projection attributes3958Gitlab::Ci::Status::Build::Erased3959 #illustration3960 should include :image, :size, and :title3961 .matches?3962 when build is erased3963 is a correct match3964 when build is not erased3965 does not match3966Gitlab::Checks::ProjectCreated3967 .fetch_message3968 with a project created message queue3969 returns project created message3970 deletes the project created message from redis3971 with no project created message queue3972 returns nil3973 #add_message3974 queues a project created message3975 handles anonymous push3976SetIssueIdForAllVersions3977NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3978NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3979NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3980== 20190715043954 SetIssueIdForAllVersions: migrating =========================3981-- execute("UPDATE design_management_versions as versions SET issue_id = (\n SELECT design_management_designs.issue_id\n FROM design_management_designs\n INNER JOIN design_management_designs_versions ON design_management_designs.id = design_management_designs_versions.design_id\n WHERE design_management_designs_versions.version_id = versions.id\n LIMIT 1\n )")3982 -> 0.0014s3983== 20190715043954 SetIssueIdForAllVersions: migrated (0.0018s) ================3984 correctly sets issue_id3985NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3986NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3987NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3988EnqueueResetMergeStatus3989NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3990NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3991NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3992== 20190528180441 EnqueueResetMergeStatus: migrating ==========================3993-- Scheduling `ResetMergeStatus` jobs3994== 20190528180441 EnqueueResetMergeStatus: migrated (0.0529s) =================3995 correctly schedules background migrations3996NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3997NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3998NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3999NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4000MailScheduler::IssueDueWorker4001 #perform4002 sends emails for open issues due tomorrow in the project specified4003HashedStorage::MigratorWorker4004 #perform4005 delegates to MigratorService40062019-10-15T08:50:18.502Z 91 TID-gohcudbg3 INFO: Skipped attachments move from '/builds/gitlab-org/gitlab/tmp/tests/public/uploads/namespace1097/project976' to '/builds/gitlab-org/gitlab/tmp/tests/public/uploads/@hashed/33/0e/330e14d4ae80612334d94c488d29eb469626b476864abdeb5c1bd261db461c50', source path doesn't exist or is not a directory (PROJECT_ID=1099)40072019-10-15T08:50:18.577Z 91 TID-gohcudbg3 INFO: Skipped attachments move from '/builds/gitlab-org/gitlab/tmp/tests/public/uploads/namespace1098/project977' to '/builds/gitlab-org/gitlab/tmp/tests/public/uploads/@hashed/ab/98/ab9828ca390581b72629069049793ba3c99bb8e5e9e7b97a55c71957e04df9a3', source path doesn't exist or is not a directory (PROJECT_ID=1100)4008 migrates projects in the specified range4009Projects::ContainerRepository::CleanupTagsService4010 #execute4011 when no params are specified4012 does not remove anything4013 when regex matching everything is specified4014 does remove B* and C4015 when regex matching specific tags is used4016 does remove C and D4017 when removing a tagged image that is used by another tag4018 does not remove the tag4019 when removing keeping only 34020 does remove C as it is oldest4021 when removing older than 1 day4022 does remove B* and C as they are older than 1 day4023 when combining all parameters4024 does remove B* and C4025RemoveEmptyExternUidAuth0Identities4026NOTICE: 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, skipping4029NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping4030== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrating ==============4031== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrated (0.0092s) =====4032 leaves the correct auth0 identity4033== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrating ==============4034== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrated (0.0103s) =====4035 leaves the correct github identity4036NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping4037NOTICE: table "design_management_designs" does not exist, skipping4038NOTICE: table "design_management_designs_versions" does not exist, skipping4039NOTICE: table "design_management_versions" does not exist, skipping4040NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4041NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4042NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4043NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4044ImportIssuesCsvWorker4045 #perform4046 calls #execute on Issues::ImportCsvService and destroys upload4047PivotaltrackerService4048 Associations4049 should belong to project required:4050 should have one service_hook4051 Validations4052 when service is active4053 should validate that :token cannot be empty/falsy4054 when service is inactive4055 should not validate that :token cannot be empty/falsy4056 Execute4057 posts correct message4058 when allowed branches is specified4059 posts message if branch is in the list4060 does not post message if branch is not in the list4061BoardsHelper4062 #build_issue_link_base4063 project board4064 returns correct path for project board4065 group board4066 returns correct path for base group4067 returns correct path for subgroup4068 #board_data4069 returns a board_lists_path as lists_endpoint4070 #current_board_json4071 can serialise with a basic set of attributes4072Gitlab::PhabricatorImport::ProjectCreator4073 #execute4074 creates a project correctly and schedule an import4075 when import params are missing4076 returns nil4077 when import params are invalid4078 returns an unpersisted project4079AssureCommitsCountForMergeRequestDiff4080NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4081NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4082NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4083 when there are still unmigrated commit_counts afterwards4084== 20180425131009 AssureCommitsCountForMergeRequestDiff: migrating ============4085DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gitlab-org/gitlab/db/migrate/20180425131009_assure_commits_count_for_merge_request_diff.rb:18)4086== 20180425131009 AssureCommitsCountForMergeRequestDiff: migrated (0.0145s) ===4087 migrates commit_counts sequentially in batches4088NOTICE: table "design_management_designs" does not exist, skipping4089NOTICE: table "design_management_designs_versions" does not exist, skipping4090NOTICE: table "design_management_versions" does not exist, skipping4091NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4092NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4093NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4094NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4095Projects::ContainerRepository::DeleteTagsService4096 #execute4097 without permissions4098 should include {:status => :error}4099 with permissions4100 when no params are specified4101 does not remove anything4102 with empty tags4103 does not remove anything4104 with dummy tags disabled4105 deletes tags one by one4106 with dummy tags enabled4107 deletes the tags using a dummy image4108Gitlab::Graphql::Representation::TreeEntry4109 .decorate4110 returns NilClass when given nil4111 returns array of TreeEntry4112ProtectedBranches::DestroyService4113 #execute4114 destroys a protected branch4115 when a policy restricts rule deletion4116 prevents deletion of the protected branch rule4117Gitlab::Import::DatabaseHelpers4118 .insert_and_return_id4119 returns the ID returned by the query4120Gitlab::Ci::Pipeline::Chain::Skip4121 when pipeline has been skipped by a user4122 breaks the chain4123 skips the pipeline4124 when pipeline has not been skipped4125 does not break the chain4126 does not skip a pipeline chain4127 when [ci skip] should be ignored4128 does not break the chain4129 when pipeline should be skipped but not persisted4130 breaks the chain4131 does not skip pipeline4132PublicUrlValidator4133 #validate4134 with no options4135 allows http,https schemes by default4136 checks that the url structure is valid4137 with schemes4138 allows urls with the defined schemes4139 add error if the url scheme does not match the selected ones4140 by default4141 blocks urls pointing to localhost4142 blocks urls pointing to the local network4143 when local requests are allowed4144 does not block urls pointing to localhost4145 does not block urls pointing to the local network4146RuboCop::Cop::Graphql::AuthorizeTypes4147 when NOT in a type folder4148 does not add an offense even though there is no authorize call4149 when in a type folder4150 adds an offense when there is no authorize call4151 does not add an offense for classes that have an authorize call4152 does not add an offense for classes that only have an authorize call4153 does not add an offense for base types4154Gitlab::Ci::Status::Pipeline::Blocked4155 #text4156 overrides status text4157 #label4158 overrides status label4159 .matches?4160 when pipeline is blocked4161 is a correct match4162 when pipeline is not blocked4163 does not match4164Gitlab::Graphql::Representation::SubmoduleTreeEntry4165 .decorate4166 returns array of SubmoduleTreeEntry4167Gitlab::SidekiqMiddleware::MemoryKiller4168 when MAX_RSS is set to 04169 does nothing4170 when MAX_RSS is exceeded4171 sends the TSTP, TERM and KILL signals at expected times41722019-10-15T08:51:13.650Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>nil, :message=>"Sidekiq worker PID-999 current RSS 10240 exceeds maximum RSS 5120 after finishing job ProjectCacheWorker JID-123"}41732019-10-15T08:51:13.650Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>nil, :message=>"Sidekiq worker PID-999 will stop fetching new jobs in 900 seconds, and will be shut down 30 seconds later"}41742019-10-15T08:51:13.650Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGTSTP", :message=>"waiting 900 seconds before sending Sidekiq worker PID-999 SIGTSTP (stop fetching new jobs)"}41752019-10-15T08:51:13.651Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGTSTP", :message=>"sending Sidekiq worker PID-999 SIGTSTP (stop fetching new jobs)"}41762019-10-15T08:51:13.651Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGTERM", :message=>"waiting 30 seconds before sending Sidekiq worker PID-999 SIGTERM (gracefully shut down)"}41772019-10-15T08:51:13.651Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGTERM", :message=>"sending Sidekiq worker PID-999 SIGTERM (gracefully shut down)"}41782019-10-15T08:51:13.652Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGKILL", :message=>"waiting 10 seconds before sending Sidekiq worker PGRP-999 SIGKILL (die)"}41792019-10-15T08:51:13.652Z 91 TID-gohhnwj3f WARN: {:class=>"ProjectCacheWorker", :pid=>999, :signal=>"SIGKILL", :message=>"sending Sidekiq worker PGRP-999 SIGKILL (die)"}4180 sends TSTP and TERM to the pid, but KILL to the pgroup, when running as process leader4181 when MAX_RSS is not exceeded4182 does nothing4183OmniAuth::Strategies::Jwt4184 #decoded4185 when the RS256 algorithm is used4186 decodes the user information4187 when the RS384 algorithm is used4188 decodes the user information4189 when the RS512 algorithm is used4190 decodes the user information4191 when the ES256 algorithm is used4192 decodes the user information4193 when the ES384 algorithm is used4194 decodes the user information4195 when the ES512 algorithm is used4196 decodes the user information4197 when the HS256 algorithm is used4198 decodes the user information4199 when the HS384 algorithm is used4200 decodes the user information4201 when the HS512 algorithm is used4202 decodes the user information4203 required claims is missing4204 raises error4205 when valid_within is specified but iat attribute is missing in response4206 raises error4207 when timestamp claim is too skewed from present4208 raises error4209CommitsHelper4210 commit_author_link4211 escapes the author email4212 escapes the author name4213 commit_committer_link4214 escapes the committer email4215 escapes the committer name4216 #view_on_environment_button4217 returns a link tag linking to the file in the environment4218Projects::ForksCountService4219 behaves like a counter caching service4220 #count4221 caches the count4222 #refresh_cache4223 refreshes the cache4224 #delete_cache4225 removes the cache4226 #uncached_count4227 does not cache the count4228 #count4229 returns the number of forks4230ProtectedTags::CreateService4231 #execute4232 creates a new protected tag4233Gitlab::Ci::Config::Entry::Job4234 .nodes4235 when filtering all the entry/node names4236 should contain exactly :before_script, :script, :stage, :type, :after_script, :cache, :image, :services, :only, :except, :rules, :variables, :artifacts, :environment, :coverage, and :retry4237 .matching?4238 when config is not a hash4239 should be falsey4240 when config is a regular job4241 should be truthy4242 when config is a bridge job4243 should be falsey4244 when config is a hidden job4245 should be falsey4246 validations4247 when entry config value is correct4248 #valid?4249 is valid4250 when job name is empty4251 reports error4252 when delayed job4253 when start_in is specified4254 should be valid4255 when has needs4256 should be valid4257 when has dependencies4258 should be valid4259 when entry value is not correct4260 incorrect config value type4261 #errors4262 reports error about a config type4263 when config is empty4264 #valid4265 is invalid4266 when unknown keys detected4267 #valid4268 is not valid4269 when script is not provided4270 returns error about missing script entry4271 when extends key is not a string4272 returns error about wrong value type4273 when parallel value is not correct4274 when it is not a numeric value4275 returns error about invalid type4276 when it is lower than two4277 returns error about value too low4278 when it is bigger than 504279 returns error about value too high4280 when it is not an integer4281 returns error about wrong value4282 when it uses both "when:" and "rules:"4283 returns an error about when: being combined with rules4284 when delayed job4285 when start_in is specified4286 returns error about invalid type4287 when start_in is empty4288 returns error about invalid type4289 when start_in is not formatted as a duration4290 returns error about invalid type4291 when start_in is longer than one day4292 returns error about exceeding the limit4293 when only: is used with rules:4294 returns error about mixing only: with rules:4295 and only: is blank4296 returns error about mixing only: with rules:4297 and rules: is blank4298 returns error about mixing only: with rules:4299 when except: is used with rules:4300 returns error about mixing except: with rules:4301 and except: is blank4302 returns error about mixing except: with rules:4303 and rules: is blank4304 returns error about mixing except: with rules:4305 when only: and except: are both used with rules:4306 returns errors about mixing both only: and except: with rules:4307 when only: and except: as both blank4308 returns errors about mixing both only: and except: with rules:4309 when rules: is blank4310 returns errors about mixing both only: and except: with rules:4311 when start_in specified without delayed specification4312 returns error about invalid type4313 when has dependencies4314 that are not a array of strings4315 returns error about invalid type4316 when has needs4317 that are not a array of strings4318 returns error about invalid type4319 when have dependencies that are not subset of needs4320 returns error about invalid data4321 when stage: is missing4322 returns error about invalid data4323 when timeout value is not correct4324 when it is higher than instance wide timeout4325 returns error about value too high4326 when it is not a duration4327 returns error about wrong value4328 when timeout value is correct4329 returns correct timeout4330 #relevant?4331 is a relevant entry4332 #compose!4333 when job config overrides default config4334 overrides default config4335 when job config does not override default config4336 uses config from default entry4337 when composed4338 #value4339 when entry is correct4340 returns correct value4341 #manual_action?4342 when job is a manual action4343 is a manual action4344 when job is not a manual action4345 is not a manual action4346 #delayed?4347 when job is a delayed4348 is a delayed4349 when job is not a delayed4350 is not a delayed4351 #ignored?4352 when job is a manual action4353 when it is not specified if job is allowed to fail4354 is an ignored job4355 when job is allowed to fail4356 is an ignored job4357 when job is not allowed to fail4358 is not an ignored job4359 when job is not a manual action4360 when it is not specified if job is allowed to fail4361 is not an ignored job4362 when job is allowed to fail4363 is an ignored job4364 when job is not allowed to fail4365 is not an ignored job4366Gitlab::LegacyGithubImport::UserFormatter4367 #gitlab_id4368 returns nil when GitHub user is not a GitLab user4369 when GitHub user is a GitLab user4370 return GitLab user id when user associated their account with GitHub4371 returns GitLab user id when user primary email matches GitHub email4372 returns GitLab user id when any of user linked emails matches GitHub email4373Gitlab::GithubImport::Stage::ImportPullRequestsWorker4374 #import4375 imports all the pull requests4376Gitlab::TaskHelpers4377 #checkout_or_clone_version4378 checkout the version and reset to it4379 with a branch version4380 checkout the version and reset to it with a branch name4381 target_dir doesn't exist4382 clones the repo4383 target_dir exists4384 doesn't clone the repository4385 #clone_repo4386 clones the repo in the target dir4387 #checkout_version4388 clones the repo in the target dir4389 #run_command4390 runs command and return the output4391 returns empty string when command doesnt exist4392 #run_command!4393 runs command and return the output4394 returns and exception when command exit with non zero code4395Gitlab::FakeApplicationSettings4396 wraps OpenStruct variables properly4397 defines predicate methods4398 does not define a predicate method4399 does not override an existing predicate method4400 behaves like application settings examples4401 predicate method changes when value is updated4402 restricted signup domains4403 behaves like string of domains4404 sets single domain4405 sets multiple domains with spaces4406 sets multiple domains with newlines and a space4407 sets multiple domains with commas4408 sets multiple domains with semicolon4409 sets multiple domains with mixture of everything4410 removes duplicates4411 does not fail with garbage values4412 does not raise error with nil4413 blacklisted signup domains4414 sets multiple domain with file4415 behaves like string of domains4416 sets single domain4417 sets multiple domains with spaces4418 sets multiple domains with newlines and a space4419 sets multiple domains with commas4420 sets multiple domains with semicolon4421 sets multiple domains with mixture of everything4422 removes duplicates4423 does not fail with garbage values4424 does not raise error with nil4425 outbound_local_requests_whitelist4426 clears outbound_local_requests_whitelist_arrays memoization4427 behaves like string of domains4428 sets single domain4429 sets multiple domains with spaces4430 sets multiple domains with newlines and a space4431 sets multiple domains with commas4432 sets multiple domains with semicolon4433 sets multiple domains with mixture of everything4434 removes duplicates4435 does not fail with garbage values4436 does not raise error with nil4437 outbound_local_requests_whitelist_arrays4438 separates the IPs and domains4439 add_to_outbound_local_requests_whitelist4440 adds entry to outbound_local_requests_whitelist4441 clears outbound_local_requests_whitelist_arrays memoization4442 does not raise error with nil4443 does not raise error with nil4444 usage ping settings4445 when the usage ping is disabled in gitlab.yml4446 does not allow the usage ping to be configured4447 when the usage ping is disabled in the DB4448 returns false for usage_ping_enabled4449 when the usage ping is enabled in the DB4450 returns false for usage_ping_enabled4451 when the usage ping is enabled in gitlab.yml4452 allows the usage ping to be configured4453 when the usage ping is disabled in the DB4454 returns false for usage_ping_enabled4455 when the usage ping is enabled in the DB4456 returns true for usage_ping_enabled4457 #allowed_key_types4458 includes all key types by default4459 excludes disabled key types4460 #key_restriction_for4461 returns the restriction value for recognised types4462 allows types to be passed as a string4463 returns forbidden for unrecognised type4464 #allow_signup?4465 returns true4466 returns false if signup is disabled4467 returns false if password authentication is disabled for the web interface4468 #pick_repository_storage4469 uses Array#sample to pick a random storage4470 #user_default_internal_regex_enabled?4471 user_default_external: false, user_default_internal_regex: nil, result: false4472 should eq false4473 user_default_external: false, user_default_internal_regex: "", result: false4474 should eq false4475 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false4476 should eq false4477 user_default_external: true, user_default_internal_regex: "", result: false4478 should eq false4479 user_default_external: true, user_default_internal_regex: nil, result: false4480 should eq false4481 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true4482 should eq true4483 #archive_builds_older_than4484 when the archive_builds_in_seconds is set4485 should be within 60 of 2019-10-15 07:51:18 UTC4486 when the archive_builds_in_seconds is set4487 should be nil4488 #commit_email_hostname4489 when the value is provided4490 returns the provided value4491 when the value is not provided4492 returns the default from the class4493Banzai::Filter::ExternalLinkFilter4494 ignores elements without an href attribute4495 ignores non-HTTP(S) links4496 skips internal links4497 for root links on document4498 behaves like an external link with rel attribute4499 adds rel="nofollow" to external links4500 adds rel="noreferrer" to external links4501 adds rel="noopener" to external links4502 for nested links on document4503 behaves like an external link with rel attribute4504 adds rel="nofollow" to external links4505 adds rel="noreferrer" to external links4506 adds rel="noopener" to external links4507 for invalid urls4508 adds rel and target attributes to broken hrefs4509 adds rel and target to improperly formatted mailtos4510 adds rel and target to improperly formatted autolinks4511 for links with a username4512 with a valid username4513 behaves like an external link with rel attribute4514 adds rel="nofollow" to external links4515 adds rel="noreferrer" to external links4516 adds rel="noopener" to external links4517 with an impersonated username4518 behaves like an external link with rel attribute4519 adds rel="nofollow" to external links4520 adds rel="noreferrer" to external links4521 adds rel="noopener" to external links4522 for non-lowercase scheme links4523 skips internal links4524 skips relative links4525 with http4526 behaves like an external link with rel attribute4527 adds rel="nofollow" to external links4528 adds rel="noreferrer" to external links4529 adds rel="noopener" to external links4530 with https4531 behaves like an external link with rel attribute4532 adds rel="nofollow" to external links4533 adds rel="noreferrer" to external links4534 adds rel="noopener" to external links4535 for protocol-relative links4536 behaves like an external link with rel attribute4537 adds rel="nofollow" to external links4538 adds rel="noreferrer" to external links4539 adds rel="noopener" to external links4540 links with RTLO character4541 escapes RTLO in link text4542 does not mangle the link text4543 behaves like an external link with rel attribute4544 adds rel="nofollow" to external links4545 adds rel="noreferrer" to external links4546 adds rel="noopener" to external links4547 for generated autolinks4548 with an IDN character4549 does not change the link text4550 uses punycode for emails4551 behaves like an external link with rel attribute4552 adds rel="nofollow" to external links4553 adds rel="noreferrer" to external links4554 adds rel="noopener" to external links4555 autolinked image4556 adds a toolip with punycode4557 behaves like an external link with rel attribute4558 adds rel="nofollow" to external links4559 adds rel="noreferrer" to external links4560 adds rel="noopener" to external links4561 for links that look malicious4562 with an IDN character4563 adds a toolip with punycode4564 with RTLO character4565 adds a toolip with punycode4566instrument_classes4567 can autoload and instrument all files4568RuboCop::Cop::Gitlab::RailsLogger4569 flags the use of Rails.logger.error with a constant receiver4570 flags the use of Rails.logger.info with a constant receiver4571 flags the use of Rails.logger.warn with a constant receiver4572 does not flag the use of Rails.logger with a constant that is not Rails4573 does not flag the use of logger with a send receiver4574Import metrics on development seed4575 imports all prometheus metrics4576UserFinder4577 #find_by_id4578 when the user exists4579 returns the user4580 when the user exists (id as string)4581 returns the user4582 when the user does not exist4583 returns nil4584 #find_by_username4585 when the user exists4586 returns the user4587 when the user does not exist4588 returns nil4589 #find_by_id_or_username4590 when the user exists (id)4591 returns the user4592 when the user exists (id as string)4593 returns the user4594 when the user exists (username)4595 returns the user4596 when the user does not exist (username)4597 returns nil4598 when the user does not exist4599 returns nil4600 #find_by_id!4601 when the user exists4602 returns the user4603 when the user exists (id as string)4604 returns the user4605 when the user does not exist4606 raises ActiveRecord::RecordNotFound4607 #find_by_username!4608 when the user exists4609 returns the user4610 when the user does not exist4611 raises ActiveRecord::RecordNotFound4612 #find_by_id_or_username!4613 when the user exists (id)4614 returns the user4615 when the user exists (id as string)4616 returns the user4617 when the user exists (username)4618 returns the user4619 when the user does not exist (username)4620 raises ActiveRecord::RecordNotFound4621 when the user does not exist4622 raises ActiveRecord::RecordNotFound4623 #find_by_ssh_key_id4624 returns the user when passing the ssh key id4625 returns the user when passing the ssh key id (string)4626 returns nil when the id does not exist4627Gitlab::HTTPConnectionAdapter4628 #connection4629 when local requests are not allowed4630 sets up the connection4631 raises error when it is a request to local address4632 raises error when it is a request to localhost address4633 when port different from URL scheme is used4634 sets up the addr_port accordingly4635 when DNS rebinding protection is disabled4636 sets up the connection4637 when http(s) environment variable is set4638 sets up the connection4639 when local requests are allowed4640 sets up the connection4641 sets up the connection when it is a local network4642 sets up the connection when it is localhost4643dashboard/projects/_blank_state_admin_welcome.html.haml4644 links to new group path4645Mattermost::Team4646 #all4647 for valid request4648 returns teams4649 for error message4650 raises an error with message4651 #create4652 for a new team4653 returns the new team4654 for existing team4655 raises an error with message4656 #delete4657 for an existing team4658 returns team status4659 for an unknown team4660 raises an error with message4661Gitlab::Favicon4662 .main4663 defaults to favicon.png4664 has blue favicon for development4665 has yellow favicon for canary4666 uses the custom favicon if a favicon appearance is present4667 asset host4668 returns a relative url when the asset host is not configured4669 returns a full url when the asset host is configured4670 .status_overlay4671 returns the overlay for the status4672 .available_status_names4673 returns the available status names4674DeployKeys::CreateService4675 creates a deploy key4676Gitlab::SQL::Pattern4677 .to_pattern4678 when a query is shorter than 3 chars4679 returns exact matching pattern4680 and ignore_minimum_char_limit is true4681 returns partial matching pattern4682 when a query with a escape character is shorter than 3 chars4683 returns sanitized exact matching pattern4684 and ignore_minimum_char_limit is true4685 returns sanitized partial matching pattern4686 when a query is equal to 3 chars4687 returns partial matching pattern4688 when a query with a escape character is equal to 3 chars4689 returns partial matching pattern4690 when a query is longer than 3 chars4691 returns partial matching pattern4692 when a query with a escape character is longer than 3 chars4693 returns sanitized partial matching pattern4694 .select_fuzzy_words4695 with a word equal to 3 chars4696 returns array cotaining a word4697 with a word shorter than 3 chars4698 returns empty array4699 with two words both equal to 3 chars4700 returns array containing two words4701 with two words divided by two spaces both equal to 3 chars4702 returns array containing two words4703 with two words equal to 3 chars and shorter than 3 chars4704 returns array containing a word4705 with a multi-word surrounded by double quote4706 returns array containing a multi-word4707 with a multi-word surrounded by double quote and two words4708 returns array containing a multi-word and tow words4709 with a multi-word surrounded by double quote missing a spece before the first double quote4710 returns array containing two words with double quote4711 with a multi-word surrounded by double quote missing a spece after the second double quote4712 returns array containing two words with double quote4713 with two multi-word surrounded by double quote and two words4714 returns array containing two multi-words and tow words4715 .fuzzy_arel_match4716 with a word equal to 3 chars4717 returns a single ILIKE condition4718 with a word shorter than 3 chars4719 returns a single equality condition4720 uses LOWER instead of ILIKE when LOWER is enabled4721 with two words both equal to 3 chars4722 returns a joining LIKE condition using a AND4723 with two words both shorter than 3 chars4724 returns a single ILIKE condition4725 with two words, one shorter 3 chars4726 returns a single ILIKE condition using the longer word4727 with a multi-word surrounded by double quote and two words4728 returns a joining LIKE condition using a AND4729Import metrics on production seed4730 imports all prometheus metrics4731Every Sidekiq worker4732 does not use the default queue4733 uses the cronjob queue when the worker runs as a cronjob4734 has its queue in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS4735 has its queue or namespace in config/sidekiq_queues.yml4736FeatureGate4737 User4738 #flipper_id4739 when user is not persisted4740 should be nil4741 when user is persisted4742 should eq "User:2161"4743Gitlab::Ci::Config::Entry::Reports4744 validates ALLOWED_KEYS4745 expects junit to be an artifact file_type4746 expects codequality to be an artifact file_type4747 expects sast to be an artifact file_type4748 expects dependency_scanning to be an artifact file_type4749 expects container_scanning to be an artifact file_type4750 expects dast to be an artifact file_type4751 expects performance to be an artifact file_type4752 expects license_management to be an artifact file_type4753 expects metrics to be an artifact file_type4754 validation4755 when entry config value is correct4756 keyword: :junit, file: "junit.xml"4757 when value is an array4758 behaves like a valid entry4759 #value4760 returns artifacts configuration4761 #valid?4762 is valid4763 when value is not array4764 behaves like a valid entry4765 #value4766 returns artifacts configuration4767 #valid?4768 is valid4769 keyword: :codequality, file: "gl-code-quality-report.json"4770 when value is an array4771 behaves like a valid entry4772 #value4773 returns artifacts configuration4774 #valid?4775 is valid4776 when value is not array4777 behaves like a valid entry4778 #value4779 returns artifacts configuration4780 #valid?4781 is valid4782 keyword: :sast, file: "gl-sast-report.json"4783 when value is an array4784 behaves like a valid entry4785 #value4786 returns artifacts configuration4787 #valid?4788 is valid4789 when value is not array4790 behaves like a valid entry4791 #value4792 returns artifacts configuration4793 #valid?4794 is valid4795 keyword: :dependency_scanning, file: "gl-dependency-scanning-report.json"4796 when value is an array4797 behaves like a valid entry4798 #value4799 returns artifacts configuration4800 #valid?4801 is valid4802 when value is not array4803 behaves like a valid entry4804 #value4805 returns artifacts configuration4806 #valid?4807 is valid4808 keyword: :container_scanning, file: "gl-container-scanning-report.json"4809 when value is an array4810 behaves like a valid entry4811 #value4812 returns artifacts configuration4813 #valid?4814 is valid4815 when value is not array4816 behaves like a valid entry4817 #value4818 returns artifacts configuration4819 #valid?4820 is valid4821 keyword: :dast, file: "gl-dast-report.json"4822 when value is an array4823 behaves like a valid entry4824 #value4825 returns artifacts configuration4826 #valid?4827 is valid4828 when value is not array4829 behaves like a valid entry4830 #value4831 returns artifacts configuration4832 #valid?4833 is valid4834 keyword: :license_management, file: "gl-license-management-report.json"4835 when value is an array4836 behaves like a valid entry4837 #value4838 returns artifacts configuration4839 #valid?4840 is valid4841 when value is not array4842 behaves like a valid entry4843 #value4844 returns artifacts configuration4845 #valid?4846 is valid4847 keyword: :performance, file: "performance.json"4848 when value is an array4849 behaves like a valid entry4850 #value4851 returns artifacts configuration4852 #valid?4853 is valid4854 when value is not array4855 behaves like a valid entry4856 #value4857 returns artifacts configuration4858 #valid?4859 is valid4860 when entry value is not correct4861 #errors4862 when there is an unknown key present4863 reports error4864MoveToProjectSerializer4865 #represent4866 includes the name and name with namespace4867Gitlab::Redis::SharedState4868 .params4869 withstands mutation4870 when url contains unix socket reference4871 with old format4872 returns path key instead4873 with new format4874 returns path key instead4875 when url is host based4876 with old format4877 returns hash with host, port, db, and password4878 with new format4879 returns hash with host, port, db, and password4880 .url4881 withstands mutation4882 when yml file with env variable4883 reads redis url from env variable4884 ._raw_config4885 is frozen4886 returns false when the file does not exist4887 returns false when the filename can't be determined4888 .with4889 when running not on sidekiq workers4890 instantiates a connection pool with size 54891 when running on sidekiq workers4892 instantiates a connection pool with a size based on the concurrency of the worker4893 #sentinels4894 when sentinels are defined4895 returns an array of hashes with host and port keys4896 when sentinels are not defined4897 returns nil4898 #sentinels?4899 when sentinels are defined4900 returns true4901 when sentinels are not defined4902 returns false4903 #raw_config_hash4904 returns default redis url when no config file is present4905 returns old-style single url config in a hash4906 #fetch_config4907 returns false when no config file is present4908 returns false when config file is present but has invalid YAML4909Gitlab::SidekiqDaemon::Monitor4910 #within_job4911 tracks thread4912 when job is canceled49132019-10-15T08:51:25.577Z 91 TID-gohcudbg3 WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"2c02ba679ab69be34b595fbcfd90ae42", :canceled=>true}4914 does not execute a block49152019-10-15T08:51:25.584Z 91 TID-gohcudbg3 WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"874b3527fe43b7c3ea8c2d1a0caaec1c", :canceled=>true}4916 raises exception4917 #start_working when notification channel not enabled4918 return directly4919 #start_working when notification channel enabled4920 when structured logging is used4921 logs start message4922 logs stop message4923 logs StandardError message4924 logs and raises Exception message4925 when StandardError is raised4926 does retry connection4927 when message is published4928 and message is valid4929 processes cancel4930 and message is not valid json4931 skips processing4932 #stop4933#<Thread:0x00005598627999b0@/builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:37 run> terminated with exception (report_on_exception is true):4934/builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:188:in `nonzero?': Interrupt (Interrupt)4935 from /builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:188:in `notification_channel_enabled?'4936 from /builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:65:in `start_working'4937 from /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:37:in `block (2 levels) in start'4938 does stop the thread4939 #process_job_cancel4940 when jid is missing4941 does not run thread4942 when jid is provided4943 when jid is not found4944 does not log cancellation message4945 when jid is found4946#<Thread:0x00005598628b1b68@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):4947/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)4948 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'4949 does log cancellation message49502019-10-15T08:51:25.669Z 91 TID-gohgacrsb WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"cancel", :message=>"Canceling thread with CancelledError", :jid=>"my-jid", :thread_id=>47056488608820}4951#<Thread:0x0000559862936868@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):4952/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)4953 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'4954 does cancel the thread4955 .cancel_job4956 sets a redis key4957 notifies all workers4958 #notification_channel_enabled?4959 return nil when SIDEKIQ_MONITOR_WORKER is not set4960 return nil when SIDEKIQ_MONITOR_WORKER set to 04961 return 1 when SIDEKIQ_MONITOR_WORKER set to 14962Gitlab::UsageDataCounters::SnippetCounter4963 behaves like a redis usage counter4964 .count(create)4965 increments the Snippet create counter by 14966 .read(create)4967 returns the total number of create events4968 behaves like a redis usage counter4969 .count(update)4970 increments the Snippet update counter by 14971 .read(update)4972 returns the total number of update events4973 behaves like a redis usage counter with totals4974 totals4975 can report all totals4976 unknown events4977 cannot increment4978 cannot read4979Shard4980 .populate!4981 creates shards based on the config file4982 .by_name4983 returns an existing shard4984 creates a new shard4985 retries if creation races4986Gitlab::DependencyLinker::GodepsJsonLinker4987 .support?4988 supports Godeps.json4989 does not support other files4990 #link4991 links the package name4992 links GitHub repos4993 links GitLab projects4994 links Golang packages4995Gitlab::Ci::Reports::TestSuiteComparer4996 #new_failures4997 when head sutie has a newly failed test case which does not exist in base4998 returns the failed test case4999 when head sutie still has a failed test case which failed in base5000 does not return the failed test case5001 when head sutie has a success test case which failed in base5002 does not return the failed test case5003 #existing_failures5004 when head sutie has a newly failed test case which does not exist in base5005 returns the failed test case5006 when head sutie still has a failed test case which failed in base5007 does not return the failed test case5008 when head sutie has a success test case which failed in base5009 does not return the failed test case5010 #resolved_failures5011 when head sutie has a newly failed test case which does not exist in base5012 returns the failed test case5013 returns the correct resolved count5014 when head sutie still has a failed test case which failed in base5015 does not return the failed test case5016 returns the correct resolved count5017 when head sutie has a success test case which failed in base5018 does not return the resolved test case5019 returns the correct resolved count5020 #total_count5021 returns the total test counts in head suite5022 #failed_count5023 when there are a new failure and an existing failure5024 returns the correct count5025 when there is a new failure5026 returns the correct count5027 when there is an existing failure5028 returns the correct count5029 #total_status5030 when all test cases in head suite are success5031 returns the total status in head suite5032 when there is a failed test case in head suite5033 returns the total status in head suite5034LicenseTemplateFinder5035 #execute5036 popular: true5037 only returns popular licenses5038 popular: false5039 only returns unpopular licenses5040 popular: nil5041 returns all licenses known by the Licensee gem5042 correctly copies all attributes5043Banzai::Filter::InlineDiffFilter5044 adds inline diff span tags for deletions when using square brackets5045 adds inline diff span tags for deletions when using curley braces5046 does not add inline diff span tags when a closing tag is not provided5047 adds inline span tags for additions when using square brackets5048 adds inline span tags for additions when using curley braces5049 does not add inline diff span tags when a closing addition tag is not provided5050 does not add inline diff span tags when the tags do not match5051 prevents user-land html being injected5052 preserves content inside pre tags5053 preserves content inside code tags5054 preserves content inside tt tags5055Gitlab::Ci::Config::Entry::Cache5056 validations5057 when entry config value is correct5058 #value5059 returns hash value5060 #valid?5061 should be valid5062 policy is pull-push5063 should be valid5064 should include {:policy => "pull-push"}5065 policy is push5066 should be valid5067 should include {:policy => "push"}5068 policy is pull5069 should be valid5070 should include {:policy => "pull"}5071 when key is missing5072 #value5073 sets key with the default5074 when entry value is not correct5075 #errors5076 when is not a hash5077 reports errors with config value5078 when policy is unknown5079 reports error5080 when descendants are invalid5081 reports error with descendants5082 when there is an unknown key present5083 reports error with descendants5084Gitlab::Email::Hook::SmimeSignatureInterceptor5085 signs the email appropriately with SMIME5086MergeRequest::Metrics5087 associations5088 should belong to merge_request required:5089 should belong to latest_closed_by class_name => User required:5090 should belong to merged_by class_name => User required:5091Gitlab::Kubernetes5092 #container_exec_url5093 should eq "wss"5094 should eq "example.com"5095 should eq "/api/v1/namespaces/default/pods/pod1/exec"5096 should eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"5097 with a HTTP API URL5098 should eq "ws"5099 with a path prefix in the API URL5100 should eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"5101 with arguments that need urlencoding5102 should eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"5103 should match /\Acontainer=container\+1&/5104 #filter_by_label5105 returns matching labels5106 #filter_by_annotation5107 returns matching labels5108 #filter_by_project_environment5109 returns matching env label5110 #filter_by_legacy_label5111 returns matching labels5112 #to_kubeconfig5113 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5114 when CA PEM is not provided5115 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5116 when token is not provided5117 should be nil5118 #add_terminal_auth5119 adds authentication parameters to a hash5120TabHelper5121 nav_link5122 passes extra html options to the list element5123 with the content of the li5124 captures block output5125 with controller param5126 performs checks on the current controller5127 with action param5128 performs checks on both controller and action when both are present5129 with namespace in path notation5130 performs checks on both controller and namespace5131 with action param5132 performs checks on both namespace, controller and action when they are all present5133 with action param5134 performs checks on the current action5135 with path param5136 accepts a path shorthand5137 with namespace5138 accepts a path shorthand with namespace5139Gitlab::SidekiqStatus5140 .set5141 stores the job ID5142 .unset5143 removes the job ID5144 .all_completed?5145 returns true if all jobs have been completed5146 returns false if a job has not yet been completed5147 .running?5148 returns true if job is running5149 returns false if job is not found5150 .num_running5151 returns 0 if all jobs have been completed5152 returns 2 if two jobs are still running5153 .num_completed5154 returns 1 if all jobs have been completed5155 returns 1 if a job has not yet been completed5156 .key_for5157 returns the key for a job ID5158 completed5159 returns the completed job5160 returns only the jobs completed5161Gitlab::UsageDataCounters::ProductivityAnalyticsCounter5162 behaves like a redis usage counter5163 .count(views)5164 increments the ProductivityAnalytics views counter by 15165 .read(views)5166 returns the total number of views events5167 behaves like a redis usage counter with totals5168 totals5169 can report all totals5170 unknown events5171 cannot increment5172 cannot read5173Gitlab::UsageDataCounters::MergeRequestCounter5174 behaves like a redis usage counter5175 .count(create)5176 increments the Merge Request create counter by 15177 .read(create)5178 returns the total number of create events5179 behaves like a redis usage counter with totals5180 totals5181 can report all totals5182 unknown events5183 cannot increment5184 cannot read5185Gitlab::Git::Changes5186 #includes_branches?5187 has changes for branches5188 should be truthy5189 has no changes for branches5190 should be falsey5191 #includes_tags?5192 has changes for tags5193 should be truthy5194 has no changes for tags5195 should be falsey5196 #add_branch_change5197 adds the branch change to the collection5198 does not add the change as a tag change5199 #add_tag_change5200 adds the tag change to the collection5201 does not add the change as a branch change5202Prometheus::PidProvider5203 .worker_id5204 when running in Sidekiq server mode5205 should eq "sidekiq"5206 when running in Unicorn mode5207 when unicorn master is specified in process name5208 when running in Omnibus5209 before the process was renamed5210 should eq "unicorn_master"5211 after the process was renamed5212 should eq "unicorn_master"5213 when in development env5214 before the process was renamed5215 should eq "unicorn_master"5216 after the process was renamed5217 should eq "unicorn_master"5218 when unicorn worker id is specified in process name5219 when running in Omnibus5220 should eq "unicorn_1"5221 when in development env5222 should eq "unicorn_1"5223 when no specified unicorn master or worker id in process name5224 should eq "process_91"5225 when running in Puma mode5226 when cluster worker id is specified in process name5227 should eq "puma_1"5228 when no worker id is specified in process name5229 should eq "puma_master"5230 when running in unknown mode5231 should eq "process_91"5232Gitlab::Ci::Pipeline::Expression::Lexeme::String5233 .build5234 creates a new instance of the token5235 .type5236 is a value lexeme5237 .scan5238 when using double quotes5239 correctly identifies string token5240 when using single quotes5241 correctly identifies string token5242 when there are mixed quotes in the string5243 is a greedy scanner for double quotes5244 is a greedy scanner for single quotes5245 allows to use single quotes inside double quotes5246 allow to use double quotes inside single quotes5247 allows to use an empty string inside single quotes5248 allow to use an empty string inside double quotes5249 #evaluate5250 returns string value if it is present5251 returns an empty string if it is empty5252Gitlab::DependencyLinker5253 .link5254 links using GemfileLinker5255 links using GemspecLinker5256 links using PackageJsonLinker5257 links using ComposerJsonLinker5258 links using PodfileLinker5259 links using PodspecLinker5260 links using PodspecJsonLinker5261 links using CartfileLinker5262 links using GodepsJsonLinker5263 links using RequirementsTxtLinker5264Clusters::Project5265 should belong to cluster required:5266 should belong to project required:5267 should have many kubernetes_namespaces5268RuboCop::Cop::AvoidBreakFromStrongMemoize5269 flags violation for break inside strong_memoize5270 flags violation for break inside strong_memoize nested blocks5271 doesn't flag violation for next inside strong_memoize5272 doesn't flag violation for break inside blocks5273 doesn't call add_offense twice for nested blocks5274 doesn't check when block is empty5275Gitlab::Sherlock::Collection5276 #add5277 adds a new transaction5278 is aliased as <<5279 #each5280 iterates over every transaction5281 #clear5282 removes all transactions5283 #empty?5284 returns true for an empty collection5285 returns false for a collection with a transaction5286 #find_transaction5287 returns the transaction for the given ID5288 returns nil when no transaction could be found5289 #newest_first5290 returns transactions sorted from new to old5291Gitlab::Ci::Config::Entry::Hidden5292 .matching?5293 when name starts with dot5294 should be truthy5295 when name does not start with dot5296 should be falsey5297 .new5298 validations5299 when entry config value is correct5300 #value5301 returns key value5302 #valid?5303 is valid5304 when entry value is not correct5305 when config is empty5306 #valid5307 is invalid5308 #leaf?5309 is a leaf5310 #relevant?5311 is not a relevant entry5312Gitlab::Diff::SuggestionDiff5313 #diff_lines5314 returns diff lines with correct line numbers5315ChatMessage::NoteMessage5316 commit notes5317 without markdown5318 returns a message regarding notes on commits5319 with markdown5320 returns a message regarding notes on commits5321 merge request notes5322 without markdown5323 returns a message regarding notes on a merge request5324 with markdown5325 returns a message regarding notes on a merge request5326 issue notes5327 without markdown5328 returns a message regarding notes on an issue5329 with markdown5330 returns a message regarding notes on an issue5331 project snippet notes5332 without markdown5333 returns a message regarding notes on a project snippet5334 with markdown5335 returns a message regarding notes on a project snippet5336Gitlab::Ci::Build::Artifacts::Adapters::RawStream5337 #initialize5338 when stream is passed5339 initialized5340 when stream is not passed5341 raises an error5342 #each_blob5343 when file is not empty5344 iterates content5345 when file is empty5346 does not iterate content5347RuboCop::Cop::QA::ElementWithPattern5348 in a QA file5349 registers an offense for elements with a pattern5350 does not register an offense for element without a pattern5351 outside of a migration spec file5352 does not register an offense5353Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent5354 should respond to #name5355 should respond to #identifier5356 should respond to #object_type5357 should respond to #timestamp_projection5358 should respond to #apply_query_customization5359Gitlab::Git::RawDiffChange5360 bad input5361 does not set most of the attrs5362 adding a file5363 initialize the proper attrs5364 renaming a file5365 initialize the proper attrs5366 modifying a file5367 initialize the proper attrs5368 deleting a file5369 initialize the proper attrs5370Gitlab::GithubImport::PageCounter5371 #initialize5372 sets the initial page number to 1 when no value is cached5373 sets the initial page number to the cached value when one is present5374 #set5375 overwrites the page number when the given number is greater than the current number5376 does not overwrite the page number when the given number is lower than the current number5377Gitlab::Ci::Status::Group::Common5378 does not have action5379 has details5380 has no details_path5381Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd5382 behaves like cycle analytics event5383 should be a kind of String5384 should be a kind of Symbol5385 should include ApplicationRecord(abstract)5386 should respond to #timestamp_projection5387 #apply_query_customization5388 expects an ActiveRecord::Relation object as argument and returns a modified version of it5389Gitlab::GithubImport::BulkImporting5390 #build_database_rows5391 returns an Array containing the rows to insert5392 does not import objects that have already been imported5393 #bulk_insert5394 bulk inserts rows into the database5395RspecFlaky::FlakyExamplesCollection5396 #initialize5397 accepts no argument5398 accepts a hash5399 does not accept anything else5400 #to_h5401 calls #to_h on the values5402 #-5403 returns only examples that are not present in the given collection5404 fails if the given collection does not respond to `#key?`5405Gitlab::Ci::Config::Entry::Paths5406 validations5407 when entry config value is valid5408 #value5409 returns key value5410 #valid?5411 is valid5412 when entry value is not valid5413 #errors5414 saves errors5415Gitlab::Diff::InlineDiff5416 .for_lines5417 finds all inline diffs5418 can handle unchanged empty lines5419 #inline_diffs5420 finds the inline diff5421Gitlab::Ci::Reports::TestCase5422 #initialize5423 when both classname and name are given5424 when test case is passed5425 initializes an instance5426 when test case is failed5427 initializes an instance5428 when classname is missing5429 raises an error5430 when name is missing5431 raises an error5432Gitlab::GithubImport::IssuableFinder5433 #database_id5434 returns nil when no cache is in place5435 returns the ID of an issuable when the cache is in place5436 raises TypeError when the object is not supported5437 #cache_database_id5438 caches the ID of a database row5439Banzai::FilterArray5440 #insert_after5441 inserts an element after a provided element5442 inserts an element at the end when the provided element does not exist5443 #insert_before5444 inserts an element before a provided element5445 inserts an element at the beginning when the provided element does not exist5446RuboCop::Cop::SidekiqOptionsQueue5447 registers an offense when `sidekiq_options` is used with the `queue` option5448 does not register an offense when `sidekiq_options` is used with another option5449SessionsHelper5450 #unconfirmed_email?5451 returns true when the flash alert contains a devise failure unconfirmed message5452 returns false when the flash alert does not contain a devise failure unconfirmed message5453RequestAwareEntity5454 includes URL helpers5455 includes method for checking abilities5456 fetches request from options5457AwardEmoji5458 should eq "AwardEmoji"5459 should require graphql authorizations :read_emoji5460 should have graphql fields :description, :unicode_version, :emoji, :name, :unicode, and :user5461Group5462 should expose permissions using Types::PermissionTypes::Group5463 should eq "Group"5464 should require graphql authorizations :read_group5465TodosDestroyer::ConfidentialIssueWorker5466 calls the Todos::Destroy::ConfidentialIssueService with issue_id parameter5467 calls the Todos::Destroy::ConfidentialIssueService with project_id parameter5468Gitlab::StringRegexMarker5469 #mark5470 with a single occurrence5471 marks the match5472 with multiple occurrences5473 marks the matches5474Gitlab::Metrics::Dashboard::Defaults5475 should be const defined :DEFAULT_PANEL_TYPE5476 should be const defined :DEFAULT_PANEL_WEIGHT5477Types::Ci::PipelineType5478 should eq "Pipeline"5479 should expose permissions using Types::PermissionTypes::Ci::Pipeline5480Bitbucket::Paginator5481 items5482 return items and raises StopIteration in the end5483ProviderRepoSerializer5484 represents ProviderRepoEntity entities5485TodosDestroyer::GroupPrivateWorker5486 calls the Todos::Destroy::GroupPrivateService with the params it was given5487Gitlab::Git::GitmodulesParser5488 parses a .gitmodules file correctly5489PipelineBackgroundQueue5490 sets a default object storage queue automatically5491Knapsack report was generated. Preview:5492{5493 "spec/services/merge_requests/update_service_spec.rb": 77.94184827804565,5494 "spec/services/projects/import_service_spec.rb": 58.774707555770874,5495 "spec/models/concerns/resolvable_discussion_spec.rb": 30.25692343711853,5496 "spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb": 32.19275426864624,5497 "spec/models/commit_spec.rb": 20.043416738510132,5498 "spec/lib/gitlab/search_results_spec.rb": 18.289692163467407,5499 "spec/models/namespace_spec.rb": 16.098291873931885,5500 "spec/finders/notes_finder_spec.rb": 13.690574645996094,5501 "spec/models/environment_status_spec.rb": 12.786731243133545,5502 "spec/serializers/pipeline_entity_spec.rb": 7.6658241748809814,5503 "spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb": 10.726818084716797,5504 "spec/services/issuable/clone/content_rewriter_spec.rb": 10.592961311340332,5505 "spec/presenters/ci/pipeline_presenter_spec.rb": 9.891790866851807,5506 "spec/models/snippet_spec.rb": 8.102383136749268,5507 "spec/finders/projects/serverless/functions_finder_spec.rb": 7.598154783248901,5508 "spec/models/prometheus_metric_spec.rb": 6.841198205947876,5509 "spec/lib/gitlab/data_builder/note_spec.rb": 7.086171627044678,5510 "spec/lib/gitlab/data_builder/push_spec.rb": 6.445171117782593,5511 "spec/services/clusters/applications/upgrade_service_spec.rb": 4.52116060256958,5512 "spec/presenters/ci/build_presenter_spec.rb": 6.448850393295288,5513 "spec/services/issuable/clone/attributes_rewriter_spec.rb": 3.4006738662719727,5514 "spec/models/cycle_analytics/group_level_spec.rb": 5.1707916259765625,5515 "spec/models/commit_collection_spec.rb": 4.449567556381226,5516 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 4.2165398597717285,5517 "spec/workers/invalid_gpg_signature_update_worker_spec.rb": 3.939131259918213,5518 "spec/finders/cluster_ancestors_finder_spec.rb": 4.174522161483765,5519 "spec/services/award_emojis/destroy_service_spec.rb": 3.7469418048858643,5520 "spec/models/project_services/gitlab_issue_tracker_service_spec.rb": 3.9154391288757324,5521 "spec/workers/namespaceless_project_destroy_worker_spec.rb": 2.912449359893799,5522 "spec/lib/gitlab/diff/highlight_spec.rb": 2.844543933868408,5523 "spec/services/discussions/resolve_service_spec.rb": 3.10675311088562,5524 "spec/helpers/search_helper_spec.rb": 2.582709550857544,5525 "spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb": 3.1782498359680176,5526 "spec/lib/banzai/reference_parser/commit_range_parser_spec.rb": 3.2927207946777344,5527 "spec/services/projects/open_issues_count_service_spec.rb": 2.5769307613372803,5528 "spec/services/wiki_pages/update_service_spec.rb": 2.274021625518799,5529 "spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb": 2.893266201019287,5530 "spec/services/issues/import_csv_service_spec.rb": 2.4089863300323486,5531 "spec/presenters/issue_presenter_spec.rb": 1.3254148960113525,5532 "spec/services/projects/hashed_storage/migrate_repository_service_spec.rb": 2.408705472946167,5533 "spec/workers/ci/archive_traces_cron_worker_spec.rb": 2.2962446212768555,5534 "spec/graphql/features/authorization_spec.rb": 1.9741096496582031,5535 "spec/models/project_import_state_spec.rb": 1.8169522285461426,5536 "spec/services/lfs/locks_finder_service_spec.rb": 1.735490322113037,5537 "spec/helpers/gitlab_routing_helper_spec.rb": 1.996032476425171,5538 "spec/lib/gitlab/kubernetes/helm/init_command_spec.rb": 1.8242299556732178,5539 "spec/lib/gitlab/exclusive_lease_spec.rb": 2.0349409580230713,5540 "spec/services/members/create_service_spec.rb": 1.895646095275879,5541 "spec/lib/gitlab/sanitizers/exif_spec.rb": 1.748408555984497,5542 "spec/models/concerns/project_features_compatibility_spec.rb": 1.0265583992004395,5543 "spec/models/label_note_spec.rb": 1.5928351879119873,5544 "spec/lib/gitlab/kubernetes/default_namespace_spec.rb": 1.6287965774536133,5545 "spec/helpers/award_emoji_helper_spec.rb": 1.1152317523956299,5546 "spec/workers/repository_import_worker_spec.rb": 0.8946349620819092,5547 "spec/views/projects/diffs/_stats.html.haml_spec.rb": 1.1188433170318604,5548 "spec/initializers/secret_token_spec.rb": 2.017000436782837,5549 "spec/models/project_services/issue_tracker_service_spec.rb": 1.2132830619812012,5550 "spec/models/user_agent_detail_spec.rb": 0.5898599624633789,5551 "spec/services/boards/list_service_spec.rb": 0.8129115104675293,5552 "spec/services/wiki_pages/destroy_service_spec.rb": 1.1380693912506104,5553 "spec/lib/gitlab/visibility_level_checker_spec.rb": 1.1146125793457031,5554 "spec/services/merge_requests/migrate_external_diffs_service_spec.rb": 1.0659279823303223,5555 "spec/models/hooks/web_hook_log_spec.rb": 0.9219198226928711,5556 "spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb": 0.9819326400756836,5557 "spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb": 1.1059789657592773,5558 "spec/serializers/paginated_diff_entity_spec.rb": 1.3744475841522217,5559 "spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb": 1.6455328464508057,5560 "spec/lib/gitlab/ci/status/build/preparing_spec.rb": 0.9860763549804688,5561 "spec/uploaders/namespace_file_uploader_spec.rb": 1.2549545764923096,5562 "spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb": 0.45867204666137695,5563 "spec/workers/concerns/project_import_options_spec.rb": 0.7927916049957275,5564 "spec/lib/gitlab/legacy_github_import/wiki_formatter_spec.rb": 0.5312566757202148,5565 "spec/lib/gitlab/metrics/instrumentation_spec.rb": 0.9771943092346191,5566 "spec/lib/gitlab/graphql/loaders/pipeline_for_sha_loader_spec.rb": 0.5155344009399414,5567 "spec/services/prometheus/adapter_service_spec.rb": 1.177753210067749,5568 "spec/models/blob_viewer/base_spec.rb": 0.6445975303649902,5569 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 0.4640343189239502,5570 "spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb": 0.307863712310791,5571 "spec/lib/gitlab/ci/status/build/erased_spec.rb": 0.6280672550201416,5572 "spec/lib/gitlab/checks/project_created_spec.rb": 0.8457474708557129,5573 "spec/migrations/set_issue_id_for_all_versions_spec.rb": 0.4766066074371338,5574 "spec/migrations/enqueue_reset_merge_status_spec.rb": 0.7332315444946289,5575 "spec/workers/mail_scheduler/issue_due_worker_spec.rb": 1.182905673980713,5576 "spec/workers/hashed_storage/migrator_worker_spec.rb": 0.5305290222167969,5577 "spec/services/projects/container_repository/cleanup_tags_service_spec.rb": 0.7027640342712402,5578 "spec/migrations/remove_empty_extern_uid_auth0_identities_spec.rb": 0.3868253231048584,5579 "spec/workers/import_issues_csv_worker_spec.rb": 0.7073650360107422,5580 "spec/models/project_services/pivotaltracker_service_spec.rb": 0.15301847457885742,5581 "spec/helpers/boards_helper_spec.rb": 0.2944977283477783,5582 "spec/lib/gitlab/phabricator_import/project_creator_spec.rb": 0.778599739074707,5583 "spec/migrations/assure_commits_count_for_merge_request_diff_spec.rb": 0.3982410430908203,5584 "spec/services/projects/container_repository/delete_tags_service_spec.rb": 0.4287707805633545,5585 "spec/lib/gitlab/graphql/representation/tree_entry_spec.rb": 0.4042987823486328,5586 "spec/services/protected_branches/destroy_service_spec.rb": 0.4136974811553955,5587 "spec/lib/gitlab/import/database_helpers_spec.rb": 0.45586729049682617,5588 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 0.2491145133972168,5589 "spec/validators/public_url_validator_spec.rb": 0.4600341320037842,5590 "spec/rubocop/cop/graphql/authorize_types_spec.rb": 0.08158040046691895,5591 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 0.3463938236236572,5592 "spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb": 0.19532537460327148,5593 "spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb": 0.016881465911865234,5594 "spec/lib/omni_auth/strategies/jwt_spec.rb": 0.33389782905578613,5595 "spec/helpers/commits_helper_spec.rb": 0.24155139923095703,5596 "spec/services/projects/forks_count_service_spec.rb": 0.5500636100769043,5597 "spec/services/protected_tags/create_service_spec.rb": 0.2358534336090088,5598 "spec/lib/gitlab/ci/config/entry/job_spec.rb": 0.27992701530456543,5599 "spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb": 0.2707226276397705,5600 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.22690248489379883,5601 "spec/tasks/gitlab/task_helpers_spec.rb": 0.14667201042175293,5602 "spec/lib/gitlab/fake_application_settings_spec.rb": 0.13277268409729004,5603 "spec/lib/banzai/filter/external_link_filter_spec.rb": 0.4002103805541992,5604 "spec/initializers/zz_metrics_spec.rb": 0.15259742736816406,5605 "spec/rubocop/cop/gitlab/rails_logger_spec.rb": 0.01888728141784668,5606 "spec/db/development/import_common_metrics_spec.rb": 0.11392974853515625,5607 "spec/finders/user_finder_spec.rb": 0.10589766502380371,5608 "spec/lib/gitlab/http_connection_adapter_spec.rb": 0.15259671211242676,5609 "spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb": 0.09879422187805176,5610 "spec/lib/mattermost/team_spec.rb": 0.11541438102722168,5611 "spec/lib/gitlab/favicon_spec.rb": 0.11640310287475586,5612 "spec/services/deploy_keys/create_service_spec.rb": 0.09103965759277344,5613 "spec/lib/gitlab/sql/pattern_spec.rb": 0.04291057586669922,5614 "spec/db/production/import_common_metrics_spec.rb": 0.0979623794555664,5615 "spec/workers/every_sidekiq_worker_spec.rb": 0.06880712509155273,5616 "spec/models/concerns/feature_gate_spec.rb": 0.06291437149047852,5617 "spec/lib/gitlab/ci/config/entry/reports_spec.rb": 0.09242081642150879,5618 "spec/serializers/move_to_project_serializer_spec.rb": 0.06205630302429199,5619 "spec/lib/gitlab/redis/shared_state_spec.rb": 0.09433984756469727,5620 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 0.07279706001281738,5621 "spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb": 0.05124831199645996,5622 "spec/models/shard_spec.rb": 0.05440783500671387,5623 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.0526280403137207,5624 "spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb": 0.035367488861083984,5625 "spec/finders/license_template_finder_spec.rb": 0.041759490966796875,5626 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.026629924774169922,5627 "spec/lib/gitlab/ci/config/entry/cache_spec.rb": 0.03148484230041504,5628 "spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb": 0.038471221923828125,5629 "spec/models/merge_request/metrics_spec.rb": 0.03846406936645508,5630 "spec/lib/gitlab/kubernetes_spec.rb": 0.041229963302612305,5631 "spec/helpers/tab_helper_spec.rb": 0.026092529296875,5632 "spec/lib/gitlab/sidekiq_status_spec.rb": 0.03319430351257324,5633 "spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb": 0.034058332443237305,5634 "spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb": 0.02884387969970703,5635 "spec/lib/gitlab/git/changes_spec.rb": 0.015614032745361328,5636 "spec/lib/prometheus/pid_provider_spec.rb": 0.2753169536590576,5637 "spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb": 0.042572021484375,5638 "spec/lib/gitlab/dependency_linker_spec.rb": 0.026407241821289062,5639 "spec/models/clusters/project_spec.rb": 0.02653336524963379,5640 "spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb": 0.026099205017089844,5641 "spec/lib/gitlab/sherlock/collection_spec.rb": 0.023197174072265625,5642 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.019429683685302734,5643 "spec/lib/gitlab/diff/suggestion_diff_spec.rb": 0.02916717529296875,5644 "spec/models/project_services/chat_message/note_message_spec.rb": 0.01892685890197754,5645 "spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb": 0.009765148162841797,5646 "spec/rubocop/cop/qa/element_with_pattern_spec.rb": 0.016432523727416992,5647 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb": 0.010199785232543945,5648 "spec/lib/gitlab/git/raw_diff_change_spec.rb": 0.011304378509521484,5649 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.012576580047607422,5650 "spec/lib/gitlab/ci/status/group/common_spec.rb": 0.009536981582641602,5651 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb": 0.011367321014404297,5652 "spec/lib/gitlab/github_import/bulk_importing_spec.rb": 0.00961756706237793,5653 "spec/lib/rspec_flaky/flaky_examples_collection_spec.rb": 0.013273239135742188,5654 "spec/lib/gitlab/ci/config/entry/paths_spec.rb": 0.008036613464355469,5655 "spec/lib/gitlab/diff/inline_diff_spec.rb": 0.0072290897369384766,5656 "spec/lib/gitlab/ci/reports/test_case_spec.rb": 0.009013175964355469,5657 "spec/lib/gitlab/github_import/issuable_finder_spec.rb": 0.009921550750732422,5658 "spec/lib/banzai/filter_array_spec.rb": 0.007055997848510742,5659 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.006752729415893555,5660 "spec/helpers/sessions_helper_spec.rb": 0.0056688785552978516,5661 "spec/serializers/request_aware_entity_spec.rb": 0.00682520866394043,5662 "spec/graphql/types/award_emojis/award_emoji_type_spec.rb": 0.0067365169525146484,5663 "spec/graphql/types/group_type_spec.rb": 0.0063169002532958984,5664 "spec/workers/todos_destroyer/confidential_issue_worker_spec.rb": 0.004883527755737305,5665 "spec/lib/gitlab/string_regex_marker_spec.rb": 0.004384040832519531,5666 "spec/lib/gitlab/metrics/dashboard/defaults_spec.rb": 0.004073619842529297,5667 "spec/graphql/types/ci/pipeline_type_spec.rb": 0.004352569580078125,5668 "spec/lib/bitbucket/paginator_spec.rb": 0.0030257701873779297,5669 "spec/serializers/provider_repo_serializer_spec.rb": 0.0021924972534179688,5670 "spec/workers/todos_destroyer/group_private_worker_spec.rb": 0.0035834312438964844,5671 "spec/lib/gitlab/git/gitmodules_parser_spec.rb": 0.006211757659912109,5672 "spec/workers/concerns/pipeline_background_queue_spec.rb": 0.00338387489318847665673}5674Knapsack global time execution for tests: 08m 14s5675Pending: (Failures listed here are expected and do not affect your suite's status)5676 1) NamespaceFileUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 5677 # No pattern provided, skipping.5678 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85679 2) NamespaceFileUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 5680 # No pattern provided, skipping.5681 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85682 3) NamespaceFileUploader behaves like builds correct paths #relative_path is relative5683 # Path not set, skipping.5684 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:395685 4) NamespaceFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 5686 # No pattern provided, skipping.5687 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85688 5) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 5689 # No pattern provided, skipping.5690 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85691 6) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 5692 # No pattern provided, skipping.5693 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85694 7) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative5695 # Path not set, skipping.5696 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:395697 8) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 5698 # No pattern provided, skipping.5699 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85700 9) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 5701 # No pattern provided, skipping.5702 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:85703Finished in 10 minutes 49 seconds (files took 31.26 seconds to load)57042021 examples, 0 failures, 9 pending5705Tue Oct 15 08:51:45 UTC 20195707$ date5708Tue Oct 15 08:51:49 UTC 20195711coverage/: found 5 matching files 5712knapsack/: found 6 matching files 5713rspec_flaky/: found 4 matching files 5714rspec_profiling/: found 1 matching files 5715WARNING: tmp/capybara/: no matching files 5716tmp/memory_test/: found 2 matching files 5717Uploading artifacts to coordinator... ok id=321109334 responseStatus=201 Created token=cCHirG4d5718Uploading artifacts...5719junit_rspec.xml: found 1 matching files 5720Uploading artifacts to coordinator... ok id=321109334 responseStatus=201 Created token=cCHirG4d5721Job succeeded