rspec unit pg 20/20
Passed Started
by
@chriscool

Christian Couder
1Running with gitlab-runner 12.1.0 (de7731dd)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
00:13
4Starting service postgres:9.6.14 ...5Pulling docker image postgres:9.6.14 ...6Using docker image sha256:ac400042d32f8e146477ae5b3528f1e4232fc8e83b2fd9fe0cbe08900e45bae1 for postgres:9.6.14 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:ed7d2ff5a6232b43bdc89a2220ed989f532c3794422aa2a86823b8bc62e71447 for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...12Using docker image sha256:f5b71ccc7a53408ea88959433baf23f7d716bb431d0475a4f3d9ba213d7841c1 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 13 Running on runner-d5ae8d25-project-13083-concurrent-0 via runner-d5ae8d25-gsrm-1566544948-fbe47b31...
00:01
15Reinitialized existing Git repository in /builds/gitlab-org/gitlab-ce/.git/17 * [new branch] add-label-push-opts -> origin/add-label-push-opts18Checking out 4efa8154 as add-label-push-opts...19Removing .gitlab_shell_secret20Removing .gitlab_workhorse_secret21Removing config/database.yml22Removing config/database_geo.yml23Removing config/gitlab.yml24Removing config/redis.cache.yml25Removing config/redis.queues.yml26Removing config/redis.shared_state.yml27Removing config/resque.yml28Removing config/secrets.yml29Removing coverage/30Removing junit_rspec.xml31Removing knapsack/32Removing log/api_json.log33Removing log/application.log34Removing log/external-policy-access-control.log35Removing log/gitaly-test.log36Removing log/grpc.log37Removing log/importer.log38Removing log/migrations.log39Removing log/repocheck.log40Removing log/test_json.log41Removing node_modules/42Removing public/assets/43Removing rspec_flaky/44Removing rspec_profiling/45Removing shared/lfs-objects/b6/46Removing shared/lfs-objects/b8/47Removing shared/lfs-objects/tmp/48Removing shared/tmp/49Removing tmp/cache/50Removing tmp/memory_test/51Removing tmp/prometheus_multiproc_dir/counter_process_90-0.db52Removing tmp/prometheus_multiproc_dir/histogram_process_90-0.db53Removing tmp/tests/54Removing vendor/gitaly-ruby/55Removing vendor/ruby/56Skipping Git submodules setup58Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/13083/debian-stretch-ruby-2.6.3-node-12.x-3 59Successfully extracted cache61Downloading artifacts from coordinator... ok id=278546198 responseStatus=200 OK token=8FD3qqRE62Downloading artifacts for setup-test-env (278546199)...63Downloading artifacts from coordinator... ok id=278546199 responseStatus=200 OK token=QjAPK6Qu64WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 65Downloading artifacts for retrieve-tests-metadata (278546201)...66Downloading artifacts from coordinator... ok id=278546201 responseStatus=200 OK token=UJJsZsNV68Fri Aug 23 08:00:02 UTC 201969$ source scripts/utils.sh70$ source scripts/prepare_build.sh71Bundler version 1.17.272Warning: 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`.73The Gemfile's dependencies are satisfied74Successfully installed knapsack-1.17.2751 gem installed76CREATE ROLE77GRANT78Dropped database 'gitlabhq_test'79Created database 'gitlabhq_test'80-- enable_extension("pg_trgm")81 -> 0.0466s82-- enable_extension("plpgsql")83 -> 0.0030s84-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})85 -> 0.0044s86-- create_table("appearances", {:id=>:serial, :force=>:cascade})87 -> 0.0040s88-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})89 -> 0.0026s90-- create_table("application_settings", {:id=>:serial, :force=>:cascade})91 -> 0.0944s92-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})93 -> 0.0073s94-- create_table("approval_merge_request_rules", {:force=>:cascade})95 -> 0.0134s96-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})97 -> 0.0064s98-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})99 -> 0.0066s100-- create_table("approval_merge_request_rules_users", {:force=>:cascade})101 -> 0.0064s102-- create_table("approval_project_rules", {:force=>:cascade})103 -> 0.0085s104-- create_table("approval_project_rules_groups", {:force=>:cascade})105 -> 0.0064s106-- create_table("approval_project_rules_users", {:force=>:cascade})107 -> 0.0063s108-- create_table("approvals", {:id=>:serial, :force=>:cascade})109 -> 0.0063s110-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})111 -> 0.0070s112-- create_table("approvers", {:id=>:serial, :force=>:cascade})113 -> 0.0070s114-- create_table("audit_events", {:id=>:serial, :force=>:cascade})115 -> 0.0074s116-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})117 -> 0.0071s118-- create_table("badges", {:id=>:serial, :force=>:cascade})119 -> 0.0072s120-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})121 -> 0.0065s122-- create_table("board_group_recent_visits", {:force=>:cascade})123 -> 0.0129s124-- create_table("board_labels", {:id=>:serial, :force=>:cascade})125 -> 0.0065s126-- create_table("board_project_recent_visits", {:force=>:cascade})127 -> 0.0109s128-- create_table("boards", {:id=>:serial, :force=>:cascade})129 -> 0.0098s130-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})131 -> 0.0055s132-- create_table("chat_names", {:id=>:serial, :force=>:cascade})133 -> 0.0076s134-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})135 -> 0.0049s136-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})137 -> 0.0049s138-- create_table("ci_build_trace_chunks", {:force=>:cascade})139 -> 0.0050s140-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})141 -> 0.0048s142-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})143 -> 0.0086s144-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})145 -> 0.0521s146-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})147 -> 0.0075s148-- create_table("ci_builds_runner_session", {:force=>:cascade})149 -> 0.0050s150-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})151 -> 0.0064s152-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})153 -> 0.0120s154-- create_table("ci_job_variables", {:force=>:cascade})155 -> 0.0077s156-- create_table("ci_pipeline_chat_data", {:force=>:cascade})157 -> 0.0069s158-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})159 -> 0.0066s160-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})161 -> 0.0100s162-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})163 -> 0.0057s164-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})165 -> 0.0308s166-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})167 -> 0.0070s168-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})169 -> 0.0069s170-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})171 -> 0.0188s172-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})173 -> 0.0130s174-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})175 -> 0.0114s176-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})177 -> 0.0073s178-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})179 -> 0.0072s180-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})181 -> 0.0071s182-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})183 -> 0.0072s184-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})185 -> 0.0056s186-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})187 -> 0.0069s188-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})189 -> 0.0059s190-- create_table("clusters", {:id=>:serial, :force=>:cascade})191 -> 0.0098s192-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})193 -> 0.0053s194-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})195 -> 0.0051s196-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})197 -> 0.0053s198-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})199 -> 0.0077s200-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})201 -> 0.0054s202-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})203 -> 0.0054s204-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})205 -> 0.0083s206-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})207 -> 0.0163s208-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})209 -> 0.0077s210-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})211 -> 0.0080s212-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})213 -> 0.0055s214-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})215 -> 0.0050s216-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})217 -> 0.0057s218-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})219 -> 0.0087s220-- create_table("deployments", {:id=>:serial, :force=>:cascade})221 -> 0.0258s222-- create_table("design_management_designs", {:force=>:cascade})223 -> 0.0075s224-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})225 -> 0.0103s226-- create_table("design_management_versions", {:force=>:cascade})227 -> 0.0073s228-- create_table("draft_notes", {:force=>:cascade})229 -> 0.0104s230-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})231 -> 0.0034s232-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})233 -> 0.0034s234-- create_table("emails", {:id=>:serial, :force=>:cascade})235 -> 0.0093s236-- create_table("environments", {:id=>:serial, :force=>:cascade})237 -> 0.0124s238-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})239 -> 0.0066s240-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})241 -> 0.0044s242-- create_table("epics", {:id=>:serial, :force=>:cascade})243 -> 0.0230s244-- create_table("events", {:id=>:serial, :force=>:cascade})245 -> 0.0157s246-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})247 -> 0.0053s248-- create_table("features", {:id=>:serial, :force=>:cascade})249 -> 0.0051s250-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})251 -> 0.0088s252-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})253 -> 0.0049s254-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})255 -> 0.0045s256-- create_table("geo_cache_invalidation_events", {:force=>:cascade})257 -> 0.0027s258-- create_table("geo_container_repository_updated_events", {:force=>:cascade})259 -> 0.0046s260-- create_table("geo_event_log", {:force=>:cascade})261 -> 0.0307s262-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})263 -> 0.0053s264-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})265 -> 0.0052s266-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})267 -> 0.0048s268-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})269 -> 0.0051s270-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})271 -> 0.0088s272-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})273 -> 0.0066s274-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})275 -> 0.0144s276-- create_table("geo_repositories_changed_events", {:force=>:cascade})277 -> 0.0044s278-- create_table("geo_repository_created_events", {:force=>:cascade})279 -> 0.0051s280-- create_table("geo_repository_deleted_events", {:force=>:cascade})281 -> 0.0052s282-- create_table("geo_repository_renamed_events", {:force=>:cascade})283 -> 0.0053s284-- create_table("geo_repository_updated_events", {:force=>:cascade})285 -> 0.0080s286-- create_table("geo_reset_checksum_events", {:force=>:cascade})287 -> 0.0044s288-- create_table("geo_upload_deleted_events", {:force=>:cascade})289 -> 0.0050s290-- create_table("gitlab_subscriptions", {:force=>:cascade})291 -> 0.0082s292-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})293 -> 0.0093s294-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})295 -> 0.0097s296-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})297 -> 0.0141s298-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})299 -> 0.0072s300-- create_table("historical_data", {:id=>:serial, :force=>:cascade})301 -> 0.0023s302-- create_table("identities", {:id=>:serial, :force=>:cascade})303 -> 0.0099s304-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})305 -> 0.0070s306-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})307 -> 0.0055s308-- create_table("insights", {:id=>:serial, :force=>:cascade})309 -> 0.0067s310-- create_table("internal_ids", {:force=>:cascade})311 -> 0.0108s312-- create_table("ip_restrictions", {:force=>:cascade})313 -> 0.0050s314-- create_table("issue_assignees", {:id=>false, :force=>:cascade})315 -> 0.0054s316-- create_table("issue_links", {:id=>:serial, :force=>:cascade})317 -> 0.0090s318-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})319 -> 0.0045s320-- create_table("issue_tracker_data", {:force=>:cascade})321 -> 0.0056s322-- create_table("issues", {:id=>:serial, :force=>:cascade})323 -> 0.0387s324-- create_table("jira_connect_installations", {:force=>:cascade})325 -> 0.0050s326-- create_table("jira_connect_subscriptions", {:force=>:cascade})327 -> 0.0087s328-- create_table("jira_tracker_data", {:force=>:cascade})329 -> 0.0054s330-- create_table("keys", {:id=>:serial, :force=>:cascade})331 -> 0.0101s332-- create_table("label_links", {:id=>:serial, :force=>:cascade})333 -> 0.0078s334-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})335 -> 0.0084s336-- create_table("labels", {:id=>:serial, :force=>:cascade})337 -> 0.0141s338-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})339 -> 0.0028s340-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})341 -> 0.0072s342-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})343 -> 0.0073s344-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})345 -> 0.0064s346-- create_table("licenses", {:id=>:serial, :force=>:cascade})347 -> 0.0027s348-- create_table("lists", {:id=>:serial, :force=>:cascade})349 -> 0.0162s350-- create_table("members", {:id=>:serial, :force=>:cascade})351 -> 0.0168s352-- create_table("merge_request_assignees", {:force=>:cascade})353 -> 0.0084s354-- create_table("merge_request_blocks", {:force=>:cascade})355 -> 0.0065s356-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})357 -> 0.0061s358-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})359 -> 0.0042s360-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})361 -> 0.0074s362-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})363 -> 0.0171s364-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})365 -> 0.0478s366-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})367 -> 0.0065s368-- create_table("merge_trains", {:force=>:cascade})369 -> 0.0111s370-- create_table("milestones", {:id=>:serial, :force=>:cascade})371 -> 0.0159s372-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})373 -> 0.0035s374-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})375 -> 0.0063s376-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})377 -> 0.0046s378-- create_table("namespaces", {:id=>:serial, :force=>:cascade})379 -> 0.1156s380-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})381 -> 0.0052s382-- create_table("notes", {:id=>:serial, :force=>:cascade})383 -> 0.0252s384-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})385 -> 0.0106s386-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})387 -> 0.0052s388-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})389 -> 0.0095s390-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})391 -> 0.0085s392-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})393 -> 0.0050s394-- create_table("operations_feature_flag_scopes", {:force=>:cascade})395 -> 0.0078s396-- create_table("operations_feature_flags", {:force=>:cascade})397 -> 0.0054s398-- create_table("operations_feature_flags_clients", {:force=>:cascade})399 -> 0.0076s400-- create_table("packages_maven_metadata", {:force=>:cascade})401 -> 0.0052s402-- create_table("packages_package_files", {:force=>:cascade})403 -> 0.0054s404-- create_table("packages_packages", {:force=>:cascade})405 -> 0.0053s406-- create_table("pages_domain_acme_orders", {:force=>:cascade})407 -> 0.0074s408-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})409 -> 0.0196s410-- create_table("path_locks", {:id=>:serial, :force=>:cascade})411 -> 0.0089s412-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})413 -> 0.0093s414-- create_table("plans", {:id=>:serial, :force=>:cascade})415 -> 0.0051s416-- create_table("pool_repositories", {:force=>:cascade})417 -> 0.0091s418-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})419 -> 0.0051s420-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})421 -> 0.0020s422-- create_table("project_aliases", {:force=>:cascade})423 -> 0.0071s424-- create_table("project_authorizations", {:id=>false, :force=>:cascade})425 -> 0.0054s426-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})427 -> 0.0048s428-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})429 -> 0.0053s430-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})431 -> 0.0073s432-- create_table("project_daily_statistics", {:force=>:cascade})433 -> 0.0046s434-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})435 -> 0.0069s436-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})437 -> 0.0027s438-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})439 -> 0.0082s440-- create_table("project_features", {:id=>:serial, :force=>:cascade})441 -> 0.0054s442-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})443 -> 0.0074s444-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})445 -> 0.0052s446-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})447 -> 0.0034s448-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})449 -> 0.0020s450-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})451 -> 0.0215s452-- create_table("project_repositories", {:force=>:cascade})453 -> 0.0096s454-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})455 -> 0.0164s456-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})457 -> 0.0102s458-- create_table("project_tracing_settings", {:force=>:cascade})459 -> 0.0054s460-- create_table("projects", {:id=>:serial, :force=>:cascade})461 -> 0.0706s462-- create_table("prometheus_alert_events", {:force=>:cascade})463 -> 0.0071s464-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})465 -> 0.0088s466-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})467 -> 0.0126s468-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})469 -> 0.0090s470-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})471 -> 0.0090s472-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})473 -> 0.0091s474-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})475 -> 0.0049s476-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})477 -> 0.0092s478-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})479 -> 0.0069s480-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})481 -> 0.0093s482-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})483 -> 0.0068s484-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})485 -> 0.0040s486-- create_table("push_rules", {:id=>:serial, :force=>:cascade})487 -> 0.0095s488-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})489 -> 0.0073s490-- create_table("release_links", {:force=>:cascade})491 -> 0.0073s492-- create_table("releases", {:id=>:serial, :force=>:cascade})493 -> 0.0095s494-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})495 -> 0.0084s496-- create_table("repository_languages", {:id=>false, :force=>:cascade})497 -> 0.0033s498-- create_table("resource_label_events", {:force=>:cascade})499 -> 0.0133s500-- create_table("reviews", {:force=>:cascade})501 -> 0.0083s502-- create_table("routes", {:id=>:serial, :force=>:cascade})503 -> 0.0094s504-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})505 -> 0.0057s506-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})507 -> 0.0050s508-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})509 -> 0.0051s510-- create_table("services", {:id=>:serial, :force=>:cascade})511 -> 0.0162s512-- create_table("shards", {:id=>:serial, :force=>:cascade})513 -> 0.0048s514-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})515 -> 0.0072s516-- create_table("smartcard_identities", {:force=>:cascade})517 -> 0.0068s518-- create_table("snippets", {:id=>:serial, :force=>:cascade})519 -> 0.0161s520-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})521 -> 0.0068s522-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})523 -> 0.0046s524-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})525 -> 0.0039s526-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})527 -> 0.0111s528-- create_table("suggestions", {:force=>:cascade})529 -> 0.0084s530-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})531 -> 0.0050s532-- create_table("taggings", {:id=>:serial, :force=>:cascade})533 -> 0.0117s534-- create_table("tags", {:id=>:serial, :force=>:cascade})535 -> 0.0072s536-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})537 -> 0.0090s538-- create_table("timelogs", {:id=>:serial, :force=>:cascade})539 -> 0.0086s540-- create_table("todos", {:id=>:serial, :force=>:cascade})541 -> 0.0225s542-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})543 -> 0.0044s544-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})545 -> 0.0070s546-- create_table("uploads", {:id=>:serial, :force=>:cascade})547 -> 0.0113s548-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})549 -> 0.0056s550-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})551 -> 0.0063s552-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})553 -> 0.0071s554-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})555 -> 0.0052s556-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})557 -> 0.0067s558-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})559 -> 0.0051s560-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})561 -> 0.0060s562-- create_table("users", {:id=>:serial, :force=>:cascade})563 -> 0.0599s564-- create_table("users_ops_dashboard_projects", {:force=>:cascade})565 -> 0.0066s566-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})567 -> 0.0063s568-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})569 -> 0.0156s570-- create_table("vulnerability_identifiers", {:force=>:cascade})571 -> 0.0050s572-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})573 -> 0.0064s574-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})575 -> 0.0066s576-- create_table("vulnerability_occurrences", {:force=>:cascade})577 -> 0.0120s578-- create_table("vulnerability_scanners", {:force=>:cascade})579 -> 0.0049s580-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})581 -> 0.0073s582-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})583 -> 0.0134s584-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})585 -> 0.0048s586-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})587 -> 0.0039s588-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})589 -> 0.0027s590-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})591 -> 0.0033s592-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})593 -> 0.0021s594-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})595 -> 0.0016s596-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})597 -> 0.0026s598-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})599 -> 0.0015s600-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})601 -> 0.0016s602-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})603 -> 0.0015s604-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})605 -> 0.0014s606-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})607 -> 0.0014s608-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})609 -> 0.0017s610-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})611 -> 0.0019s612-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})613 -> 0.0014s614-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})615 -> 0.0017s616-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})617 -> 0.0015s618-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})619 -> 0.0016s620-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})621 -> 0.0016s622-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})623 -> 0.0015s624-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})625 -> 0.0015s626-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})627 -> 0.0017s628-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})629 -> 0.0017s630-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})631 -> 0.0015s632-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})633 -> 0.0015s634-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})635 -> 0.0014s636-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})637 -> 0.0017s638-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})639 -> 0.0014s640-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})641 -> 0.0018s642-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})643 -> 0.0026s644-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})645 -> 0.0017s646-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})647 -> 0.0017s648-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :on_delete=>:cascade})649 -> 0.0014s650-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})651 -> 0.0016s652-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})653 -> 0.0016s654-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})655 -> 0.0027s656-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})657 -> 0.0016s658-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})659 -> 0.0018s660-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})661 -> 0.0014s662-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})663 -> 0.0016s664-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})665 -> 0.0017s666-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})667 -> 0.0022s668-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})669 -> 0.0015s670-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})671 -> 0.0016s672-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})673 -> 0.0017s674-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})675 -> 0.0020s676-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})677 -> 0.0015s678-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})679 -> 0.0017s680-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})681 -> 0.0015s682-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})683 -> 0.0015s684-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})685 -> 0.0017s686-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})687 -> 0.0020s688-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})689 -> 0.0017s690-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})691 -> 0.0016s692-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})693 -> 0.0014s694-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})695 -> 0.0015s696-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})697 -> 0.0018s698-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})699 -> 0.0017s700-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})701 -> 0.0015s702-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})703 -> 0.0013s704-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})705 -> 0.0013s706-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})707 -> 0.0017s708-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})709 -> 0.0019s710-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})711 -> 0.0017s712-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})713 -> 0.0016s714-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})715 -> 0.0020s716-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})717 -> 0.0018s718-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})719 -> 0.0014s720-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})721 -> 0.0014s722-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})723 -> 0.0017s724-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})725 -> 0.0017s726-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})727 -> 0.0013s728-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})729 -> 0.0017s730-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})731 -> 0.0015s732-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})733 -> 0.0018s734-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})735 -> 0.0016s736-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})737 -> 0.0018s738-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})739 -> 0.0016s740-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})741 -> 0.0015s742-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})743 -> 0.0017s744-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})745 -> 0.0016s746-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})747 -> 0.0018s748-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})749 -> 0.0015s750-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})751 -> 0.0017s752-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})753 -> 0.0015s754-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})755 -> 0.0016s756-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})757 -> 0.0015s758-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})759 -> 0.0017s760-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})761 -> 0.0015s762-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})763 -> 0.0014s764-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})765 -> 0.0014s766-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})767 -> 0.0015s768-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})769 -> 0.0013s770-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})771 -> 0.0016s772-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})773 -> 0.0013s774-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})775 -> 0.0016s776-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})777 -> 0.0020s778-- add_foreign_key("container_repositories", "projects")779 -> 0.0020s780-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :name=>"fk_db58bbc5d7", :on_delete=>:cascade})781 -> 0.0015s782-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :name=>"fk_616ddd680a", :on_delete=>:cascade})783 -> 0.0016s784-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})785 -> 0.0025s786-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})787 -> 0.0022s788-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})789 -> 0.0019s790-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})791 -> 0.0024s792-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})793 -> 0.0019s794-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})795 -> 0.0014s796-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})797 -> 0.0014s798-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})799 -> 0.0016s800-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})801 -> 0.0018s802-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})803 -> 0.0017s804-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})805 -> 0.0017s806-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})807 -> 0.0018s808-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})809 -> 0.0018s810-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})811 -> 0.0020s812-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})813 -> 0.0015s814-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})815 -> 0.0015s816-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})817 -> 0.0013s818-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})819 -> 0.0018s820-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})821 -> 0.0016s822-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})823 -> 0.0019s824-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})825 -> 0.0017s826-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})827 -> 0.0022s828-- add_foreign_key("events", "projects", {:on_delete=>:cascade})829 -> 0.0021s830-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})831 -> 0.0015s832-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})833 -> 0.0017s834-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})835 -> 0.0017s836-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})837 -> 0.0017s838-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})839 -> 0.0016s840-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})841 -> 0.0016s842-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})843 -> 0.0015s844-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})845 -> 0.0021s846-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})847 -> 0.0013s848-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})849 -> 0.0014s850-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})851 -> 0.0014s852-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})853 -> 0.0013s854-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})855 -> 0.0015s856-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})857 -> 0.0014s858-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})859 -> 0.0014s860-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})861 -> 0.0014s862-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})863 -> 0.0014s864-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})865 -> 0.0014s866-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})867 -> 0.0014s868-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})869 -> 0.0019s870-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})871 -> 0.0019s872-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})873 -> 0.0018s874-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})875 -> 0.0017s876-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})877 -> 0.0018s878-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})879 -> 0.0014s880-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})881 -> 0.0018s882-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})883 -> 0.0018s884-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})885 -> 0.0017s886-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})887 -> 0.0017s888-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})889 -> 0.0019s890-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})891 -> 0.0015s892-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})893 -> 0.0017s894-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})895 -> 0.0018s896-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})897 -> 0.0017s898-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})899 -> 0.0015s900-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})901 -> 0.0019s902-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})903 -> 0.0017s904-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})905 -> 0.0017s906-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})907 -> 0.0020s908-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})909 -> 0.0019s910-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})911 -> 0.0017s912-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})913 -> 0.0018s914-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})915 -> 0.0021s916-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})917 -> 0.0018s918-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})919 -> 0.0015s920-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})921 -> 0.0015s922-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})923 -> 0.0026s924-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})925 -> 0.0016s926-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})927 -> 0.0014s928-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})929 -> 0.0016s930-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})931 -> 0.0018s932-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})933 -> 0.0014s934-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})935 -> 0.0015s936-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})937 -> 0.0020s938-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})939 -> 0.0019s940-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})941 -> 0.0018s942-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})943 -> 0.0018s944-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:name=>"fk_f1d617343f", :on_delete=>:cascade})945 -> 0.0018s946-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:name=>"fk_a3c10bcf7d", :on_delete=>:cascade})947 -> 0.0018s948-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})949 -> 0.0017s950-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})951 -> 0.0015s952-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})953 -> 0.0016s954-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})955 -> 0.0019s956-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})957 -> 0.0016s958-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})959 -> 0.0019s960-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})961 -> 0.0022s962-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})963 -> 0.0017s964-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})965 -> 0.0017s966-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})967 -> 0.0014s968-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})969 -> 0.0015s970-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})971 -> 0.0019s972-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})973 -> 0.0022s974-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})975 -> 0.0019s976-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})977 -> 0.0018s978-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})979 -> 0.0016s980-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})981 -> 0.0014s982-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})983 -> 0.0016s984-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})985 -> 0.0015s986-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})987 -> 0.0015s988-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})989 -> 0.0019s990-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})991 -> 0.0017s992-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})993 -> 0.0021s994-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})995 -> 0.0020s996-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})997 -> 0.0020s998-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})999 -> 0.0016s1000-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1001 -> 0.0018s1002-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1003 -> 0.0020s1004-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1005 -> 0.0021s1006-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1007 -> 0.0021s1008-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1009 -> 0.0020s1010-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1011 -> 0.0020s1012-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1013 -> 0.0020s1014-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1015 -> 0.0019s1016-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1017 -> 0.0018s1018-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1019 -> 0.0017s1020-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1021 -> 0.0018s1022-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1023 -> 0.0018s1024-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1025 -> 0.0019s1026-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1027 -> 0.0017s1028-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1029 -> 0.0021s1030-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1031 -> 0.0018s1032-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1033 -> 0.0017s1034-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1035 -> 0.0017s1036-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1037 -> 0.0016s1038-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1039 -> 0.0016s1040-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1041 -> 0.0021s1042-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1043 -> 0.0019s1044-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1045 -> 0.0020s1046-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1047 -> 0.0016s1048-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1049 -> 0.0021s1050-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1051 -> 0.0015s1052-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1053 -> 0.0017s1054-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1055 -> 0.0020s1056-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1057 -> 0.0021s1058-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1059 -> 0.0016s1060-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1061 -> 0.0013s1062-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1063 -> 0.0019s1064-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1065 -> 0.0025s1066-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1067 -> 0.0021s1068-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1069 -> 0.0021s1070-- add_foreign_key("path_locks", "users")1071 -> 0.0018s1072-- add_foreign_key("personal_access_tokens", "users")1073 -> 0.0019s1074-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1075 -> 0.0019s1076-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1077 -> 0.0015s1078-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1079 -> 0.0020s1080-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1081 -> 0.0019s1082-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1083 -> 0.0019s1084-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1085 -> 0.0017s1086-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1087 -> 0.0019s1088-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1089 -> 0.0018s1090-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1091 -> 0.0019s1092-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1093 -> 0.0019s1094-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1095 -> 0.0016s1096-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1097 -> 0.0019s1098-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1099 -> 0.0020s1100-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1101 -> 0.0020s1102-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1103 -> 0.0019s1104-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1105 -> 0.0020s1106-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1107 -> 0.0019s1108-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1109 -> 0.0018s1110-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1111 -> 0.0018s1112-- add_foreign_key("project_mirror_data", "projects", {:on_delete=>:cascade})1113 -> 0.0021s1114-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1115 -> 0.0020s1116-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1117 -> 0.0014s1118-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1119 -> 0.0021s1120-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1121 -> 0.0020s1122-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1123 -> 0.0019s1124-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1125 -> 0.0020s1126-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1127 -> 0.0020s1128-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1129 -> 0.0015s1130-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1131 -> 0.0016s1132-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1133 -> 0.0019s1134-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1135 -> 0.0016s1136-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1137 -> 0.0019s1138-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1139 -> 0.0018s1140-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1141 -> 0.0015s1142-- add_foreign_key("protected_branch_merge_access_levels", "users")1143 -> 0.0018s1144-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1145 -> 0.0017s1146-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1147 -> 0.0014s1148-- add_foreign_key("protected_branch_push_access_levels", "users")1149 -> 0.0018s1150-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1151 -> 0.0017s1152-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1153 -> 0.0015s1154-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1155 -> 0.0019s1156-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1157 -> 0.0020s1158-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1159 -> 0.0018s1160-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1161 -> 0.0015s1162-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1163 -> 0.0019s1164-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1165 -> 0.0020s1166-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1167 -> 0.0019s1168-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1169 -> 0.0015s1170-- add_foreign_key("protected_tag_create_access_levels", "users")1171 -> 0.0019s1172-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1173 -> 0.0019s1174-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1175 -> 0.0015s1176-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1177 -> 0.0022s1178-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1179 -> 0.0026s1180-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1181 -> 0.0021s1182-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1183 -> 0.0019s1184-- add_foreign_key("remote_mirrors", "projects", {:on_delete=>:cascade})1185 -> 0.0026s1186-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1187 -> 0.0021s1188-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1189 -> 0.0020s1190-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1191 -> 0.0017s1192-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1193 -> 0.0015s1194-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1195 -> 0.0017s1196-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1197 -> 0.0019s1198-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1199 -> 0.0017s1200-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1201 -> 0.0020s1202-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1203 -> 0.0018s1204-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1205 -> 0.0016s1206-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1207 -> 0.0016s1208-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1209 -> 0.0022s1210-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1211 -> 0.0016s1212-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1213 -> 0.0021s1214-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1215 -> 0.0023s1216-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1217 -> 0.0022s1218-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1219 -> 0.0015s1220-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1221 -> 0.0020s1222-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1223 -> 0.0016s1224-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1225 -> 0.0027s1226-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1227 -> 0.0016s1228-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1229 -> 0.0020s1230-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1231 -> 0.0018s1232-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1233 -> 0.0017s1234-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1235 -> 0.0022s1236-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1237 -> 0.0015s1238-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1239 -> 0.0021s1240-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1241 -> 0.0018s1242-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1243 -> 0.0018s1244-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1245 -> 0.0020s1246-- add_foreign_key("u2f_registrations", "users")1247 -> 0.0021s1248-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1249 -> 0.0020s1250-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1251 -> 0.0019s1252-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1253 -> 0.0020s1254-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1255 -> 0.0017s1256-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1257 -> 0.0020s1258-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1259 -> 0.0018s1260-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1261 -> 0.0019s1262-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1263 -> 0.0018s1264-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1265 -> 0.0022s1266-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1267 -> 0.0021s1268-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1269 -> 0.0018s1270-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1271 -> 0.0021s1272-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1273 -> 0.0018s1274-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1275 -> 0.0017s1276-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1277 -> 0.0017s1278-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1279 -> 0.0022s1280-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1281 -> 0.0021s1282-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1283 -> 0.0018s1284-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1285 -> 0.0022s1286-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1287 -> 0.0015s1288-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1289 -> 0.0016s1290-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1291 -> 0.0016s1292-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1293 -> 0.0013s1294-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1295 -> 0.0022s1296-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1297 -> 0.0014s1298-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1299 -> 0.0014s1300-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1301 -> 0.0020s1302-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1303 -> 0.0019s1304-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1305 -> 0.0021s1306$ date1307Fri Aug 23 08:00:35 UTC 20191308$ JOB_NAME=( $CI_JOB_NAME )1309$ TEST_TOOL=${JOB_NAME[0]}1310$ TEST_LEVEL=${JOB_NAME[1]}1311$ DATABASE=${JOB_NAME[2]}1312$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1313$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec1314$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1315$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1316$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1317$ export FLAKY_RSPEC_GENERATE_REPORT=true1318$ export CACHE_CLASSES=true1319$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1320$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1321$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1322$ scripts/gitaly-test-spawn1323Checking gitaly-ruby bundle...1324Warning: 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`.1325The Gemfile's dependencies are satisfied1326Trying to connect to gitaly: ...... OK1327$ date1328Fri Aug 23 08:00:36 UTC 20191329$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")1330$ mkdir -p tmp/memory_test1331$ export MEMORY_TEST_PATH="tmp/memory_test/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"1332$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"1333Report specs:1334spec/models/repository_spec.rb1335spec/lib/gitlab/git_access_spec.rb1336spec/workers/gitlab_usage_ping_worker_spec.rb1337spec/policies/group_policy_spec.rb1338spec/lib/gitlab/ci/trace_spec.rb1339spec/services/merge_requests/rebase_service_spec.rb1340spec/services/ci/retry_pipeline_service_spec.rb1341spec/services/boards/lists/move_service_spec.rb1342spec/services/projects/destroy_service_spec.rb1343spec/presenters/project_presenter_spec.rb1344spec/models/project_services/hipchat_service_spec.rb1345spec/lib/gitlab/import_export/fork_spec.rb1346spec/uploaders/attachment_uploader_spec.rb1347spec/serializers/pipeline_entity_spec.rb1348spec/models/pages_domain_acme_order_spec.rb1349spec/uploaders/avatar_uploader_spec.rb1350spec/models/members/group_member_spec.rb1351spec/models/service_spec.rb1352spec/lib/gitlab/auth/o_auth/user_spec.rb1353spec/services/issuable/common_system_notes_service_spec.rb1354spec/services/merge_requests/assign_issues_service_spec.rb1355spec/policies/ci/trigger_policy_spec.rb1356spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb1357spec/services/lfs/file_transformer_spec.rb1358spec/lib/banzai/filter/project_reference_filter_spec.rb1359spec/services/merge_requests/post_merge_service_spec.rb1360spec/lib/gitlab/gitaly_client/commit_service_spec.rb1361spec/models/commit_collection_spec.rb1362spec/models/diff_viewer/base_spec.rb1363spec/lib/gitlab/blob_helper_spec.rb1364spec/models/hooks/system_hook_spec.rb1365spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb1366spec/services/notes/build_service_spec.rb1367spec/lib/gitlab/multi_collection_paginator_spec.rb1368spec/services/projects/auto_devops/disable_service_spec.rb1369spec/services/ci/destroy_pipeline_service_spec.rb1370spec/models/clusters/clusters_hierarchy_spec.rb1371spec/views/projects/commit/_commit_box.html.haml_spec.rb1372spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb1373spec/workers/ci/archive_traces_cron_worker_spec.rb1374spec/models/concerns/group_descendant_spec.rb1375spec/workers/project_cache_worker_spec.rb1376spec/serializers/project_note_entity_spec.rb1377spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb1378spec/services/users/build_service_spec.rb1379spec/lib/banzai/object_renderer_spec.rb1380spec/views/projects/merge_requests/diffs/_diffs.html.haml_spec.rb1381spec/presenters/ci/variable_presenter_spec.rb1382spec/models/concerns/has_environment_scope_spec.rb1383spec/config/mail_room_spec.rb1384spec/lib/gitlab/github_import/importer/issue_importer_spec.rb1385spec/services/clusters/create_service_spec.rb1386spec/workers/deployments/finished_worker_spec.rb1387spec/services/groups/nested_create_service_spec.rb1388spec/lib/gitlab/ci/trace/stream_spec.rb1389spec/services/projects/move_deploy_keys_projects_service_spec.rb1390spec/lib/gitlab/ci/pipeline/chain/command_spec.rb1391spec/models/project_services/chat_notification_service_spec.rb1392spec/lib/gitlab/data_builder/deployment_spec.rb1393spec/tasks/gitlab/update_templates_rake_spec.rb1394spec/lib/gitlab/metrics/dashboard/processor_spec.rb1395spec/finders/members_finder_spec.rb1396spec/lib/gitlab/diff/position_tracer_spec.rb1397spec/lib/gitlab/phabricator_import/base_worker_spec.rb1398spec/validators/sha_validator_spec.rb1399spec/workers/issue_due_scheduler_worker_spec.rb1400spec/lib/gitlab/job_waiter_spec.rb1401spec/models/concerns/protected_ref_access_spec.rb1402spec/workers/repository_remove_remote_worker_spec.rb1403spec/policies/ci/pipeline_schedule_policy_spec.rb1404spec/lib/gitlab/import_export/uploads_saver_spec.rb1405spec/views/shared/milestones/_top.html.haml_spec.rb1406spec/lib/gitlab/background_migration/migrate_build_stage_spec.rb1407spec/migrations/cleanup_build_stage_migration_spec.rb1408spec/lib/gitlab/data_builder/wiki_page_spec.rb1409spec/services/delete_branch_service_spec.rb1410spec/workers/reactive_caching_worker_spec.rb1411spec/workers/build_coverage_worker_spec.rb1412spec/models/ci/build_metadata_spec.rb1413spec/models/project_services/campfire_service_spec.rb1414spec/lib/gitlab/ci/status/build/canceled_spec.rb1415spec/lib/gitlab/ci/status/build/erased_spec.rb1416spec/serializers/project_mirror_entity_spec.rb1417spec/workers/ci/build_prepare_worker_spec.rb1418spec/serializers/merge_request_for_pipeline_entity_spec.rb1419spec/serializers/merge_request_widget_commit_entity_spec.rb1420spec/serializers/user_entity_spec.rb1421spec/serializers/analytics_build_serializer_spec.rb1422spec/helpers/user_callouts_helper_spec.rb1423spec/services/import_export_clean_up_service_spec.rb1424spec/models/project_authorization_spec.rb1425spec/lib/gitlab/phabricator_import/importer_spec.rb1426spec/models/spam_log_spec.rb1427spec/policies/application_setting/term_policy_spec.rb1428spec/lib/gitlab/json_cache_spec.rb1429spec/views/projects/issues/_related_branches.html.haml_spec.rb1430spec/lib/gitlab/allowable_spec.rb1431spec/models/uploads/local_spec.rb1432spec/services/update_snippet_service_spec.rb1433spec/presenters/ci/trigger_presenter_spec.rb1434spec/lib/gitlab/external_authorization/client_spec.rb1435spec/models/system_note_metadata_spec.rb1436spec/workers/project_daily_statistics_worker_spec.rb1437spec/lib/gitlab/phabricator_import/import_tasks_worker_spec.rb1438spec/models/import_export_upload_spec.rb1439spec/models/deploy_key_spec.rb1440spec/uploaders/lfs_object_uploader_spec.rb1441spec/services/projects/protect_default_branch_service_spec.rb1442spec/finders/admin/runners_finder_spec.rb1443spec/lib/gitlab/auth/blocked_user_tracker_spec.rb1444spec/lib/gitlab/gitlab_import/importer_spec.rb1445spec/helpers/boards_helper_spec.rb1446spec/lib/gitlab/verify/lfs_objects_spec.rb1447spec/workers/wait_for_cluster_creation_worker_spec.rb1448spec/workers/pipeline_hooks_worker_spec.rb1449spec/models/ci/artifact_blob_spec.rb1450spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb1451spec/models/instance_configuration_spec.rb1452spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb1453spec/lib/gitlab/external_authorization/access_spec.rb1454spec/views/devise/shared/_signin_box.html.haml_spec.rb1455spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb1456spec/lib/gitlab/git/hook_env_spec.rb1457spec/workers/pages_domain_verification_cron_worker_spec.rb1458spec/lib/gitlab/ci/config/entry/root_spec.rb1459spec/tasks/gitlab/workhorse_rake_spec.rb1460spec/workers/expire_job_cache_worker_spec.rb1461spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb1462spec/helpers/sorting_helper_spec.rb1463spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb1464spec/services/task_list_toggle_service_spec.rb1465spec/workers/pages_domain_verification_worker_spec.rb1466spec/services/projects/forks_count_service_spec.rb1467spec/lib/gitlab/sql/recursive_cte_spec.rb1468spec/workers/authorized_projects_worker_spec.rb1469spec/lib/microsoft_teams/notifier_spec.rb1470spec/lib/gitlab/ci/config/entry/service_spec.rb1471spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb1472spec/graphql/resolvers/group_resolver_spec.rb1473spec/lib/gitlab/time_tracking_formatter_spec.rb1474spec/helpers/broadcast_messages_helper_spec.rb1475spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb1476spec/bin/changelog_spec.rb1477spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb1478spec/lib/gitlab/external_authorization/cache_spec.rb1479spec/lib/gitlab/kubernetes_spec.rb1480spec/lib/gitlab/untrusted_regexp_spec.rb1481spec/lib/gitlab/import_export/model_configuration_spec.rb1482spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb1483spec/lib/gitlab/cache/request_cache_spec.rb1484spec/lib/gitlab/ci/config/external/file/base_spec.rb1485spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb1486spec/models/concerns/sha_attribute_spec.rb1487spec/routing/uploads_routing_spec.rb1488spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb1489spec/validators/js_regex_validator_spec.rb1490spec/lib/gitlab/ci/config/entry/artifacts_spec.rb1491spec/lib/gitlab/github_import/importer/issues_importer_spec.rb1492spec/rubocop/cop/graphql/authorize_types_spec.rb1493spec/lib/bitbucket/representation/pull_request_comment_spec.rb1494spec/lib/gitlab/cycle_analytics/production_stage_spec.rb1495spec/lib/gitlab/git/conflict/file_spec.rb1496spec/lib/gitlab/sidekiq_signals_spec.rb1497spec/graphql/types/merge_request_type_spec.rb1498spec/lib/gitlab/zoom_link_extractor_spec.rb1499spec/lib/gitlab/ci/pipeline/duration_spec.rb1500spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb1501spec/helpers/blame_helper_spec.rb1502spec/lib/gitlab/github_import/representation/user_spec.rb1503spec/lib/backup/uploads_spec.rb1504spec/lib/gitlab/reference_counter_spec.rbKnapsack report generator started!1505/builds/gitlab-org/gitlab-ce/vendor/ruby/2.6.0/bin/rspec: No such file or directory - with1506Run options:1507 include {:level=>"unit"}1508 exclude {:geo=>true}1509==> Setting up GitLab Shell...1510 GitLab Shell set up in 0.083727623 seconds...1511==> Setting up Gitaly...1512 Gitaly set up in 0.000144791 seconds...1513Repository1514 #branch_names_contains1515 should include "master"1516 should not include "feature"1517 should not include "fix"1518 when storage is broken1519 raises a storage error1520 #tag_names_contains1521 should include "v1.1.0"1522 should not include "v1.0.0"1523 tags_sorted_by1524 name_desc1525 should eq ["v1.1.0", "v1.0.0"]1526 name_asc1527 should eq ["v1.0.0", "v1.1.0"]1528 updated1529 desc1530 should eq ["v1.0.0", "v1.1.0"]1531 asc1532 should eq ["v1.1.0", "v1.0.0"]1533 annotated tag pointing to a blob1534 should eq ["v1.1.0", "v1.0.0", "annotated-tag"]1535 #ref_name_for_sha1536 returns the ref1537 #ref_exists?1538 when ref exists1539 returns true1540 when ref does not exist1541 returns false1542 when ref format is incorrect1543 returns false1544 #list_last_commits_for_tree1545 returns the last commits for every entry in the current path1546 returns the last commits for every entry in the current path starting from the offset1547 returns a limited number of last commits for every entry in the current path starting from the offset1548 returns an empty hash when offset is out of bounds1549 with a commit with invalid UTF-8 path1550 does not raise an error1551 #last_commit_for_path1552 should eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"1553 when storage is broken1554 raises a storage error1555 #last_commit_id_for_path1556 returns last commit id for a given path1557 caches last commit id for a given path1558 when storage is broken1559 raises a storage error1560 #commits1561 when neither the all flag nor a ref are specified1562 returns every commit from default branch1563 when ref is passed1564 returns every commit from the specified ref1565 when all1566 returns every commit from the repository1567 with path1568 sets follow when it is a single path1569 does not set follow when it is multiple paths1570 without path1571 does not set follow1572 when 'all' flag is set1573 returns every commit from the repository1574 #new_commits1575 when there are no new commits1576 returns an empty array1577 when new commits are found1578 returns the commits1579 #commits_by1580 finds each commit1581 returns only Commit instances1582 when some commits are not found1583 returns only found commits1584 when no oids are passed1585 does not call #batch_by_oid1586 #find_commits_by_message1587 returns commits with messages containing a given string1588 is case insensitive1589 when storage is broken1590 raises a storage error1591 #blob_at1592 blank sha1593 should be nil1594 regular blob1595 should be an instance of Blob1596 readme blob on HEAD1597 should be an instance of ReadmeBlob1598 readme blob not on HEAD1599 should be an instance of Blob1600 #merged_to_root_ref?1601 merged branch without ff1602 should be truthy1603 merged with ff1604 should be truthy1605 not merged branch1606 should be falsey1607 default branch1608 should be falsey1609 non merged branch1610 should be falsey1611 non existent branch1612 should be nil1613 #can_be_merged?1614 mergeable branches1615 should be truthy1616 non-mergeable branches without conflict sides missing1617 should be falsey1618 non-mergeable branches with conflict sides missing1619 should be falsey1620 submodule changes that confuse rugged1621 should be falsey1622 #commit1623 when ref exists1624 returns commit object1625 when ref does not exist1626 returns nil1627 when ref is not specified1628 is using a root ref1629 when ref is not valid1630 when preceding tree element exists1631 returns nil1632 when preceding tree element does not exist1633 returns nil1634 #create_dir1635 commits a change that creates a new directory1636 when committing to another project1637 creates a fork and commit to the forked project1638 when an author is specified1639 uses the given email/name to set the commit's author1640 #create_file1641 commits new file successfully1642 creates new file and dir when file_path has a forward slash1643 respects the autocrlf setting1644 when an author is specified1645 uses the given email/name to set the commit's author1646 #update_file1647 updates file successfully1648 updates filename successfully1649 when an author is specified1650 uses the given email/name to set the commit's author1651 #delete_file1652 removes file successfully1653 when an author is specified1654 uses the given email/name to set the commit's author1655 search_files_by_content1656 should be a kind of Array1657 regex-escapes the query string1658 properly handles an unmatched parenthesis1659 properly handles when query is not present1660 properly handles query when repo is empty1661 when storage is broken1662 raises a storage error1663 result1664 should be a kind of String1665 should eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"1666 search_files_by_name1667 returns result1668 ignores leading slashes1669 properly handles when query is only slashes1670 properly handles when query is not present1671 properly handles query when repo is empty1672 when storage is broken1673 raises a storage error1674 #async_remove_remote1675 when worker is scheduled successfully1676 returns job_id1677 when worker does not schedule successfully1678 returns nil1679 #fetch_ref1680 when storage is broken1681 raises a storage error1682 #get_raw_changes1684 returns the changes1685 #create_ref1686 redirects the call to write_ref1687 #changelog1688 accepts changelog1689 accepts news instead of changelog1690 accepts history instead of changelog1691 accepts changes instead of changelog1692 is case-insensitive1693 #license_blob1694 handles when HEAD points to non-existent ref1695 looks in the root_ref only1696 detects license file with no recognizable open-source license content1697 detects 'LICENSE'1698 detects 'LICENCE'1699 detects 'LiCensE'1700 detects 'LICENSE.md'1701 detects 'LICENSE.foo'1702 detects 'COPYING'1703 detects 'COPYING.md'1704 #license_key1705 returns nil when no license is detected1706 returns nil when the repository does not exist1707 returns nil when the content is not recognizable1708 returns nil when the commit SHA does not exist1709 returns nil when master does not exist1710 returns the license key1711 #license1712 returns nil when no license is detected1713 returns nil when the repository does not exist1714 returns nil when the content is not recognizable1715 returns the license1716 #gitlab_ci_yml1717 returns valid file1718 returns nil if not exists1719 returns nil for empty repository1720 #ambiguous_ref?1721 when ref is ambiguous1722 is true1723 when ref is not ambiguous1724 is false1725 #expand_ref1726 when ref is not tag or branch name1727 returns nil1728 when ref is tag name1729 returns the tag ref1730 when ref is branch name1731 returns the branch ref1732 #add_branch1733 calls Gitaly's OperationService1734 creates_the_branch1735 with a non-existing target1736 returns false and doesn't create the branch1737 #exists?1738 returns true when a repository exists1739 returns false if no full path can be constructed1740 with broken storage1741 raises a storage error1742 behaves like asymmetric cached method1743 asymmetric caching1744 when it returns true1745 caches the output in RequestStore1746 caches the output in RepositoryCache1747 when it returns false1748 caches the output in RequestStore1749 does NOT cache the output in RepositoryCache1750 #has_visible_content?1751 when true1752 returns true and caches it1753 when false1754 returns false and caches it1755 #branch_exists?1756 uses branch_names1757 #tag_exists?1758 uses tag_names1759 #branch_names1760 gets cached across Repository instances1761 #empty?1762 returns true for an empty repository1763 returns false for a non-empty repository1764 caches the output1765 #blobs_at1766 returns empty array for an empty repository1767 returns blob array for a non-empty repository1768 #root_ref1769 returns a branch name1770 caches the output1771 behaves like asymmetric cached method1772 asymmetric caching1773 when it returns true1774 caches the output in RequestStore1775 caches the output in RepositoryCache1776 when it returns false1777 caches the output in RequestStore1778 does NOT cache the output in RepositoryCache1779 #expire_root_ref_cache1780 expires the root reference cache1781 #expire_branch_cache1782 expires the cache for all branches1783 expires the cache for all branches when the root branch is given1784 expires the cache for a specific branch1785 #expire_emptiness_caches1786 expires the caches for an empty repository1787 does not expire the cache for a non-empty repository1788 expires the memoized repository cache1789 skip_merges option1790 should not include "e56497bb5f03a90a51293fc6d516788730953899"1791 #merge1792 merges the code and returns the commit id1793 sets the `in_progress_merge_commit_sha` flag for the given merge request1794 removes carriage returns from commit message1795 #merge_to_ref1796 writes merge of source SHA and first parent ref to MR merge_ref_path1797 #ff_merge1798 merges the code and return the commit id1799 sets the `in_progress_merge_commit_sha` flag for the given merge request1800 #rebase1801 when two_step_rebase feature is enabled1802 executes the new Gitaly RPC1803 behaves like a method that can rebase successfully1804 returns the rebase commit sha1805 sets the `rebase_commit_sha` for the given merge request1806 rolling back the `rebase_commit_sha`1807 does not rollback when there are no errors1808 does rollback when an error is encountered in the second step1809 when two_step_rebase feature is disabled1810 executes the deprecated Gitaly RPC1811 behaves like a method that can rebase successfully1812 returns the rebase commit sha1813 sets the `rebase_commit_sha` for the given merge request1814 #revert1815 when there is a conflict1816 raises an error1817 when commit was already reverted1818 raises an error1819 when commit can be reverted1820 reverts the changes1821 reverting a merge commit1822 reverts the changes1823 #cherry_pick1824 when there is a conflict1825 raises an error1826 when commit was already cherry-picked1827 raises an error1828 when commit can be cherry-picked1829 cherry-picks the changes1830 cherry-picking a merge commit1831 cherry-picks the changes1832 #before_delete1833 when a repository does not exist1834 does not flush caches that depend on repository data1835 flushes the tags cache1836 flushes the branches cache1837 flushes the root ref cache1838 flushes the emptiness caches1839 flushes the exists cache1840 when a repository exists1841 flushes the tags cache1842 flushes the branches cache1843 flushes the root ref cache1844 flushes the emptiness caches1845 #before_change_head1846 flushes the branch cache1847 flushes the root ref cache1848 #after_change_head1849 flushes the method caches1850 #expires_caches_for_tags1851 flushes the cache1852 #before_push_tag1853 logs an event1854 #after_import1855 flushes and builds the cache1856 #after_push_commit1857 expires statistics caches1858 #after_create_branch1859 expires the branch caches1860 does not expire the branch caches when specified1861 #after_remove_branch1862 expires the branch caches1863 does not expire the branch caches when specified1864 #after_create1865 flushes the exists cache1866 flushes the root ref cache1867 flushes the emptiness caches1868 #copy_gitattributes1869 returns true with a valid ref1870 returns false with an invalid ref1871 #before_remove_tag1872 flushes the tag cache1873 #branch_count1874 returns the number of branches1875 #tag_count1876 returns the number of tags1877 #expire_branches_cache1878 expires the cache1879 #expire_tags_cache1880 expires the cache1881 #add_tag1882 with a valid target1883 creates the tag1884 returns a Gitlab::Git::Tag object1885 with an invalid target1886 returns false1887 #rm_branch1888 removes a branch1889 when pre hooks failed1890 gets an error and does not delete the branch1891 #rm_tag1892 removes a tag1893 #avatar1894 returns nil if repo does not exist1895 returns the first avatar file found in the repository1896 caches the output1897 #expire_exists_cache1898 expires the cache1899 expires the request store cache1900 #xcode_project?1901 when the root contains a *.xcodeproj directory1902 returns true1903 when the root contains a *.xcworkspace directory1904 returns true1905 when the root contains no Xcode config directory1906 returns false1907 #keep_around1908 does not fail if we attempt to reference bad commit1909 stores a reference to the specified commit sha so it isn't garbage collected1910 attempting to call keep_around on truncated ref does not fail1911 for multiple SHAs1912 skips non-existent SHAs1913 skips already-kept-around SHAs1914 #contribution_guide1915 returns and caches the output1916 #gitignore1917 returns and caches the output1918 #readme1919 with a non-existing repository1920 returns nil1921 with an existing repository1922 when no README exists1923 returns nil1924 when a README exists1925 returns the README1926 #readme_path1927 with a non-existing repository1928 returns nil1929 with an existing repository1930 when no README exists1931 returns nil1932 when a README exists1933 returns the README1934 caches the response1935 #expire_statistics_caches1936 expires the caches1937 #expire_all_method_caches1938 expires the caches of all methods1939 all cache_method definitions are in the lists of method caches1940 #file_on_head1941 with a non-existing repository1942 returns nil1943 with a repository that has no blobs1944 returns nil1945 with an existing repository1946 returns a Gitlab::Git::Tree1947 #head_tree1948 with an existing repository1949 returns a Tree1950 with a non-existing repository1951 returns nil1952 #tree1953 using a non-existing repository1954 returns nil1955 returns nil when using a path1956 using an existing repository1957 returns a Tree1958 #size1959 with a non-existing repository1960 returns 01961 with an existing repository1962 returns the repository size as a Float1963 #local_branches1964 returns the local branches1965 #commit_count1966 with a non-existing repository1967 returns 01968 with an existing repository1969 returns the commit count1970 #commit_count_for_ref1971 with a non-existing repository1972 returns 01973 with empty repository1974 returns 01975 when searching for the root ref1976 returns the same count as #commit_count1977 #refresh_method_caches1978 refreshes the caches of the given types1979 #gitlab_ci_yml_for1980 when there is a .gitlab-ci.yml at the commit1981 returns the content1982 when there is no .gitlab-ci.yml at the commit1983 returns nil1984 #route_map_for1985 when there is a .gitlab/route-map.yml at the commit1986 returns the content1987 when there is no .gitlab/route-map.yml at the commit1988 returns nil1989 #ancestor? with Gitaly enabled1990 behaves like #ancestor?1991 is an ancestor1992 is not an ancestor1993 returns false on nil-values1994 returns false for invalid commit IDs1995 #ancestor? with Rugged enabled1996 calls out to the Rugged implementation1997 behaves like #ancestor?1998 is an ancestor1999 is not an ancestor2000 returns false on nil-values2001 returns false for invalid commit IDs2002 #archive_metadata2003 with hashed storage disabled2004 uses the project path to generate the filename2005 with hashed storage enabled2006 uses the project path to generate the filename2007 commit cache2008 caches based on SHA2009 caches nil values2010 #raw_repository2011 returns a Gitlab::Git::Repository representation of the repository2012 with a wiki repository2013 creates a Gitlab::Git::Repository with the proper attributes2014 #contributors2015 returns the array of Gitlab::Contributor for the repository2016 order_by email2017 asc2018 returns all the contributors ordered by email asc case insensitive2019 desc2020 returns all the contributors ordered by email desc case insensitive2021 order_by name2022 asc2023 returns all the contributors ordered by name asc case insensitive2024 desc2025 returns all the contributors ordered by name desc case insensitive2026 order_by commits2027 asc2028 returns all the contributors ordered by commits asc2029 desc2030 returns all the contributors ordered by commits desc2031 invalid ordering2032 returns the contributors unsorted2033 invalid sorting2034 returns the contributors unsorted2035 #merge_base2036 only makes one gitaly call2037 #create_if_not_exists2038 creates the repository if it did not exist2039 calls out to the repository client to create a repo2040 it does nothing if the repository already existed2041 does nothing if the repository already existed2042 when the repository exists but the cache is not up to date2043 does not raise errors2044 #blobs_metadata2045 returns blob metadata in batch for HEAD2046 returns blob metadata for a specified ref2047 performs a single gitaly call2048Gitlab::GitAccess2049 #check with single protocols allowed2050 ssh disabled2051 blocks ssh git push and pull2052 http disabled2053 blocks http push and pull2054 when request is made from CI2055WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ce/spec/lib/gitlab/git_access_spec.rb:59:in `block (6 levels) in <top (required)>'.2056 doesn't block http pull2057 when legacy CI credentials are used2058WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ce/spec/lib/gitlab/git_access_spec.rb:68:in `block (7 levels) in <top (required)>'.2059 doesn't block http pull2060 #check_project_accessibility!2061 when the project exists2062 when actor exists2063 when actor is a DeployKey2064 when the DeployKey has access to the project2065 allows push and pull access2066 when the Deploykey does not have access to the project2067 blocks push and pull with "not found"2068 when actor is a User2069 when the User can read the project2070 allows push and pull access2071 when the User cannot read the project2072 blocks push and pull with "not found"2073 when actor is :ci2074 allows pull access2075 does not block pushes with "not found"2076 when actor is DeployToken2077 when DeployToken is active and belongs to project2078 allows pull access2079 blocks the push2080 when DeployToken does not belong to project2081 blocks pull access2082 blocks the push2083 when actor is nil2084 when guests can read the project2085 allows pull access2086 does not block pushes with "not found"2087 when guests cannot read the project2088 blocks pulls with "not found"2089 blocks pushes with "not found"2090 when the project is nil2091 blocks push and pull with "not found"2092 when user is allowed to create project in namespace2093 blocks pull access with "not found"2094 allows push access2095 when user is not allowed to create project in namespace2096 blocks push and pull with "not found"2097 behaves like #check with a key that is not valid2098 key is too small2099 does not allow keys which are too small2100 key type is not allowed2101 does not allow keys which are too small2102 behaves like #check with a key that is not valid2103 key is too small2104 does not allow keys which are too small2105 key type is not allowed2106 does not allow keys which are too small2107 #add_project_moved_message!2108 when a redirect was not followed to find the project2109 allows push and pull access2110 with a redirect and ssh protocol2111 behaves like check_project_moved2112 enqueues a redirected message for pushing2113 allows push and pull access2114 with a redirect and http protocol2115 behaves like check_project_moved2116 enqueues a redirected message for pushing2117 allows push and pull access2118 #check_authentication_abilities!2119 when download2120 raises unauthorized with download error2121 when authentication abilities include download code2122 does not raise any errors2123 when authentication abilities include build download code2124 does not raise any errors2125 when upload2126 raises unauthorized with push error2127 when authentication abilities include push code2128 does not raise any errors2129 #check_command_disabled!2130 over http2131 when the git-upload-pack command is disabled in config2132 when calling git-upload-pack2133 should raise Gitlab::GitAccess::UnauthorizedError with "Pulling over HTTP is not allowed."2134 when calling git-receive-pack2135 should not raise Exception2136 when the git-receive-pack command is disabled in config2137 when calling git-receive-pack2138 should raise Gitlab::GitAccess::UnauthorizedError with "Pushing over HTTP is not allowed."2139 when calling git-upload-pack2140 should not raise Exception2141 #check_db_accessibility!2142 when in a read-only GitLab instance2143 should raise Gitlab::GitAccess::UnauthorizedError with "You can't push code to a read-only GitLab instance."2144 #ensure_project_on_push!2145 when push2146 when project does not exist2147 when changes is _any2148 when authentication abilities include push code2149 when user can create project in namespace2150 creates a new project2151 when user cannot create project in namespace2152 does not create a new project2153 when authentication abilities do not include push code2154 when user can create project in namespace2155 does not create a new project2156 when check contains actual changes2157 does not create a new project2158 when project exists2159 does not create a new project2160 when deploy key is used2161 does not create a new project2162 when pull2163 when project does not exist2164 does not create a new project2165 #check_download_access!2166 allows maintainers to pull2167 disallows guests to pull2168 disallows blocked users to pull2169 when the project repository does not exist2170 returns not found2171 without access to project2172 pull code2173 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2174 when project is public2175 when repository is enabled2176 give access to download code2177 when repository is disabled2178 does not give access to download code2179 deploy key permissions2180 pull code2181 when project is authorized2182 should not raise Exception2183 when unauthorized2184 from public project2185 should not raise Exception2186 from internal project2187 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2188 from private project2189 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2190 deploy token permissions2191 pull code2192 when project is authorized2193 should not raise Exception2194 when unauthorized2195 from public project2196 should not raise Exception2197 from internal project2198 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2199 from private project2200 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2201 build authentication_abilities permissions2202 owner2203 pull code2204 should not raise Exception2205 reporter user2206 pull code2207 should not raise Exception2208 admin user2209 when member of the project2210 pull code2211 should not raise Exception2212 when is not member of the project2213 pull code2214 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to download code from this project."2215 generic CI (build without a user)2216 pull code2217 should not raise Exception2218 check LFS integrity2219 when LFS is not enabled2220 does not run LFSIntegrity check2221 when LFS is enabled2222 checks LFS integrity only for first change2223 #check_push_access!2225 has the correct permissions for admins2226 has the correct permissions for maintainers2227 has the correct permissions for developers2228 has the correct permissions for reporters2229 has the correct permissions for guests2230 when developers are allowed to push into the exact protected branch2231 has the correct permissions for admins2232 has the correct permissions for maintainers2233 has the correct permissions for developers2234 has the correct permissions for reporters2235 has the correct permissions for guests2236 developers are allowed to merge into the exact protected branch2237 when a merge request exists for the given source/target branch2238 when the merge request is in progress2239 has the correct permissions for admins2240 has the correct permissions for maintainers2241 has the correct permissions for developers2242 has the correct permissions for reporters2243 has the correct permissions for guests2244 when the merge request is not in progress2245 has the correct permissions for admins2246 has the correct permissions for maintainers2247 has the correct permissions for developers2248 has the correct permissions for reporters2249 has the correct permissions for guests2250 when a merge request does not exist for the given source/target branch2251 has the correct permissions for admins2252 has the correct permissions for maintainers2253 has the correct permissions for developers2254 has the correct permissions for reporters2255 has the correct permissions for guests2256 when developers are allowed to push and merge into the exact protected branch2257 has the correct permissions for admins2258 has the correct permissions for maintainers2259 has the correct permissions for developers2260 has the correct permissions for reporters2261 has the correct permissions for guests2262 when no one is allowed to push to the feature protected branch2263 has the correct permissions for admins2264 has the correct permissions for maintainers2265 has the correct permissions for developers2266 has the correct permissions for reporters2267 has the correct permissions for guests2269 has the correct permissions for admins2270 has the correct permissions for maintainers2271 has the correct permissions for developers2272 has the correct permissions for reporters2273 has the correct permissions for guests2274 when developers are allowed to push into the wildcard protected branch2275 has the correct permissions for admins2276 has the correct permissions for maintainers2277 has the correct permissions for developers2278 has the correct permissions for reporters2279 has the correct permissions for guests2280 developers are allowed to merge into the wildcard protected branch2281 when a merge request exists for the given source/target branch2282 when the merge request is in progress2283 has the correct permissions for admins2284 has the correct permissions for maintainers2285 has the correct permissions for developers2286 has the correct permissions for reporters2287 has the correct permissions for guests2288 when the merge request is not in progress2289 has the correct permissions for admins2290 has the correct permissions for maintainers2291 has the correct permissions for developers2292 has the correct permissions for reporters2293 has the correct permissions for guests2294 when a merge request does not exist for the given source/target branch2295 has the correct permissions for admins2296 has the correct permissions for maintainers2297 has the correct permissions for developers2298 has the correct permissions for reporters2299 has the correct permissions for guests2300 when developers are allowed to push and merge into the wildcard protected branch2301 has the correct permissions for admins2302 has the correct permissions for maintainers2303 has the correct permissions for developers2304 has the correct permissions for reporters2305 has the correct permissions for guests2306 when no one is allowed to push to the feat* protected branch2307 has the correct permissions for admins2308 has the correct permissions for maintainers2309 has the correct permissions for developers2310 has the correct permissions for reporters2311 has the correct permissions for guests2312 when pushing to a project2313 cleans up the files2314 avoids N+1 queries2315 raises TimeoutError when #check_single_change_access raises a timeout error2316 build authentication abilities2317 when project is authorized2318 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2319 when unauthorized2320 to public project2321 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2322 to internal project2323 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2324 to private project2325 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2326 when the repository is read only2327 denies push access2328 deploy key permissions2329 when deploy_key can push2330 when project is authorized2331 should not raise Exception2332 when unauthorized2333 to public project2334 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2335 to internal project2336 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2337 to private project2338 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2339 when deploy_key cannot push2340 when project is authorized2341 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2342 when unauthorized2343 to public project2344 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2345 to internal project2346 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2347 to private project2348 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2349 terms are enforced2350 as an anonymous user to a public project2351 should not raise Exception2352 as a guest to a public project2353 behaves like access after accepting terms2354 blocks access when the user did not accept terms2355 allows access when the user accepted the terms2356 as a reporter to the project2357 behaves like access after accepting terms2358 blocks access when the user did not accept terms2359 allows access when the user accepted the terms2360 as a developer of the project2361 behaves like access after accepting terms2362 blocks access when the user did not accept terms2363 allows access when the user accepted the terms2364 as a maintainer of the project2365 behaves like access after accepting terms2366 blocks access when the user did not accept terms2367 allows access when the user accepted the terms2368 as an owner of the project2369 behaves like access after accepting terms2370 blocks access when the user did not accept terms2371 allows access when the user accepted the terms2372 when a ci build clones the project2373 doesn't block http pull2374GitlabUsagePingWorker2375 delegates to SubmitUsagePingService2376GroupPolicy2377 with no user2378 should not be allowed :read_namespace2379 with no user and public project2380 should not be allowed :read_group2381 with foreign user and public project2382 should not be allowed :read_group2383 has projects2384 should be allowed :read_list2385 in subgroups2386 should be allowed :read_list2387 guests2388 should not be allowed :create_subgroup2389 reporter2390 should not be allowed :create_subgroup2391 developer2392 should not be allowed :create_subgroup2393 maintainer2394 with subgroup_creation level set to maintainer2395 allows every maintainer permission plus creating subgroups2396 with subgroup_creation_level set to owner2397 allows every maintainer permission2398 owner2399 should be allowed :create_subgroup2400 admin2401 should be allowed :create_subgroup2402 private nested group use the highest access level from the group and inherited permissions2403 with no user2404 should not be allowed :create_subgroup2405 guests2406 should not be allowed :create_subgroup2407 reporter2408 should not be allowed :create_subgroup2409 developer2410 should not be allowed :create_subgroup2411 maintainer2412 should not be allowed :create_subgroup2413 owner2414 should be allowed :create_subgroup2415 change_share_with_group_lock2416 when the current_user owns the group2417 when the group share_with_group_lock is enabled2418 when the parent group share_with_group_lock is enabled2419 when the group has a grandparent2420 when the grandparent share_with_group_lock is enabled2421 when the current_user owns the parent2422 when the current_user owns the grandparent2423 should be allowed :change_share_with_group_lock2424 when the current_user does not own the grandparent2425 should not be allowed :change_share_with_group_lock2426 when the current_user does not own the parent2427 should not be allowed :change_share_with_group_lock2428 when the grandparent share_with_group_lock is disabled2429 when the current_user owns the parent2430 should be allowed :change_share_with_group_lock2431 when the current_user does not own the parent2432 should not be allowed :change_share_with_group_lock2433 when the group does not have a grandparent2434 when the current_user owns the parent2435 should be allowed :change_share_with_group_lock2436 when the current_user does not own the parent2437 should not be allowed :change_share_with_group_lock2438 when the parent group share_with_group_lock is disabled2439 should be allowed :change_share_with_group_lock2440 when the group share_with_group_lock is disabled2441 should be allowed :change_share_with_group_lock2442 when the current_user does not own the group2443 should not be allowed :change_share_with_group_lock2444 create_projects2445 when group has no project creation level set2446 reporter2447 should be disallowed :create_projects2448 developer2449 should be allowed :create_projects2450 maintainer2451 should be allowed :create_projects2452 owner2453 should be allowed :create_projects2454 when group has project creation level set to no one2455 reporter2456 should be disallowed :create_projects2457 developer2458 should be disallowed :create_projects2459 maintainer2460 should be disallowed :create_projects2461 owner2462 should be disallowed :create_projects2463 when group has project creation level set to maintainer only2464 reporter2465 should be disallowed :create_projects2466 developer2467 should be disallowed :create_projects2468 maintainer2469 should be allowed :create_projects2470 owner2471 should be allowed :create_projects2472 when group has project creation level set to developers + maintainer2473 reporter2474 should be disallowed :create_projects2475 developer2476 should be allowed :create_projects2477 maintainer2478 should be allowed :create_projects2479 owner2480 should be allowed :create_projects2481 create_subgroup2482 when group has subgroup creation level set to owner2483 reporter2484 should be disallowed :create_subgroup2485 developer2486 should be disallowed :create_subgroup2487 maintainer2488 should be disallowed :create_subgroup2489 owner2490 should be allowed :create_subgroup2491 when group has subgroup creation level set to maintainer2492 reporter2493 should be disallowed :create_subgroup2494 developer2495 should be disallowed :create_subgroup2496 maintainer2497 should be allowed :create_subgroup2498 owner2499 should be allowed :create_subgroup2500 behaves like clusterable policies2501 #add_cluster?2502 with a developer2503 should not be allowed :read_cluster2504 should not be allowed :add_cluster2505 should not be allowed :create_cluster2506 should not be allowed :update_cluster2507 should not be allowed :admin_cluster2508 with a maintainer2509 with no clusters2510 should be allowed :read_cluster2511 should be allowed :add_cluster2512 should be allowed :create_cluster2513 should be allowed :update_cluster2514 should be allowed :admin_cluster2515Gitlab::Ci::Trace2516 associations2517 should respond to #job2518 should delegate #old_trace to the #job object2519 when live trace feature is disabled2520 behaves like trace with disabled live trace feature2521 behaves like common trace features2522 #html2523 returns formatted html2524 returns last line of formatted html2525 #raw2526 returns raw output2527 returns last line of raw output2528 #extract_coverage2529 matching coverage2530 returns valid coverage2531 no coverage2532 returs nil2533 #extract_sections2534 no sections2535 returs []2536 multiple sections available2537 returns valid sections2538 logs contains "section_start"2539 returns only one section2540 missing section_end2541 returns no sections2542 missing section_start2543 returns no sections2544 inverted section_start section_end2545 returns no sections2546 #write2547 when arhicved trace does not exist yet2548 does not raise an error2549 when arhicved trace already exists2550 raises an error2551 #set2552 returns trace2553 overwrite trace2554 returns new trace2555 runners token2556 hides token2557 hides build token2558 hides token2559 #append2560 returns correct trace2561 tries to append trace at different offset2562 fails with append2563 runners token2564 hides token2565 build token2566 hides token2567 #archive!2568 when build status is success2569 does not have an archived trace yet2570 when archives2571 has an archived trace2572 when another process has already been archiving2573 blocks concurrent archiving2574 #read2575 when trace artifact exists2576 behaves like read successfully with IO2577 yields with source2578 when current_path (with project_id) exists2579 behaves like read successfully with IO2580 yields with source2581 when db trace exists2582 behaves like read successfully with StringIO2583 yields with source2584 when no sources exist2585 behaves like failed to read2586 yields without source2587 trace handling2588 trace does not exist2589 should equal false2590 when trace artifact exists2591 should be truthy2592 when the trace artifact has been erased2593 should be falsy2594 removes associations2595 new trace path is used2596 trace exist2597 can be erased2598 stored in database2599 trace exist2600 can be erased2601 returns database data2602 #archive!2603 when job does not have trace artifact2604 when trace file stored in default path2605 behaves like archive trace file2606 should eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2607 when failed to create clone file2608 behaves like source trace file stays intact2609 should be truthy2610 when failed to create job artifact record2611 behaves like source trace file stays intact2612 should be truthy2613 when trace is stored in database2614 behaves like archive trace in database2615 should eq "14bf640d204552230ff0c066e0c8d3743baad80467cf04e6512ea271f12f6a73"2616 when failed to create clone file2617 behaves like source trace in database stays intact2618 should eq "Sample trace"2619 when failed to create job artifact record2620 behaves like source trace in database stays intact2621 should eq "Sample trace"2622 when there is a validation error on Ci::Build2623 when erase old trace with 'save'2624 old trace is not deleted2625 behaves like archive trace in database2626 should eq "14bf640d204552230ff0c066e0c8d3743baad80467cf04e6512ea271f12f6a73"2627 when job has trace artifact2628 does not archive2629 when job is not finished yet2630 does not archive2631 #erase!2632 when it is a live trace2633 when trace is stored in database2634 should not be nil2635 removes trace2636 when trace is stored in file storage2637 should not be nil2638 removes trace2639 when it is an archived trace2640 has trace at first2641 removes trace2642 when live trace feature is enabled2643 behaves like trace with enabled live trace feature2644 behaves like common trace features2645 #html2646 returns formatted html2647 returns last line of formatted html2648 #raw2649 returns raw output2650 returns last line of raw output2651 #extract_coverage2652 matching coverage2653 returns valid coverage2654 no coverage2655 returs nil2656 #extract_sections2657 no sections2658 returs []2659 multiple sections available2660 returns valid sections2661 logs contains "section_start"2662 returns only one section2663 missing section_end2664 returns no sections2665 missing section_start2666 returns no sections2667 inverted section_start section_end2668 returns no sections2669 #write2670 when arhicved trace does not exist yet2671 does not raise an error2672 when arhicved trace already exists2673 raises an error2674 #set2675 returns trace2676 overwrite trace2677 returns new trace2678 runners token2679 hides token2680 hides build token2681 hides token2682 #append2683 returns correct trace2684 tries to append trace at different offset2685 fails with append2686 runners token2687 hides token2688 build token2689 hides token2690 #archive!2691 when build status is success2692 does not have an archived trace yet2693 when archives2694 has an archived trace2695 when another process has already been archiving2696 blocks concurrent archiving2697 #read2698 when trace artifact exists2699 behaves like read successfully with IO2700 yields with source2701 when live trace exists2702 behaves like read successfully with ChunkedIO2703 yields with source2704 when no sources exist2705 behaves like failed to read2706 yields without source2707 trace handling2708 trace does not exist2709 should equal false2710 when trace artifact exists2711 should be truthy2712 when the trace artifact has been erased2713 should be falsy2714 removes associations2715 stored in live trace2716 trace exist2717 can be erased2718 returns live trace data2719 #archived_trace_exist?2720 when trace does not exist2721 should be falsy2722 when archived trace exists2723 should be truthy2724 when live trace exists2725 should be falsy2726 #live_trace_exist?2727 when trace does not exist2728 should be falsy2729 when archived trace exists2730 should be falsy2731 when live trace exists2732 should be truthy2733 #archive!2734 when job does not have trace artifact2735 when trace is stored in ChunkedIO2736 behaves like archive trace file in ChunkedIO2737 should eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2738 when failed to create clone file2739 behaves like source trace in ChunkedIO stays intact2740 should eq "BUILD TRACE"2741 when failed to create job artifact record2742 behaves like source trace in ChunkedIO stays intact2743 should eq "BUILD TRACE"2744 when job has trace artifact2745 does not archive2746 when job is not finished yet2747 does not archive2748 #erase!2749 when it is a live trace2750 should not be nil2751 removes trace2752 when it is an archived trace2753 has trace at first2754 removes trace2755MergeRequests::RebaseService2756 #execute2757 when another rebase is already in progress2758 saves the error message2759 returns an error2760 clears rebase_jid2761 behaves like sequence of failure and success2762 properly clears the error message2763 with deprecated step rebase feature2764 behaves like sequence of failure and success2765 properly clears the error message2766 when unexpected error occurs2767 saves a generic error message2768 returns an error2769 with git command failure2770 saves a generic error message2771 returns an error2772 valid params2773 when the two_step_rebase feature is enabled2774 behaves like a service that can execute a successful rebase2775 rebases source branch2776 records the new SHA on the merge request2777 logs correct author and committer2778 when the two_step_rebase feature is disabled2779 behaves like a service that can execute a successful rebase2780 rebases source branch2781 records the new SHA on the merge request2782 logs correct author and committer2783 fork2784 successful fork rebase2785 rebases source branch2786Ci::RetryPipelineService#execute2787 when user has full ability to modify pipeline2788 closes all todos about failed jobs for pipeline2789 reprocesses the pipeline2790 when there are already retried jobs present2791 does not retry jobs that has already been retried2792 when there are failed builds in the last stage2793 enqueues all builds in the last stage2794 when there are failed or canceled builds in the first stage2795 retries builds failed builds and marks subsequent for processing2796 when there is failed build present which was run on failure2797 retries builds only in the first stage2798 creates a new job for report job in this case2799 when the last stage was skipepd2800 retries builds only in the first stage2801 when pipeline contains manual actions2802 when there are optional manual actions only2803 when there is a canceled manual action in first stage2804 retries failed builds and marks subsequent for processing2805 when pipeline has blocking manual actions defined2806 when pipeline retry should enqueue builds2807 retries failed builds2808 when pipeline retry should block pipeline immediately2809 reprocesses blocking manual action and blocks pipeline2810 when there is a skipped manual action in last stage2811 retries canceled job and reprocesses manual actions2812 when there is a created manual action in the last stage2813 retries canceled job and does not update the manual action2814 when there is a created manual action in the first stage2815 retries canceled job and processes the manual action2816 when user is not allowed to retry pipeline2817 raises an error2818 when user is not allowed to trigger manual action2819 when there is a failed manual action present2820 raises an error2821 when there is a failed manual action in later stage2822 raises an error2823 when maintainer is allowed to push to forked project2824 allows to retry failed pipeline2825Boards::Lists::MoveService2826 #execute2827 when board parent is a project2828 behaves like lists move service2829 keeps position of lists when list type is closed2830 when list type is set to label2831 keeps position of lists when new position is nil2832 keeps position of lists when new position is equal to old position2833 keeps position of lists when new position is negative2834 keeps position of lists when new position is equal to number of labels lists2835 keeps position of lists when new position is greater than number of labels lists2836 increments position of intermediate lists when new position is equal to first position2837 decrements position of intermediate lists when new position is equal to last position2838 decrements position of intermediate lists when new position is greater than old position2839 increments position of intermediate lists when new position is lower than old position2840 when board parent is a group2841 behaves like lists move service2842 keeps position of lists when list type is closed2843 when list type is set to label2844 keeps position of lists when new position is nil2845 keeps position of lists when new position is equal to old position2846 keeps position of lists when new position is negative2847 keeps position of lists when new position is equal to number of labels lists2848 keeps position of lists when new position is greater than number of labels lists2849 increments position of intermediate lists when new position is equal to first position2850 decrements position of intermediate lists when new position is equal to last position2851 decrements position of intermediate lists when new position is greater than old position2852 increments position of intermediate lists when new position is lower than old position2853Projects::DestroyService2854 Sidekiq inline2855 invalidates personal_project_count cache2856 behaves like deleting the project2857 deletes the project2858 when has remote mirrors28592019-08-23T08:06:54.420Z 89 TID-gr8noadyp INFO: Removing remote remote_mirror_1 from project 74228602019-08-23T08:06:54.426Z 89 TID-gr8noadyp ERROR: Could not remove remote remote_mirror_1 from project 7422861 destroys them2862 when project has exports2863 destroys project and export2864 Sidekiq fake2865 should not include #<Project id:745 user1360/project741>2866 should be falsey2867 should be truthy2868 when flushing caches fail due to Git errors2869 behaves like deleting the project2870 deletes the project2871 when flushing caches fail due to Redis2872 keeps project team intact upon an error2873 with async_execute2874 async delete of project with private issue visibility2875 behaves like deleting the project2876 deletes the project2877 behaves like deleting the project with pipeline and build2878 with pipeline and build2879 behaves like deleting the project2880 deletes the project2881 errors2882 when `remove_legacy_registry_tags` fails2883 behaves like handles errors thrown during async destroy2884 does not allow the error to bubble up2885 unmarks the project as "pending deletion"2886 stores an error message in `projects.delete_error`2887 when `remove_repository` fails2888 behaves like handles errors thrown during async destroy2889 does not allow the error to bubble up2890 unmarks the project as "pending deletion"2891 stores an error message in `projects.delete_error`2892 when `execute` raises expected error2893 behaves like handles errors thrown during async destroy2894 does not allow the error to bubble up2895 unmarks the project as "pending deletion"2896 stores an error message in `projects.delete_error`2897 when `execute` raises unexpected error2898 allows error to bubble up and rolls back project deletion2899 container registry2900 when there are regular container repositories2901 when image repository deletion succeeds2902 removes tags2903 when image repository deletion fails2904 raises an exception2905 when registry is disabled2906 does not attempting to remove any tags2907 when there are tags for legacy root repository2908 when image repository tags deletion succeeds2909 removes tags2910 when image repository tags deletion fails2911 raises an exception2912 for a forked project with LFS objects2913 destroys the fork2914 as the root of a fork network2915 updates the fork network with the project name2916 repository +deleted path removal2917 regular phase2918 schedules +deleted removal of existing repos2919 stale cleanup2920 schedules +deleted wiki and repo removal2921 #attempt_restore_repositories2922 restores the repositories2923ProjectPresenter2924 #license_short_name2925 when project.repository has a license_key2926 returns the nickname of the license if present2927 returns the name of the license if nickname is not present2928 when project.repository has no license_key but a license_blob2929 returns LICENSE2930 #default_view2931 user not signed in2932 when repository is empty2933 returns activity if user has repository access2934 returns activity if user does not have repository access2935 when repository is not empty2936 returns files and readme if user has repository access2937 returns activity if user does not have repository access2938 user signed in2939 when the user is allowed to see the code2940 returns the project view2941 with wikis enabled and the right policy for the user2942 returns wiki if the user has the right policy2943 returns customize_workflow if the user does not have the right policy2944 with issues as a feature available2945 return issues2946 with no activity, no wikies and no issues2947 returns customize_workflow as default2948 #can_current_user_push_code?2949 empty repo2950 returns true if user can push_code2951 returns false if user cannot push_code2952 not empty repo2953 returns true if user can push to default branch2954 returns false if default branch is protected2955 statistics anchors (empty repo)2956 #files_anchor_data2957 returns files data2958 #commits_anchor_data2959 returns commits data2960 #branches_anchor_data2961 returns branches data2962 #tags_anchor_data2963 returns tags data2964 statistics anchors2965 #files_anchor_data2966 returns files data2967 #commits_anchor_data2968 returns commits data2969 #branches_anchor_data2970 returns branches data2971 #tags_anchor_data2972 returns tags data2973 #new_file_anchor_data2974 returns new file data if user can push2975 returns nil if user cannot push2976 when the project is empty2977 is empty for a developer2978 #readme_anchor_data2979 when user can push and README does not exists2980 returns anchor data2981 when README exists2982 returns anchor data2983 #changelog_anchor_data2984 when user can push and CHANGELOG does not exist2985 returns anchor data2986 when CHANGELOG exists2987 returns anchor data2988 #license_anchor_data2989 when user can push and LICENSE does not exist2990 returns anchor data2991 when LICENSE exists2992 returns anchor data2993 #contribution_guide_anchor_data2994 when user can push and CONTRIBUTING does not exist2995 returns anchor data2996 when CONTRIBUTING exists2997 returns anchor data2998 #autodevops_anchor_data2999 when Auto Devops is enabled3000 returns anchor data3001 when user can admin pipeline and CI yml does not exist3002 returns anchor data3003 #kubernetes_cluster_anchor_data3004 when user can create Kubernetes cluster3005 returns link to cluster if only one exists3006 returns link to clusters page if more than one exists3007 returns link to create a cluster if no cluster exists3008 when user cannot create Kubernetes cluster3009 returns nil3010 #statistics_buttons3011 orders the items correctly3012HipchatService3013 Associations3014 should belong to project required:3015 should have one service_hook3016 Validations3017 when service is active3018 should validate that :token cannot be empty/falsy3019 when service is inactive3020 should not validate that :token cannot be empty/falsy3021 Execute3022 tests and return errors3023 uses v1 if version is provided3024 uses v2 as the version when nothing is provided3025 push events3026 calls Hipchat API for push events3027 creates a push message3028 tag_push events3029 calls Hipchat API for tag push events3030 creates a tag push message3031 issue events3032 calls Hipchat API for issue events3033 creates an issue message3034 merge request events3035 calls Hipchat API for merge requests events3036 creates a merge request message3037 Note events3038 when commit comment event triggered3039 calls Hipchat API for commit comment events3040 when merge request comment event triggered3041 calls Hipchat API for merge request comment events3042 when issue comment event triggered3043 calls Hipchat API for issue comment events3044 with confidential issue3045 calls Hipchat API with issue comment3046 when snippet comment event triggered3047 calls Hipchat API for snippet comment events3048 pipeline events3049 for failed3050 calls Hipchat API3051 creates a build message3052 for succeeded3053 calls Hipchat API3054 notifies only broken3055 #message_options3056 is set to the defaults3057 sets notify to true3058 sets the color3059 with a successful build3060 uses the green color3061 with a failed build3062 uses the red color3063 with UrlBlocker3064 #execute3065 raises UrlBlocker for localhost3066forked project import3067 can access the MR3068AttachmentUploader3069 behaves like builds correct paths3070 #store_dir3071 behaves like matches the method pattern3072 should match /uploads\/-\/system\/note\/attachment\//3073 #cache_dir3074 behaves like matches the method pattern3075 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3076 #work_dir3077 behaves like matches the method pattern3078 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3079 #upload_path3080 behaves like matches the method pattern3081 should match /uploads\/-\/system\/note\/attachment\//3082 #relative_path3083 is relative3084 .absolute_path3085 behaves like matches the method pattern3086 should match /\/builds\/gitlab-org\/gitlab-ce\/tmp\/tests\/public\/uploads\/-\/system\/note\/attachment\//3087 .base_dir3088 behaves like matches the method pattern3089 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3090 object_store is REMOTE3091 behaves like builds correct paths3092 #store_dir3093 behaves like matches the method pattern3094 should match /note\/attachment\//3095 #cache_dir3096 behaves like matches the method pattern3097 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3098 #work_dir3099 behaves like matches the method pattern3100 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3101 #upload_path3102 behaves like matches the method pattern3103 should match /note\/attachment\//3104 #relative_path3105 is relative3106 .absolute_path3107 behaves like matches the method pattern3108 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3109 .base_dir3110 behaves like matches the method pattern3111 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3112 #migrate!3113 behaves like migrates3114 returns corresponding file type3115 does nothing when migrating to the current store3116 migrate to the specified store3117 removes the original file after the migration3118 can access to the original file during migration3119 when migrate! is not occupied by another process3120 executes migrate!3121 executes use_file3122 when migrate! is occupied by another process3123 does not execute migrate!3124 does not execute use_file3125 migration is unsuccessful3126 when the store is not supported3127 does not update the object_store3128 does not delete the original file3129 upon a fog failure3130 does not update the object_store3131 does not delete the original file3132 upon a database failure3133 does not update the object_store3134 does not delete the original file3135 behaves like migrates3136 returns corresponding file type3137 does nothing when migrating to the current store3138 migrate to the specified store3139 removes the original file after the migration3140 can access to the original file during migration3141 when migrate! is not occupied by another process3142 executes migrate!3143 executes use_file3144 when migrate! is occupied by another process3145 does not execute migrate!3146 does not execute use_file3147 migration is unsuccessful3148 when the store is not supported3149 does not update the object_store3150 does not delete the original file3151 upon a fog failure3152 does not update the object_store3153 does not delete the original file3154 upon a database failure3155 does not update the object_store3156 does not delete the original file3157PipelineEntity3158 #as_json3159 when pipeline is empty3160DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3161DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 130 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3162 contains required fields3163DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3164DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 131 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3165 excludes coverage data when disabled3166DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3167DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 132 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3168 contains details3169DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3170DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 133 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3171 contains flags3172 when pipeline is retryable3173 does not serialize stage builds3174 user has ability to retry pipeline3175 contains retry path3176 user does not have ability to retry pipeline3177 does not contain retry path3178 when pipeline is cancelable3179DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3180DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 137 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3181 does not serialize stage builds3182 user has ability to cancel pipeline3183DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3184DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 138 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3185 contains cancel path3186 user does not have ability to cancel pipeline3187DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3188DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 139 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3189 does not contain cancel path3190 when pipeline ref is empty3191DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3192DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 140 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3193 does not generate branch path3194 when pipeline has a failure reason set3195 has a correct failure reason3196 when pipeline is detached merge request pipeline3197DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3198DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 142 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3199 makes detached flag true3200DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3201DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 143 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3202 does not expose source sha and target sha3203 when user is a developer3204DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3205DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 144 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3206 has merge request information3207 when user is an external user3208DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3209DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 145 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3210 has no merge request information3211 when pipeline is merge request pipeline3212DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3213DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 146 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3214 makes detached flag false3215DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3216DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 147 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3217 makes atached flag true3218DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:373)3219DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 148 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". 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 legacy_stages at /builds/gitlab-org/gitlab-ce/app/models/ci/pipeline.rb:381)3220 exposes source sha and target sha3221PagesDomainAcmeOrder3222 .expired3223 returns only expired orders3224 .find_by_domain_and_token3225 domain_name: "test.com", challenge_token: "righttoken", present: true3226 should eq true3227 domain_name: "test.com", challenge_token: "wrongtoken", present: false3228 should eq false3229 domain_name: "test.org", challenge_token: "righttoken", present: false3230 should eq false3231 associations3232 should belong to pages_domain required:3233 validations3234 should validate that :pages_domain cannot be empty/falsy3235 should validate that :expires_at cannot be empty/falsy3236 should validate that :url cannot be empty/falsy3237 should validate that :challenge_token cannot be empty/falsy3238 should validate that :challenge_file_content cannot be empty/falsy3239 should validate that :private_key cannot be empty/falsy3240AvatarUploader3241 behaves like builds correct paths3242 #store_dir3243 behaves like matches the method pattern3244 should match /uploads\/-\/system\/user\/avatar\//3245 #cache_dir3246 behaves like matches the method pattern3247 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3248 #work_dir3249 behaves like matches the method pattern3250 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3251 #upload_path3252 behaves like matches the method pattern3253 should match /uploads\/-\/system\/user\/avatar\//3254 #relative_path3255 is relative (PENDING: Path not set, skipping.)3256 .absolute_path3257 behaves like matches the method pattern3258 should match /\/builds\/gitlab-org\/gitlab-ce\/tmp\/tests\/public\/uploads\/-\/system\/user\/avatar\//3259 .base_dir3260 behaves like matches the method pattern3261 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3262 object_store is REMOTE3263 behaves like builds correct paths3264 #store_dir3265 behaves like matches the method pattern3266 should match /user\/avatar\//3267 #cache_dir3268 behaves like matches the method pattern3269 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3270 #work_dir3271 behaves like matches the method pattern3272 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3273 #upload_path3274 behaves like matches the method pattern3275 should match /user\/avatar\//3276 #relative_path3277 is relative (PENDING: Path not set, skipping.)3278 .absolute_path3279 behaves like matches the method pattern3280 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3281 .base_dir3282 behaves like matches the method pattern3283 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3284 with a file3285 sets the right absolute path3286 behaves like migrates3287 returns corresponding file type3288 does nothing when migrating to the current store3289 migrate to the specified store3290 removes the original file after the migration3291 can access to the original file during migration3292 when migrate! is not occupied by another process3293 executes migrate!3294 executes use_file3295 when migrate! is occupied by another process3296 does not execute migrate!3297 does not execute use_file3298 migration is unsuccessful3299 when the store is not supported3300 does not update the object_store3301 does not delete the original file3302 upon a fog failure3303 does not update the object_store3304 does not delete the original file3305 upon a database failure3306 does not update the object_store3307 does not delete the original file3308 behaves like migrates3309 returns corresponding file type3310 does nothing when migrating to the current store3311 migrate to the specified store3312 removes the original file after the migration3313 can access to the original file during migration3314 when migrate! is not occupied by another process3315 executes migrate!3316 executes use_file3317 when migrate! is occupied by another process3318 does not execute migrate!3319 does not execute use_file3320 migration is unsuccessful3321 when the store is not supported3322 does not update the object_store3323 does not delete the original file3324 upon a fog failure3325 does not update the object_store3326 does not delete the original file3327 upon a database failure3328 does not update the object_store3329 does not delete the original file3330GroupMember3331 .count_users_by_group_id3332 counts users by group ID3333 .access_level_roles3334 returns Gitlab::Access.options_with_owner3335 .access_levels3336 returns Gitlab::Access.options_with_owner3337 .add_users3338 adds the given users to the given group3339 behaves like members notifications3340 #after_create3341 sends email to user3342 #after_update3343 calls NotificationService.update_group_member3344 does not send an email when the access level has not changed3345 #accept_request3346 calls NotificationService.new_group_member3347 #accept_invite!3348 calls NotificationService.accept_group_invite3349 #decline_invite!3350 calls NotificationService.decline_group_invite3351 #real_source_type3352 should eq "Group"3353 #update_two_factor_requirement3354 is called after creation and deletion3355 access levels3356 with parent group3357 behaves like inherited access level as a member of entity3358 with root parent_entity developer member3359 is allowed to be a maintainer of the entity3360 is not allowed to be a reporter of the entity3361 is allowed to change to be a developer of the entity3362 is not allowed to change to be a guest of the entity3363 shows an error if the member can't be updated3364 allows changing the level from a non existing member3365 with parent group and a sub subgroup3366 behaves like inherited access level as a member of entity3367 with root parent_entity developer member3368 is allowed to be a maintainer of the entity3369 is not allowed to be a reporter of the entity3370 is allowed to change to be a developer of the entity3371 is not allowed to change to be a guest of the entity3372 shows an error if the member can't be updated3373 allows changing the level from a non existing member3374 when only the subgroup has the member3375 behaves like inherited access level as a member of entity3376 with root parent_entity developer member3377 is allowed to be a maintainer of the entity3378 is not allowed to be a reporter of the entity3379 is allowed to change to be a developer of the entity3380 is not allowed to change to be a guest of the entity3381 shows an error if the member can't be updated3382 allows changing the level from a non existing member3383Service3384 Associations3385 should belong to project required:3386 should have one service_hook3387 should have one jira_tracker_data3388 should have one issue_tracker_data3389 Validations3390 should validate that :type cannot be empty/falsy3391 Scopes3392 .confidential_note_hooks3393 includes services where confidential_note_events is true3394 excludes services where confidential_note_events is false3395 Test Button3396 #can_test?3397 when repository is not empty3398 returns true3399 when repository is empty3400 returns true3401 #test3402 when repository is not empty3403 test runs execute3404 when repository is empty3405 test runs execute3406 Template3407 .build_from_template3408 when template is invalid3409 sets service template to inactive when template is invalid3410 for pushover service3411 is prefilled for projects pushover service3412 has all fields prefilled3413 {property}_changed?3414 returns false when the property has not been assigned a new value3415 returns true when the property has been assigned a different value3416 returns true when the property has been assigned a different value twice3417 returns false when the property has been re-assigned the same value3418 returns false when the property has been assigned a new value then saved3419 {property}_touched?3420 returns false when the property has not been assigned a new value3421 returns true when the property has been assigned a different value3422 returns true when the property has been assigned a different value twice3423 returns true when the property has been re-assigned the same value3424 returns false when the property has been assigned a new value then saved3425 {property}_was3426 returns nil when the property has not been assigned a new value3427 returns the previous value when the property has been assigned a different value3428 returns initial value when the property has been re-assigned the same value3429 returns initial value when the property has been assigned multiple values3430 returns nil when the property has been assigned a new value then saved3431 initialize service with no properties3432 does not raise error3433 sets title correctly3434 creates the properties3435 callbacks3436 on create3437 updates the has_external_issue_tracker boolean3438 on update3439 updates the has_external_issue_tracker boolean3440 #deprecated?3441 returns false by default3442 #deprecation_message3443 is empty by default3444 .find_by_template3445 returns service template3446 #api_field_names3447 filters out sensitive fields3448 logging3449 logs info messages using json logger3450 logs error messages using json logger3451Gitlab::Auth::OAuth::User3452 #persisted?3453 finds an existing user based on uid and provider (facebook)3454 returns false if user is not found in database3455 #save3456 when account exists on server3457 does not mark the user as external3458 signup3459 marks user as having password_automatically_set3460 when signup is disabled3461 creates the user3462 when user confirmation email is enabled3463 creates and confirms the user anyway3464 with auto_link_ldap_user disabled (default)3465 provider is marked as external3466 marks user as external3467 provider was external, now has been removed3468 does not mark external user as internal3469 provider is not external3470 when adding a new OAuth identity3471 does not promote an external user to internal3472 with new allow_single_sign_on enabled syntax3473 creates a user from Omniauth3474 with old allow_single_sign_on enabled syntax3475 creates a user from Omniauth3476 with new allow_single_sign_on disabled syntax3477 throws an error3478 with old allow_single_sign_on disabled (Default)3479 throws an error3480 with auto_link_ldap_user enabled3481 and no LDAP provider defined3482 provider is marked as external3483Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3484Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3485 marks user as external3486 provider was external, now has been removed3487Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3488Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3489 does not mark external user as internal3490 provider is not external3491 when adding a new OAuth identity3492Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3493Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3494 does not promote an external user to internal3495 with new allow_single_sign_on enabled syntax3496Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3497Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3498 creates a user from Omniauth3499 with old allow_single_sign_on enabled syntax3500Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3501Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3502 creates a user from Omniauth3503 with new allow_single_sign_on disabled syntax3504Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3505Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3506 throws an error3507 with old allow_single_sign_on disabled (Default)3508Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3509Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3510 throws an error3511 and at least one LDAP provider is defined3512 and a corresponding LDAP person3513 and no account for the LDAP user3514 creates a user with dual LDAP and omniauth identities3515 has name and email set as synced3516 has name and email set as read-only3517 has synced attributes provider set to ldapmain3518 and LDAP user has an account already3519 adds the omniauth identity to the LDAP account3520 when an LDAP person is not found by uid3521 tries to find an LDAP person by email and adds the omniauth identity to the user3522 when also not found by email3523 tries to find an LDAP person by DN and adds the omniauth identity to the user3524 when there is an LDAP connection error3525 does not save the identity3526 and a corresponding LDAP person with a non-default username3527 and no account for the LDAP user3528 creates a user favoring the LDAP username and strips email domain3529 and no corresponding LDAP person3530 provider is marked as external3531Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3532Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3533 marks user as external3534 provider was external, now has been removed3535Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3536Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3537 does not mark external user as internal3538 provider is not external3539 when adding a new OAuth identity3540Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3541Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3542 does not promote an external user to internal3543 with new allow_single_sign_on enabled syntax3544Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3545Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3546 creates a user from Omniauth3547 with old allow_single_sign_on enabled syntax3548Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3549Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3550 creates a user from Omniauth3551 with new allow_single_sign_on disabled syntax3552Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3553Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3554 throws an error3555 with old allow_single_sign_on disabled (Default)3556Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3557Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.3558 throws an error3559 blocking3560 signup with omniauth only3561 dont block on create3562 should not be blocked3563 block on create3564 should be blocked3565 signup with linked omniauth and LDAP account3566 and no account for the LDAP user3567 dont block on create (LDAP)3568 should not be blocked3569 block on create (LDAP)3570 should be blocked3571 and LDAP user has an account already3572 dont block on create (LDAP)3573 should not be blocked3574 block on create (LDAP)3575 should not be blocked3576 sign-in3577 dont block on create3578 should not be blocked3579 block on create3580 should not be blocked3581 dont block on create (LDAP)3582 should not be blocked3583 block on create (LDAP)3584 should not be blocked3585 ensure backwards compatibility with sync email from provider option3586 when provider sets an email3587 updates the user email3588 has email set as synced3589 has email set as read-only3590 has synced attributes provider set to my-provider3591 when provider doesn't set an email3592 does not update the user email3593 has email set as not synced3594 does not have email set as read-only3595 generating username3596 when no collision with existing user3597 generates the username with no counter3598 when collision with existing user3599 generates the username with a counter3600 when username is a reserved word3601 generates the username with a counter3602 updating email with sync profile3603 when provider sets an email3604 updates the user email3605 has email set as synced3606 has email set as read-only3607 has synced attributes provider set to my-provider3608 when provider doesn't set an email3609 does not update the user email3610 has email set as not synced3611 does not have email set as read-only3612 updating name3613 when provider sets a name3614 updates the user name3615 when provider doesn't set a name3616 does not update the user name3617 updating location3618 when provider sets a location3619 updates the user location3620 when provider doesn't set a location3621 does not update the user location3622 updating user info3623 update all info3624 updates the user email3625 updates the user name3626 updates the user location3627 sets my-provider as the attributes provider3628 update only requested info3629 updates the user name3630 updates the user location3631 does not update the user email3632 update default_scope3633 updates the user email3634 update no info when profile sync is nil3635 does not have sync_attribute3636 does not update the user email3637 does not update the user name3638 does not update the user location3639 does not create associated user synced attributes metadata3640 .find_by_uid_and_provider3641 normalizes extern_uid3642 #find_ldap_person3643 when LDAP connection fails3644 returns nil3645 #bypass_two_factor?3646 returns always false3647Issuable::CommonSystemNotesService3648 on issuable update3649 behaves like system note creation3650 creates 1 system note with the correct content3651 behaves like system note creation3652 creates 1 system note with the correct content3653 behaves like system note creation3654 creates 1 system note with the correct content3655 behaves like system note creation3656 creates 1 system note with the correct content3657 when new label is added3658 creates a resource label event3659 when new milestone is assigned3660 behaves like system note creation3661 creates 1 system note with the correct content3662 with merge requests WIP note3663 adding WIP note3664 behaves like system note creation3665 creates 1 system note with the correct content3666 and changing title3667 behaves like WIP notes creation3668 creates WIP toggle and title change notes3669 removing WIP note3670 behaves like system note creation3671 creates 1 system note with the correct content3672 and changing title3673 behaves like WIP notes creation3674 creates WIP toggle and title change notes3675 on issuable create3676 does not create system note for title and description3677 creates a resource label event for labels added3678 creates a system note for milestone set3679 creates a system note for due_date set3680MergeRequests::AssignIssuesService3681 finds unassigned issues fixed in merge request3682 ignores issues the user cannot update assignee on3683 ignores issues already assigned to any user3684 ignores all issues unless current_user is merge_request.author3685 accepts precomputed data for closes_issues3686 assigns these to the merge request owner3687 ignores external issues3688Ci::TriggerPolicy3689 #rules3690 when owner is undefined3691 when user is maintainer of the project3692 should be allowed :manage_trigger3693 should not be allowed :admin_trigger3694 when user is developer of the project3695 should not be allowed :manage_trigger3696 should not be allowed :admin_trigger3697 when :use_legacy_pipeline_triggers feature flag is enabled3698 when user is maintainer of the project3699 should be allowed :manage_trigger3700 should be allowed :admin_trigger3701 when user is developer of the project3702 should not be allowed :manage_trigger3703 should not be allowed :admin_trigger3704 when user is not member of the project3705 should not be allowed :manage_trigger3706 should not be allowed :admin_trigger3707 when owner is an user3708 when user is maintainer of the project3709 should be allowed :manage_trigger3710 should be allowed :admin_trigger3711 when owner is another user3712 when user is maintainer of the project3713 should be allowed :manage_trigger3714 should not be allowed :admin_trigger3715 when user is developer of the project3716 should not be allowed :manage_trigger3717 should not be allowed :admin_trigger3718 when user is not member of the project3719 should not be allowed :manage_trigger3720 should not be allowed :admin_trigger3721Gitlab::Ci::Build::Prerequisite::KubernetesNamespace3722 #unmet?3723 build has no deployment3724 should be falsey3725 build has a deployment3726 and a cluster to deploy to3727 should be truthy3728 and the cluster is not managed3729 should be falsey3730 and a namespace is already created for this project3731 should be falsey3732 and the service_account_token is blank3733 should be truthy3734 and no cluster to deploy to3735 should be falsey3736 #complete!3737 completion is required3738 kubernetes namespace does not exist3739 creates a namespace using a new record3740 kubernetes namespace exists (but has no service_account_token)3741 creates a namespace using the tokenless record3742 completion is not required3743 does not create a namespace3744Lfs::FileTransformer3745 #new_file3746 with lfs disabled3747 skips gitattributes check3748 returns untransformed content3749 returns untransformed encoding3750 with lfs enabled3751 reuses cached gitattributes3752 creates an LfsObject with the file's content3753 returns an LFS pointer3754 returns LFS pointer encoding as text3755 links LfsObjects to project3756 saves the repository_type to LfsObjectsProject3757 when an actual file is passed3758 creates an LfsObject with the file's content3759 when doesn't use LFS3760 doesn't create LFS pointers3761 when LfsObject already exists3762 links LfsObjects to project3763 when the LfsObject is already linked to project3764 and the service is called again with the same repository type3765 should not change `project.lfs_objects.count`3766 does not create a new LfsObjectsProject record3767 and the service is called again with a different repository type3768 should not change `project.lfs_objects.count`3769 creates a new LfsObjectsProject record3770 sets the correct repository_type on the new LfsObjectsProject record3771Banzai::Filter::ProjectReferenceFilter3772 ignores invalid projects3773 fails fast for long invalid string3774 allows references with text after the > character3775 ignores valid references contained inside 'pre' element3776 ignores valid references contained inside 'code' element3777 ignores valid references contained inside 'a' element3778 ignores valid references contained inside 'style' element3779 includes default classes3780 behaves like user reference or project reference3781 supports an :only_path context3782 mentioning a resource3783 links to a resource3784 links to a resource with a period3785 links to a resource with an underscore3786 links to a resource with different case-sensitivity3787 behaves like a reference containing an element node3788 does not escape inner html3789 behaves like it contains a data- attribute3790 includes a data- attribute3791 referencing a resource in a link href3792 links to the resource3793 links with adjacent text3794 behaves like it contains a data- attribute3795 includes a data- attribute3796 in group context3797 supports mentioning a project3798 supports mentioning a project in a nested group3799 #projects_hash3800 returns a Hash containing all Projects3801 #projects3802 returns the projects mentioned in a document3803MergeRequests::PostMergeService3804 #execute3805 refreshes the number of open merge requests for a valid MR3806 updates metrics3807 deletes non-latest diffs3808WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was RuntimeError. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ce/spec/services/merge_requests/post_merge_service_spec.rb:61:in `block (3 levels) in <top (required)>'.3809 marks MR as merged regardless of errors when closing issues3810 clean up environments for the merge request3811 behaves like cache counters invalidator3812 invalidates counter cache for assignees3813Gitlab::GitalyClient::CommitService3814 #diff_from_parent3815 returns a Gitlab::GitalyClient::DiffStitcher3816 encodes paths correctly3817 when a commit has a parent3818 sends an RPC request with the parent ID as left commit3819 when a commit does not have a parent3820 sends an RPC request with empty tree ref as left commit3821 #commit_deltas3822 when a commit has a parent3823 sends an RPC request with the parent ID as left commit3824 when a commit does not have a parent3825 sends an RPC request with empty tree ref as left commit3826 #between3827 sends an RPC request3828 #diff_stats3829 sends an RPC request3830 #tree_entries3831 sends a get_tree_entries message3832 with UTF-8 params strings3833 handles string encodings correctly3834 #commit_count3835 sends a commit_count message3836 with UTF-8 params strings3837 handles string encodings correctly3838 #find_commit3839 sends an RPC request3840 caching3841 when passed revision is a branch name3842 calls Gitaly3843 when passed revision is a commit ID3844 returns a cached commit3845 when caching of the ref name is enabled3846 caches negative entries3847 returns a cached commit3848 #patch3849 sends an RPC request3850 concatenates the responses data3851 #commit_stats3852 sends an RPC request3853CommitCollection3854 #each3855 yields every commit3856 .committers3857 returns a relation of users when users are found3858 returns empty array when committers cannot be found3859 excludes authors of merge commits3860 #without_merge_commits3861 returns all commits except merge commits3862 enrichment methods3863 #unenriched3864 returns all commits that are not backed by gitaly data3865 #fully_enriched?3866 returns true when all commits are backed by gitaly data3867 returns false when any commits are not backed by gitaly data3868 returns true when the collection is empty3869 #enrich!3870 replaces commits in the collection with those backed by gitaly data3871 maintains the original order of the commits3872 fetches data if there are unenriched commits3873 does not fetch data if all commits are enriched3874 #with_pipeline_status3875 sets the pipeline status for every commit so no additional queries are necessary3876 #respond_to_missing?3877 returns true when the underlying Array responds to the message3878 returns false when the underlying Array does not respond to the message3879 #method_missing3880 delegates undefined methods to the underlying Array3881DiffViewer::Base3882 .can_render?3883 when the extension is supported3884 when the binaryness matches3885 returns true3886 when the binaryness does not match3887 returns false3888 when the file type is supported3889 when the binaryness matches3890 returns true3891 when the binaryness does not match3892 returns false3893 when the extension and file type are not supported3894 returns false3895 when the file was renamed and only the old blob is supported3896 returns false3897 #collapsed?3898 when the combined blob size is larger than the collapse limit3899 returns true3900 when the combined blob size is smaller than the collapse limit3901 returns false3902 #too_large?3903 when the combined blob size is larger than the size limit3904 returns true3905 when the blob size is smaller than the size limit3906 returns false3907 #render_error3908 when the combined blob size is larger than the size limit3909 returns :too_large3910 when the combined blob size is smaller than the size limit3911 returns nil3912 #render_error_message3913 returns nothing when no render_error3914 when render_error error3915 returns an error message3916 includes a "view the blob" link3917Gitlab::BlobHelper3918 #extname3919 returns the extension3920 #known_extension?3921 returns true3922 #viewable3923 returns true3924 returns false3925 #large?3926 returns false3927 returns true3928 #binary?3929 returns true3930 returns false3931 #text?3932 returns true3933 returns false3934 #image?3935 returns false3936 #mime_type3937 returns text/plain3938 returns application/pdf3939 #binary_mime_type?3940 returns false3941 #lines3942 returns the payload in an Array3943 #content_type3944 returns text/plain3945 returns text/plain3946 #encoded_newlines_re3947 returns a regular expression3948 #ruby_encoding3949 returns UTF-83950 #encoding3951 returns UTF-83952 #empty?3953 returns false3954SystemHook3955 default attributes3956 sets defined default parameters3957 execute39581st Try error in ./spec/models/hooks/system_hook_spec.rb:32:3959Real HTTP connections are disabled. Unregistered request: POST http://107.151.204.150/ with body '{"event_name":"project_create","created_at":"2019-08-23T08:09:23Z","updated_at":"2019-08-23T08:09:23Z","name":"empty","path":"empty","path_with_namespace":"user2006/empty","project_id":1165,"owner_name":"John Doe1981","owner_email":"user1974@example.org","project_visibility":"private"}' with headers {'Content-Type'=>'application/json', 'X-Gitlab-Event'=>'System Hook'}3960You can stub this request with the following snippet:3961stub_request(:post, "http://107.151.204.150/").3962 with(3963 body: "{\"event_name\":\"project_create\",\"created_at\":\"2019-08-23T08:09:23Z\",\"updated_at\":\"2019-08-23T08:09:23Z\",\"name\":\"empty\",\"path\":\"empty\",\"path_with_namespace\":\"user2006/empty\",\"project_id\":1165,\"owner_name\":\"John Doe1981\",\"owner_email\":\"user1974@example.org\",\"project_visibility\":\"private\"}",3964 headers: {3965 'Content-Type'=>'application/json',3966 'X-Gitlab-Event'=>'System Hook'3967 }).3968 to_return(status: 200, body: "", headers: {})3969registered request stubs:3970stub_request(:post, "http://example2.org/")3971============================================================3972RSpec::Retry: 2nd try ./spec/models/hooks/system_hook_spec.rb:3239732nd Try error in ./spec/models/hooks/system_hook_spec.rb:32:3974Real HTTP connections are disabled. Unregistered request: POST http://109.234.109.82/ with body '{"event_name":"project_create","created_at":"2019-08-23T08:09:23Z","updated_at":"2019-08-23T08:09:23Z","name":"empty","path":"empty","path_with_namespace":"user2007/empty","project_id":1166,"owner_name":"John Doe1982","owner_email":"user1975@example.org","project_visibility":"private"}' with headers {'Content-Type'=>'application/json', 'X-Gitlab-Event'=>'System Hook'}3975You can stub this request with the following snippet:3976stub_request(:post, "http://109.234.109.82/").3977 with(3978 body: "{\"event_name\":\"project_create\",\"created_at\":\"2019-08-23T08:09:23Z\",\"updated_at\":\"2019-08-23T08:09:23Z\",\"name\":\"empty\",\"path\":\"empty\",\"path_with_namespace\":\"user2007/empty\",\"project_id\":1166,\"owner_name\":\"John Doe1982\",\"owner_email\":\"user1975@example.org\",\"project_visibility\":\"private\"}",3979 headers: {3980 'Content-Type'=>'application/json',3981 'X-Gitlab-Event'=>'System Hook'3982 }).3983 to_return(status: 200, body: "", headers: {})3984registered request stubs:3985stub_request(:post, "http://example3.org/")3986============================================================3987RSpec::Retry: 3rd try ./spec/models/hooks/system_hook_spec.rb:323988 project_create hook39891st Try error in ./spec/models/hooks/system_hook_spec.rb:40:3990Real HTTP connections are disabled. Unregistered request: POST http://95.216.161.60/ with body '{"event_name":"user_add_to_team","created_at":"2019-08-23T08:09:23Z","updated_at":"2019-08-23T08:09:23Z","project_name":"project1155","project_path":"project1155","project_path_with_namespace":"user2009/project1155","project_id":1168,"user_username":"user2009","user_name":"John Doe1984","user_email":"user1977@example.org","user_id":1996,"access_level":"Maintainer","project_visibility":"visibilitylevel|private"}' with headers {'Content-Type'=>'application/json', 'X-Gitlab-Event'=>'System Hook'}3991You can stub this request with the following snippet:3992stub_request(:post, "http://95.216.161.60/").3993 with(3994 body: "{\"event_name\":\"user_add_to_team\",\"created_at\":\"2019-08-23T08:09:23Z\",\"updated_at\":\"2019-08-23T08:09:23Z\",\"project_name\":\"project1155\",\"project_path\":\"project1155\",\"project_path_with_namespace\":\"user2009/project1155\",\"project_id\":1168,\"user_username\":\"user2009\",\"user_name\":\"John Doe1984\",\"user_email\":\"user1977@example.org\",\"user_id\":1996,\"access_level\":\"Maintainer\",\"project_visibility\":\"visibilitylevel|private\"}",3995 headers: {3996 'Content-Type'=>'application/json',3997 'X-Gitlab-Event'=>'System Hook'3998 }).3999 to_return(status: 200, body: "", headers: {})4000registered request stubs:4001stub_request(:post, "http://example5.org/")4002============================================================4003RSpec::Retry: 2nd try ./spec/models/hooks/system_hook_spec.rb:404004 project_destroy hook4005 user_create hook4006 user_destroy hook4007 project_create hook4008 project_destroy hook4009 group create hook4010 group destroy hook4011 group member create hook4012 group member destroy hook4013 .repository_update_hooks4014 returns hooks for repository update events only4015 execute WebHookService4016 #execute4017 #async_execute4018Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces4019 #namespaces_for_paths4020 nested namespaces4021 includes the namespace4022 for child namespaces4023 only returns child namespaces with the correct path4024 has no namespaces that look the same4025 for top levelnamespaces4026 only returns child namespaces with the correct path4027 has no namespaces that just look the same4028 #move_repositories4029 moves a project for a namespace4030 moves a namespace in a subdirectory correctly4031 moves a parent namespace with subdirectories4032 #child_ids_for_parent4033 collects child ids for all levels4034 #rename_namespace4035 renames paths & routes for the namespace4036 tracks the rename4037 renames things related to the namespace4038 #rename_namespace_dependencies4039 moves the repository for a project in the namespace4040 moves the uploads for the namespace4041 moves the pages for the namespace4042 invalidates the markdown cache of related projects4043 doesn't rename users for other namespaces4044 renames the username of a namespace for a user4045 #rename_user4046 renames a username4047 #rename_namespaces4048 renames top level namespaces the namespace4049 renames child namespaces4050 #revert_renames4051 renames the routes back to the previous values4052 moves the repositories back to their original place4053 doesn't break when the namespace was renamed4054Notes::BuildService4055 #execute4056 builds a note without saving it4057 when in_reply_to_discussion_id is specified4058 when a note with that original discussion ID exists4059 sets the note up to be in reply to that note4060 when discussion is resolved4061 resolves the note4062 when a note with that discussion ID exists4063 sets the note up to be in reply to that note4064 when no note with that discussion ID exists4065 sets an error4066 when user has no access to discussion4067 sets an error4068 personal snippet note4069 when a snippet is public4070 creates a reply note4071 when a snippet is private4072 creates a reply note when the author replies4073 sets an error when another user replies4074 when a snippet is internal4075 creates a reply note when the author replies4076 creates a reply note when a regular user replies4077 sets an error when an external user replies4078 when replying to individual note4079 sets the note up to be in reply to that note4080 when noteable does not support replies4081 builds another individual note4082Gitlab::MultiCollectionPaginator4083 combines both collections4084 includes elements second collection if first collection is empty4085 with a full first page4086 knows the total count of the collection4087 fills the first page with elements of the first collection4088 fils the second page with a mixture of the first & second collection4089 fils the last page with elements from the second collection4090Projects::AutoDevops::DisableService#execute4091 when Auto DevOps disabled at instance level4092 should be falsy4093 when Auto DevOps enabled at instance level4094 when Auto DevOps explicitly enabled on project4095 should be falsy4096 when Auto DevOps explicitly disabled on project4097 should be falsy4098 when Auto DevOps is implicitly enabled4099 when is the first pipeline failure4100 disables Auto DevOps for project4101 when it is not the first pipeline failure4102 explicitly disables Auto DevOps for project4103 when an Auto DevOps pipeline has succeeded before4104 does not disable Auto DevOps for project4105 when project does not have an Auto DevOps record related4106 disables Auto DevOps for project4107 creates a ProjectAutoDevops record4108Ci::DestroyPipelineService4109 user is owner4110 destroys the pipeline4111 clears the cache4112 does not log an audit event4113 when the pipeline has jobs4114 destroys associated jobs4115 destroys associated stages4116 when job has artifacts4117 destroys associated artifacts4118 user is not owner4119 raises an exception4120Clusters::ClustersHierarchy4121 #base_and_ancestors4122 project in nested group with clusters at every level4123DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from project_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:62)4124 returns clusters for project4125DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4126 returns clusters for child_group4127DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4128 returns clusters for parent_group4129DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4130 returns clusters for ancestor_group4131 project in a namespace4132DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from project_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:62)4133 returns clusters for project4134 project in nested group with clusters at some levels4135DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from project_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:62)4136 returns clusters for project4137DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4138 returns clusters for child_group4139DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4140 returns clusters for parent_group4141DEPRECATION WARNING: Delegating join_sources to arel is deprecated and will be removed in Rails 6.0. (called from group_clusters_base_query at /builds/gitlab-org/gitlab-ce/app/models/clusters/clusters_hierarchy.rb:49)4142 returns clusters for ancestor_group4143projects/commit/_commit_box.html.haml4144 shows the commit SHA4145 when there is a pipeline present4146 when there are multiple pipelines for a commit4147 shows the last pipeline4148 when pipeline for the commit is blocked4149 shows correct pipeline description4150 viewing a commit4151 as a developer4152 has a link to create a new tag4153 as a non-developer4154 does not have a link to create a new tag4155Projects::HashedStorage::RollbackAttachmentsService4156 #execute4157 works even when project validation fails4158 when succeeds4159 moves attachments to legacy storage layout4160 returns true4161 sets skipped to false4162 when original folder does not exist anymore4163 skips moving folders and go to next4164 returns true4165 sets skipped to true4166 when target folder already exists4167 raises AttachmentCannotMoveError4168 #old_disk_path4169 returns old disk_path for project4170 #new_disk_path4171 returns new disk_path for project4172Ci::ArchiveTracesCronWorker4173 when a job succeeded4174 executes service4175 behaves like archives trace4176 should be exist4177 when a trace had already been archived4178 continues to archive live traces4179 when an unexpected exception happened during archiving4180 puts a log4181 when a job was cancelled4182 behaves like archives trace4183 should be exist4184 when a job is running4185 behaves like does not archive trace4186 should be nil4187GroupDescendant4188 for a group4189 #hierarchy4190 only queries once for the ancestors4191 only queries once for the ancestors when a top is given4192 builds a hierarchy for a group4193 builds a hierarchy upto a specified parent4194 raises an error if specifying a base that is not part of the tree4195 .build_hierarchy4196 combines hierarchies until the top4197 combines upto a given parent4198 handles building a tree out of order4199 tracks the exception when a parent was not preloaded4200 recovers if a parent was not reloaded by querying for the parent4201 raises an error if not all elements were preloaded4202 for a project4203 #hierarchy4204 builds a hierarchy for a project4205 builds a hierarchy upto a specified parent4206 .build_hierarchy4207 combines hierarchies until the top4208 combines upto a given parent4209 merges to elements in the same hierarchy4210 merges complex hierarchies4211ProjectCacheWorker4212 #perform4213 with a non-existing project4214 does nothing4215 with an existing project without a repository4216 updates statistics but does not refresh the method cashes4217 with an existing project4218 refreshes the method caches4219 with statistics4220 updates the project statistics4221 with plain readme4222 refreshes the method caches4223 #update_statistics4224 when a lease could not be obtained4225 does not update the project statistics4226 when a lease could be obtained4227 updates the project statistics twice4228ProjectNoteEntity4229 exposes project-specific elements4230 behaves like note entity4231 basic note4232 exposes correct elements4233 does not expose elements for specific notes cases4234 exposes author correctly4235 does not expose web_url for author4236 when note was edited4237 exposes last_edited_at and last_edited_by elements4238 when note is a system note4239 exposes system_note_icon_name element4240 when note is part of resolvable discussion4241 exposes paths to resolve note4242Gitlab::Email::Handler::UnsubscribeHandler4243 when email key4244 matches the new format4245 matches the legacy format4246 doesn't match either format4247 when notification concerns a commit4248 handler does not raise an error4249 user is unsubscribed4250 leaves user unsubscribed4251 user is subscribed4252 unsubscribes user from notable4253 when using old style unsubscribe link4254 unsubscribes user from notable4255 when the noteable could not be found4256 raises a NoteableNotFoundError4257 when no sent notification for the mail key could be found4258 raises a SentNotificationNotFoundError4259Users::BuildService4260 #execute4261 with an admin user4262 returns a valid user4263 allowed params4264 sets all allowed attributes4265 with "user_default_external" application setting4266 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4267 correctly sets user.external4268 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4269 correctly sets user.external4270 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4271 correctly sets user.external4272 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4273 correctly sets user.external4274 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4275 correctly sets user.external4276 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4277 correctly sets user.external4278 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4279 correctly sets user.external4280 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4281 correctly sets user.external4282 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4283 correctly sets user.external4284 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4285 correctly sets user.external4286 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4287 correctly sets user.external4288 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4289 correctly sets user.external4290 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4291 correctly sets user.external4292 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4293 correctly sets user.external4294 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4295 correctly sets user.external4296 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4297 correctly sets user.external4298 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4299 correctly sets user.external4300 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4301 correctly sets user.external4302 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4303 correctly sets user.external4304 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4305 correctly sets user.external4306 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4307 correctly sets user.external4308 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4309 correctly sets user.external4310 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4311 correctly sets user.external4312 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4313 correctly sets user.external4314 with non admin user4315 raises AccessDeniedError exception4316 with nil user4317 returns a valid user4318 when "send_user_confirmation_email" application setting is true4319 does not confirm the user4320 when "send_user_confirmation_email" application setting is false4321 confirms the user4322 with "user_default_external" application setting4323 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4324 sets the value of Gitlab::CurrentSettings.user_default_external4325 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4326 sets the value of Gitlab::CurrentSettings.user_default_external4327 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true4328 sets the value of Gitlab::CurrentSettings.user_default_external4329 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4330 sets the value of Gitlab::CurrentSettings.user_default_external4331 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4332 sets the value of Gitlab::CurrentSettings.user_default_external4333 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true4334 sets the value of Gitlab::CurrentSettings.user_default_external4335 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4336 sets the value of Gitlab::CurrentSettings.user_default_external4337 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4338 sets the value of Gitlab::CurrentSettings.user_default_external4339 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4340 sets the value of Gitlab::CurrentSettings.user_default_external4341 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4342 sets the value of Gitlab::CurrentSettings.user_default_external4343 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4344 sets the value of Gitlab::CurrentSettings.user_default_external4345 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4346 sets the value of Gitlab::CurrentSettings.user_default_external4347 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4348 sets the value of Gitlab::CurrentSettings.user_default_external4349 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false4350 sets the value of Gitlab::CurrentSettings.user_default_external4351 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4352 sets the value of Gitlab::CurrentSettings.user_default_external4353 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4354 sets the value of Gitlab::CurrentSettings.user_default_external4355 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false4356 sets the value of Gitlab::CurrentSettings.user_default_external4357 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4358 sets the value of Gitlab::CurrentSettings.user_default_external4359 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4360 sets the value of Gitlab::CurrentSettings.user_default_external4361 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4362 sets the value of Gitlab::CurrentSettings.user_default_external4363 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4364 sets the value of Gitlab::CurrentSettings.user_default_external4365 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4366 sets the value of Gitlab::CurrentSettings.user_default_external4367 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4368 sets the value of Gitlab::CurrentSettings.user_default_external4369 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4370 sets the value of Gitlab::CurrentSettings.user_default_external4371Banzai::ObjectRenderer4372 #render4373 with cache4374 renders and redacts an Array of objects4375 calls Banzai::ReferenceRedactor to perform redaction4376 retrieves field content using Banzai::Renderer.render_field4377 passes context to PostProcessPipeline4378 without cache4379 renders and redacts an Array of objects4380 calls Banzai::ReferenceRedactor to perform redaction4381 retrieves field content using Banzai::Renderer.cacheless_render_field4382projects/merge_requests/diffs/_diffs.html.haml4383 for a commit4384 shows the commit scope4385Ci::VariablePresenter4386 inherits from Gitlab::View::Presenter::Delegated4387 #initialize4388 takes a variable and optional params4389 exposes variable4390 forwards missing methods to variable4391 #placeholder4392 should eq "PROJECT_VARIABLE"4393 #form_path4394 should eq "/namespace1234/project1288/-/settings/ci_cd"4395 #edit_path4396 should eq "/namespace1235/project1289/variables"4397 #delete_path4398 should eq "/namespace1236/project1290/variables"4399HasEnvironmentScope4400 should allow :environment_scope to be ‹"*"›4401 should allow :environment_scope to be ‹"review/*"›4402 should not allow :environment_scope to be ‹""›4403 should not allow :environment_scope to be ‹"!!()()"›4404 should validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure4405 .on_environment4406 returns scoped objects4407 returns only the most relevant object if relevant_only is true4408 returns scopes ordered by lowest precedence first4409 #environment_scope=4410 when the new environment_scope is nil4411 strips leading and trailing whitespaces4412 when the new environment_scope has leadind and trailing whitespaces4413 strips leading and trailing whitespaces4414mail_room.yml4415 when incoming email is disabled4416 contains no configuration4417 when incoming email is enabled4418 contains the intended configuration4419Gitlab::GithubImport::Importer::IssueImporter4420 .import_if_issue4421 imports an issuable if it is a regular issue4422 does not import the issuable if it is a pull request4423 #execute4424 creates the issue and assignees4425 #create_issue4426 produces a valid Issue4427 returns the ID of the created issue4428 when the issue author could be found4429 creates the issue with the found author as the issue author4430 when the issue author could not be found4431 creates the issue with the project creator as the issue author4432 when the import fails due to a foreign key error4433 does not raise any errors4434 #create_assignees4435 inserts the issue assignees in bulk4436Clusters::CreateService4437 when provider is gcp4438 when project has no clusters4439 when correct params4440 namespace per environment feature is enabled4441 creates a cluster object and performs a worker4442 namespace per environment feature is disabled4443 creates a cluster object and performs a worker4444 when invalid params4445 returns an error4446 when project has a cluster4447 does not create a cluster4448Deployments::FinishedWorker4449 #perform4450 executes project services for deployment_hooks4451 does not execute an inactive service4452 does nothing if a deployment with the given id does not exist4453Groups::NestedCreateService4454 with subgroups4455 #execute4456 returns the group if it already existed4457 reuses a parent if it already existed4458 creates group and subgroup in the database4459 behaves like with a visibility level4460 creates the group with correct visibility level4461 adding a visibility level4462 overwrites the visibility level4463Gitlab::Ci::Trace::Stream4464 delegates4465 should delegate #close to the #stream object4466 should delegate #tell to the #stream object4467 should delegate #seek to the #stream object4468 should delegate #size to the #stream object4469 should delegate #path to the #stream object4470 should delegate #truncate to the #stream object4471 should delegate #valid? to the #stream object as #present?4472 #limit4473 when stream is StringIO4474 behaves like limits4475 if size is larger we start from beginning4476 if size is smaller we start from the end4477 when the trace contains ANSI sequence and Unicode4478 forwards to the next linefeed, case 14479 forwards to the next linefeed, case 24480 reads in binary, output as Encoding.default_external4481 when stream is ChunkedIO4482 behaves like limits4483 if size is larger we start from beginning4484 if size is smaller we start from the end4485 when the trace contains ANSI sequence and Unicode4486 forwards to the next linefeed, case 14487 forwards to the next linefeed, case 24488 reads in binary, output as Encoding.default_external4489 #append4490 when stream is Tempfile4491 behaves like appends4492 truncates and append content4493 appends in binary mode4494 when stream is ChunkedIO4495 behaves like appends4496 truncates and append content4497 appends in binary mode4498 #set4499 when stream is StringIO4500 behaves like sets4501 overwrite content4502 when stream is ChunkedIO4503 behaves like sets4504 overwrite content4505 #raw4506 when stream is File4507 behaves like sets4508 returns all contents if last_lines is not specified4509 limit max lines4510 returns last few lines4511 returns everything if trying to get too many lines4512 when stream is ChunkedIO4513 behaves like sets4514 returns all contents if last_lines is not specified4515 limit max lines4516 returns last few lines4517 returns everything if trying to get too many lines4518 #html_with_state4519 when stream is StringIO4520 behaves like html_with_states4521 returns html content with state4522 follow-up state4523 returns appended trace4524 when stream is ChunkedIO4525 behaves like html_with_states4526 returns html content with state4527 follow-up state4528 returns appended trace4529 #html4530 when stream is StringIO4531 behaves like htmls4532 returns html4533 returns html for last line only4534 when stream is ChunkedIO4535 behaves like htmls4536 returns html4537 returns html for last line only4538 #extract_coverage4539 when stream is StringIO4540 behaves like extract_coverages4541 valid content & regex4542 should eq "98.29"4543 valid content & bad regex4544 should be nil4545 no coverage content & regex4546 should be nil4547 multiple results in content & regex4548 returns the last matched coverage4549 when BUFFER_SIZE is smaller than stream.size4550 should eq "98.29"4551 when regex is multi-byte char4552 should eq "95.0"4553 when BUFFER_SIZE is equal to stream.size4554 should eq "98.29"4555 using a regex capture4556 should eq "65"4557 malicious regexp4558 takes under a second4559 multi-line data with rooted regexp4560 should eq "65"4561 long line4562 should eq "100"4563 many lines4564 should eq "100"4565 empty regex4566 skips processing4567 nil regex4568 skips processing4569 when stream is ChunkedIO4570 behaves like extract_coverages4571 valid content & regex4572 should eq "98.29"4573 valid content & bad regex4574 should be nil4575 no coverage content & regex4576 should be nil4577 multiple results in content & regex4578 returns the last matched coverage4579 when BUFFER_SIZE is smaller than stream.size4580 should eq "98.29"4581 when regex is multi-byte char4582 should eq "95.0"4583 when BUFFER_SIZE is equal to stream.size4584 should eq "98.29"4585 using a regex capture4586 should eq "65"4587 malicious regexp4588 takes under a second4589 multi-line data with rooted regexp4590 should eq "65"4591 long line4592 should eq "100"4593 many lines4594 should eq "100"4595 empty regex4596 skips processing4597 nil regex4598 skips processing4599Projects::MoveDeployKeysProjectsService4600 #execute4601 moves the user's deploy keys from one project to another4602 does not link existent deploy_keys in the current project4603 rollbacks changes if transaction fails4604 when remove_remaining_elements is false4605 does not remove remaining deploy keys projects4606Gitlab::Ci::Pipeline::Chain::Command4607 #initialize4608 properly initialises object from hash4609 handling of origin_ref4610 #branch_exists?4611 for existing branch4612 should eq true4613 for invalid branch4614 should eq false4615 #tag_exists?4616 for existing ref4617 should eq true4618 for invalid ref4619 should eq false4620 #merge_request_ref_exists?4621 for existing merge request ref4622 should eq true4623 for branch ref4624 should eq false4625 #ref4626 for regular ref4627 should eq "master"4628 for branch ref4629 should eq "master"4630 for tag ref4631 should eq "1.0.0"4632 for other refs4633 should eq "refs/merge-requests/11/head"4634 #sha4635 when invalid checkout_sha is specified4636 returns empty value4637 when a valid checkout_sha is specified4638 returns checkout_sha4639 when a valid after_sha is specified4640 returns after_sha4641 when a valid origin_ref is specified4642 returns SHA for given ref4643 #origin_sha4644 when using checkout_sha and after_sha4645 uses checkout_sha4646 when using after_sha only4647 uses after_sha4648 #before_sha4649 when using checkout_sha and before_sha4650 uses before_sha4651 when using checkout_sha only4652 uses checkout_sha4653 when checkout_sha and before_sha are empty4654 uses BLANK_SHA4655 #source_sha4656 when source_sha is specified4657 returns the specified value4658 #target_sha4659 when target_sha is specified4660 returns the specified value4661 #protected_ref?4662 when a ref is protected4663 should eq true4664 when a ref is unprotected4665 should eq false4666 #ambiguous_ref4667 when ref is not ambiguous4668 should eq false4669 when ref is ambiguous4670 should eq true4671ChatNotificationService4672 Associations4673 should validate that :webhook cannot be empty/falsy4674 #can_test?4675 with empty repository4676 returns true4677 with repository4678 returns true4679 #execute4680 with a repository4681 returns true4682 with an empty repository4683 returns true4684Gitlab::DataBuilder::Deployment4685 .build4686 returns the object kind for a deployment4687 returns data for the given build4688gitlab:update_project_templates rake task4689 updates valid project templates4690Gitlab::Metrics::Dashboard::Processor4691 process4692 includes a path for the prometheus endpoint with each metric4693 when dashboard config corresponds to common metrics4694 inserts metric ids into the config4695 when the project has associated metrics4696 includes project-specific metrics4697 orders groups by priority and panels by weight4698 when the dashboard should not include project metrics4699 includes only dashboard metrics4700 when the dashboard is missing panel_groups4701 behaves like errors with message4702 raises a DashboardLayoutError4703 when the dashboard contains a panel_group which is missing panels4704 behaves like errors with message4705 raises a DashboardLayoutError4706 when the dashboard contains a panel which is missing metrics4707 behaves like errors with message4708 raises a DashboardLayoutError4709 when the dashboard contains a metric which is missing a query4710 behaves like errors with message4711 raises a DashboardLayoutError4712MembersFinder#execute4713 returns members for project and parent groups4714 includes nested group members if asked4715 when include_invited_groups_members == true4716DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)4717 includes all the invited_groups members including members inherited from ancestor groups4718DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)4719 includes all the invited_groups members4720DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from visible_to_user_arel at /builds/gitlab-org/gitlab-ce/app/models/group.rb:120)4721 excludes group_members not visible to the user4722Gitlab::Diff::PositionTracer4723 #trace4724 position is on text4725 calls LineStrategy#trace4726 position is not on text4727 calls ImageStrategy#trace4728 diffs methods4729 #ac_diffs4730 returns the diffs between the base of old and new diff4731 #bd_diffs4732 returns the diffs between the HEAD of old and new diff4733 #cd_diffs4734 returns the diffs in the new diff4735Gitlab::PhabricatorImport::BaseWorker4736 .schedule4737 schedules the job4738 counts the scheduled job4739 #perform4740 does not break for a non-existing project4741 does not do anything when the import is not in progress4742 calls import for the project4743 marks the project as imported if there was only one job running4744 does not mark the job as finished when there are more scheduled jobs4745 decrements the job counter4746ShaValidator4747 with empty value4748 does not add any error if value is empty4749 with valid sha4750 does not add any error4751 with invalid sha4752 adds error to the record4753IssueDueSchedulerWorker4754 #perform4755 schedules one MailScheduler::IssueDueWorker per project with open issues due tomorrow4756Gitlab::JobWaiter4757 .notify4758 pushes the jid to the named queue4759 #wait4760 returns when all jobs have been completed4761 times out if not all jobs complete4762ProtectedRefAccess4763 #check_access4764 is always true for admins4765 is true for maintainers4766 is for developers of the project4767 external authorization4768 is false if external authorization denies access4769RepositoryRemoveRemoteWorker4770 #perform4771 returns nil when project does not exist4772 when project exists47732019-08-23T08:10:59.160Z 89 TID-gr8noadyp INFO: Removing remote joe from project 13854774 does not remove remote when cannot obtain lease47752019-08-23T08:10:59.368Z 89 TID-gr8noadyp INFO: Removing remote joe from project 138647762019-08-23T08:10:59.372Z 89 TID-gr8noadyp ERROR: Could not remove remote joe from project 13864777 removes remote from repository when obtain a lease4778Ci::PipelineSchedulePolicy4779 rules4780 rules for protected ref4781 when no one can push or merge to the branch4782 does not include ability to play pipeline schedule4783 when developers can push to the branch4784 includes ability to update pipeline4785 when no one can create the tag4786 does not include ability to play pipeline schedule4787 when no one can create the tag but it is not a tag4788 includes ability to play pipeline schedule4789 rules for owner of schedule4790 includes abilities to do all operations on pipeline schedule4791 rules for a maintainer4792 includes abilities to do all operations on pipeline schedule4793 rules for non-owner of schedule4794 includes abilities to take ownership4795Gitlab::ImportExport::UploadsSaver4796 bundle a project Git repo4797 legacy storage4798 saves the uploads successfully4799 copies the uploads to the export path4800 hashed storage4801 saves the uploads successfully4802 copies the uploads to the export path4803shared/milestones/_top.html.haml4804 renders a deprecation message for a legacy milestone4805 renders a deprecation message for a dashboard milestone4806 does not render a deprecation message for a non-legacy and non-dashboard milestone4807Gitlab::BackgroundMigration::MigrateBuildStage4808NOTICE: index "index_projects_on_lower_name" does not exist, skipping4809NOTICE: index "index_on_users_name_lower" does not exist, skipping4810 correctly migrates builds stages4811 recovers from unique constraint violation only twice (PENDING: around hook at ./spec/spec_helper.rb:151 did not execute the example)4812 when invalid class can be loaded due to single table inheritance4813 does ignore single table inheritance type4814NOTICE: table "design_management_designs" does not exist, skipping4815NOTICE: table "design_management_designs_versions" does not exist, skipping4816NOTICE: table "design_management_versions" does not exist, skipping4817NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4818CleanupBuildStageMigration4819 when there are pending background migrations4820 processes pending jobs synchronously4821 when there are no background migrations pending4822 does nothing4823 when there are still unmigrated builds present4824DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block (2 levels) in up at /builds/gitlab-org/gitlab-ce/db/migrate/20180420010616_cleanup_build_stage_migration.rb:43)4825 migrates stages sequentially in batches4826NOTICE: table "design_management_designs" does not exist, skipping4827NOTICE: table "design_management_designs_versions" does not exist, skipping4828NOTICE: table "design_management_versions" does not exist, skipping4829NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4830Gitlab::DataBuilder::WikiPage4831 .build4832 should be a kind of Hash4833 should eq "wiki_page"4834 should eq {:avatar_url=>"https://www.gravatar.com/avatar/a1e3baff5c58353d15c231a12dbbad5c?s=80&d=identicon", :name=>"John Doe2350", :username=>"user2369"}4835 should eq {:avatar_url=>nil, :ci_config_path=>nil, :default_branch=>"master", :description=>nil, :git_http_url=...1317/project1380.git", :visibility_level=>0, :web_url=>"http://localhost/namespace1317/project1380"}4836 should eq {:default_branch=>"master", :git_http_url=>"http://localhost/namespace1317/project1380.wiki.git", :gi..."namespace1317/project1380.wiki", :web_url=>"http://localhost/namespace1317/project1380/wikis/home"}4837 should include {:title => "Title.with.dot", :content => "Content for wiki page", :format => "markdown", "content" => "Content for wiki page"}4838 should include {:url => "http://localhost/namespace1317/project1380/wikis/Title.with.dot"}4839 should include {:action => "create"}4840DeleteBranchService4841 #execute4842 when user has access to push to repository4843 behaves like a deleted branch4844 removes the branch4845 when user does not have access to push to repository4846 does not remove branch4847ReactiveCachingWorker4848 #perform4849 when user configured kubernetes from CI/CD > Clusters4850 calls #exclusively_update_reactive_cache!4851BuildCoverageWorker4852 #perform4853 when build exists4854 updates code coverage4855 when build does not exist4856 does not raise exception4857Ci::BuildMetadata4858 behaves like having unique enum values4859 has unique values in "timeout_source"4860 #update_timeout_state4861 when runner is not assigned to the job4862 doesn't change timeout value4863 doesn't change timeout_source value4864 when runner is assigned to the job4865 when runner timeout is lower than project timeout4866 sets runner timeout4867 sets runner_timeout_source4868 when runner timeout is higher than project timeout4869 sets project timeout4870 sets project_timeout_source4871CampfireService4872 Associations4873 should belong to project required:4874 should have one service_hook4875 Validations4876 when service is active4877 should validate that :token cannot be empty/falsy4878 when service is inactive4879 should not validate that :token cannot be empty/falsy4880 #execute4881 calls Campfire API to get a list of rooms and speak in a room4882 calls Campfire API to get a list of rooms but shouldn't speak in a room4883Gitlab::Ci::Status::Build::Canceled4884 #illustration4885 should include :image, :size, and :title4886 .matches?4887 when build is canceled4888 is a correct match4889 when build is not canceled4890 does not match4891Gitlab::Ci::Status::Build::Erased4892 #illustration4893 should include :image, :size, and :title4894 .matches?4895 when build is erased4896 is a correct match4897 when build is not erased4898 does not match4899ProjectMirrorEntity49002019-08-23T08:11:49.632Z 89 TID-gr8noadyp INFO: Removing remote remote_mirror_2 from project 140749012019-08-23T08:11:49.639Z 89 TID-gr8noadyp ERROR: Could not remove remote remote_mirror_2 from project 14074902 exposes project-specific elements4903Ci::BuildPrepareWorker4904 build exists4905 calls the prepare build service4906 build does not exist4907 does not attempt to prepare the build4908MergeRequestForPipelineEntity4909 as json4910 exposes needed attributes4911MergeRequestWidgetCommitEntity4912 as json4913 should eq "Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"4914 should eq "b83d6e39"4915 should eq "Merge branch 'branch-merged' into 'master'"4916UserEntity4917 exposes user name and login4918 does not expose passwords4919 does not expose tokens4920 does not expose 2FA OTPs4921 exposes user path4922AnalyticsBuildSerializer4923 when there is a single object provided4924 contains important elements of analyticsBuild4925UserCalloutsHelper4926 .show_gke_cluster_integration_callout?4927 when user can create a cluster4928 when user has not dismissed4929 should equal true4930 when user dismissed4931 should equal false4932 when user can not create a cluster4933 should equal false4934 .render_flash_user_callout4935 renders the flash_user_callout partial4936ImportExportCleanUpService4937 #execute4938 when the import/export directory does not exist4939 does not remove any archives4940 when the import/export directory exists4941 removes old files4942 does not remove new files4943 with uploader exports4944 removes old files4945 does not remove new files4946ProjectAuthorization4947 .insert_authorizations4948 inserts the authorizations4949 inserts rows in batches4950Gitlab::PhabricatorImport::Importer4951 should be async4952 acts like it's importing repositories4953 #execute4954 sets a custom jid that will be kept up to date4955 starts importing tasks4956 marks the import as failed when something goes wrong4957SpamLog4958 associations4959 should belong to user required:4960 validations4961 should validate that :user cannot be empty/falsy4962 #remove_user4963 blocks the user4964 removes the user4965ApplicationSetting::TermPolicy4966 has the correct permissions4967 for anonymous users4968 has the correct permissions4969 when the terms are not current4970 has the correct permissions4971 when the user already accepted the terms4972 has the correct permissions4973Gitlab::JsonCache4974 #active?4975 when backend respond to active? method4976 delegates to the underlying cache implementation4977 when backend does not respond to active? method4978 returns true4979 #cache_key4980 when namespace is not defined4981 when cache_key_with_version is true4982 expands out the key with GitLab, and Rails versions4983 when cache_key_with_version is false4984 returns the key4985 when namespace is nil4986 when cache_key_with_version is true4987 expands out the key with GitLab, and Rails versions4988 when cache_key_with_version is false4989 returns the key4990 when namespace is set4991 when cache_key_with_version is true4992 expands out the key with namespace and Rails version4993 when cache_key_with_version is false4994 expands out the key with namespace4995 #expire4996 expires the given key from the cache4997 #read4998 reads the given key from the cache4999 returns the cached value when there is data in the cache with the given key5000 returns nil when there is no data in the cache with the given key5001 when the cached value is true5002 parses the cached value5003 when the cached value is false5004 parses the cached value5005 when the cached value is a JSON true value5006 parses the cached value5007 when the cached value is a JSON false value5008 parses the cached value5009 when the cached value is a hash5010 parses the cached value5011 returns nil when klass is nil5012 gracefully handles bad cached entry5013 gracefully handles an empty hash5014 gracefully handles unknown attributes5015 gracefully handles excluded fields from attributes during serialization5016 when the cached value is an array5017 parses the cached value5018 returns an empty array when klass is nil5019 gracefully handles bad cached entry5020 gracefully handles an empty array5021 gracefully handles unknown attributes5022 #write5023 writes value to the cache with the given key5024 writes a string containing a JSON representation of the value to the cache5025 passes options the underlying cache implementation5026 passes options the underlying cache implementation when options is empty5027 passes options the underlying cache implementation when options is nil5028 #fetch5029 requires a block5030 passes options the underlying cache implementation5031 when the given key does not exist in the cache5032 when the result of the block is truthy5033 returns the result of the block5034 caches the value5035 when the result of the block is false5036 returns the result of the block5037 caches the value5038 when the result of the block is nil5039 returns the result of the block5040 caches the value5041 when the given key exists in the cache5042 when the cached value is a hash5043 parses the cached value5044 returns the result of the block when 'as' option is nil5045 returns the result of the block when 'as' option is missing5046 when the cached value is an instance of ActiveRecord::Base5047 returns a persisted record when id is set5048 returns a new record when id is nil5049 returns a new record when id is missing5050 gracefully handles bad cached entry5051 gracefully handles an empty hash5052 gracefully handles unknown attributes5053 gracefully handles excluded fields from attributes during serialization5054 when the cached value is a array5055 parses the cached value5056 returns an empty array when 'as' option is nil5057 returns an empty array when 'as' option is not informed5058 when the cached value is true5059 returns the cached value5060 does not execute the block5061 does not write to the cache5062 when the cached value is false5063 returns the cached value5064 does not execute the block5065 does not write to the cache5066 when the cached value is nil5067 returns the result of the block5068 writes the result of the block to the cache5069projects/issues/_related_branches5070 shows the related branches with their build status5071Gitlab::Allowable5072 #can?5073 when user is allowed to do something5074 reports correct ability to perform action5075 when user is not allowed to do something5076 reports correct ability to perform action5077Uploads::Local5078 model with uploads5079 #keys5080 returns keys5081 #delete_keys5082 deletes multiple data5083UpdateSnippetService5084 When public visibility is restricted5085 non-admins should not be able to update to public visibility5086 admins should be able to update to pubic visibility5087 usage counter5088 increments count5089 does not increment count if create fails5090Ci::TriggerPresenter5091 when user is not a trigger owner5092 #token5093 exposes only short token5094 #has_token_exposed?5095 does not have token exposed5096 when user is a trigger owner and builds admin5097 #token5098 exposes full token5099 #has_token_exposed?5100 has token exposed5101Gitlab::ExternalAuthorization::Client5102 #request_access5103 performs requests to the configured endpoint5104 adds the correct params for the user to the body of the request5105 respects the the timeout5106 adds the mutual tls params when they are present5107 returns an expected response5108 wraps exceptions if the request fails5109 for ldap users5110 includes the ldap dn and identities for ldap users5111 for non-ldap users with identities5112 includes all the identities5113SystemNoteMetadata5114 associations5115 should belong to note required:5116 validation5117 should validate that :note cannot be empty/falsy5118 when action type is invalid5119 should be invalid5120 when action type is valid5121 should be valid5122ProjectDailyStatisticsWorker#perform5123 #perform5124 calls daily_statistics_service with the given project5125 with a non-existing project5126 does nothing5127 with an existing project without a repository5128 does nothing5129Gitlab::PhabricatorImport::ImportTasksWorker5130 #perform5131 calls the correct importer5132ImportExportUpload5133 import5134 behaves like stores the Import/Export file5135 stores the import file5136 export5137 behaves like stores the Import/Export file5138 stores the import file5139DeployKey5140 Associations5141 should have many deploy_keys_projects5142 should have many projects5143 notification5144 does not send a notification5145 #user5146 when user is set5147 returns the user5148 when user is not set5149 returns the ghost user5150LfsObjectUploader5151 behaves like builds correct paths5152 #store_dir5153 behaves like matches the method pattern5154 should match /\h{2}\/\h{2}/5155 #cache_dir5156 behaves like matches the method pattern5157 should match /\/lfs-objects\/tmp\/cache/5158 #work_dir5159 behaves like matches the method pattern5160 should match /\/lfs-objects\/tmp\/work/5161 #upload_path5162 behaves like matches the method pattern5163 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5164 #relative_path5165 is relative (PENDING: Path not set, skipping.)5166 .absolute_path5167 behaves like matches the method pattern5168 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5169 .base_dir5170 behaves like matches the method pattern5171 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5172 object store is REMOTE5173 behaves like builds correct paths5174 #store_dir5175 behaves like matches the method pattern5176 should match /\h{2}\/\h{2}/5177 #cache_dir5178 behaves like matches the method pattern5179 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5180 #work_dir5181 behaves like matches the method pattern5182 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5183 #upload_path5184 behaves like matches the method pattern5185 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5186 #relative_path5187 is relative (PENDING: Path not set, skipping.)5188 .absolute_path5189 behaves like matches the method pattern5190 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5191 .base_dir5192 behaves like matches the method pattern5193 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5194 migration to object storage5195 with object storage disabled5196 is skipped5197 with object storage enabled5198 is scheduled to run after creation5199 remote file5200 with object storage enabled5201 can store file remotely5202Projects::ProtectDefaultBranchService5203 #execute5204 without a default branch5205 does nothing5206 with a default branch5207 protects the default branch5208 #protect_default_branch5209 when branch protection is needed5210 changes the HEAD of the project5211 protects the default branch5212 when branch protection is not needed5213 changes the HEAD of the project5214 does not protect the default branch5215 #create_protected_branch5216 creates the protected branch5217 #protect_branch?5218 when default branch protection is disabled5219 returns false5220 when default branch protection is enabled5221 returns false if the branch is already protected5222 returns true if the branch is not yet protected5223 #default_branch5224 returns the default branch of the project5225 #push_access_level5226 when developers can push5227 returns the DEVELOPER access level5228 when developers can not push5229 returns the MAINTAINER access level5230 #merge_access_level5231 when developers can merge5232 returns the DEVELOPER access level5233 when developers can not merge5234 returns the MAINTAINER access level5235Admin::RunnersFinder5236 #execute5237 with empty params5238 returns all runners5239 filter by search term5240 calls Ci::Runner.search5241 filter by status5242 calls the corresponding scope on Ci::Runner5243 filter by runner type5244 calls the corresponding scope on Ci::Runner5245 filter by tag_name5246 calls the corresponding scope on Ci::Runner5247 sort5248 without sort param5249 sorts by created_at5250 with sort param5251 sorts by specified attribute5252 paginate5253 returns the runners for the specified page5254Gitlab::Auth::BlockedUserTracker5255 #log_blocked_user_activity!5256 when user is not blocked5257 does not log blocked user activity5258 when user is not blocked5259 logs blocked user activity5260Gitlab::GitlabImport::Importer5261 #execute5262 persists issues5263BoardsHelper5264 #build_issue_link_base5265 project board5266 returns correct path for project board5267 group board5268 returns correct path for base group5269 returns correct path for subgroup5270 #board_data5271 returns a board_lists_path as lists_endpoint5272 #current_board_json5273 can serialise with a basic set of attributes5274Gitlab::Verify::LfsObjects5275 behaves like Gitlab::Verify::BatchVerifier subclass5276 batching5277 iterates through objects in batches5278 allows the starting ID to be specified5279 allows the finishing ID to be specified5280 #run_batches5281 passes LFS objects with the correct file5282 fails LFS objects with a missing file5283 fails LFS objects with a mismatched oid5284 with remote files5285 passes LFS objects in object storage that exist5286 fails LFS objects in object storage that do not exist5287WaitForClusterCreationWorker5288 #perform5289 when provider type is gcp5290 provision a cluster5291 when provider type is user5292 does not provision a cluster5293 when cluster does not exist5294 does not provision a cluster5295PipelineHooksWorker5296 #perform5297 when pipeline exists5298 executes hooks for the pipeline5299 when pipeline does not exist5300 does not raise exception5301Ci::ArtifactBlob5302 #id5303 returns a hash of the path5304 #name5305 returns the entry name5306 #path5307 returns the entry path5308 #size5309 returns the entry size5310 #mode5311 returns the entry mode5312 #external_storage5313 returns :build_artifact5314 #external_url5315 .gif extension5316 returns nil5317 txt extensions5318 returns a URL5319 when port is configured5320 returns an URL with port number5321 #external_link?5322 gif extensions5323 returns false5324 txt extensions5325 returns true5326Gitlab::Ci::Pipeline::Chain::Skip5327 when pipeline has been skipped by a user5328 breaks the chain5329 skips the pipeline5330 when pipeline has not been skipped5331 does not break the chain5332 does not skip a pipeline chain5333 when [ci skip] should be ignored5334 does not break the chain5335 when pipeline should be skipped but not persisted5336 breaks the chain5337 does not skip pipeline5338InstanceConfiguration5339 without cache5340 #settings5341 #ssh_algorithms_hashes5342 does not return anything if file does not exist5343 does not return anything if file is empty5344 returns the md5 and sha256 if file valid and exists5345 #host5346 returns current instance host5347 #gitlab_pages5348 returns Settings.pages5349 returns the GitLab's pages host ip address5350 returns the ip address as nil if the domain is invalid5351 returns the ip address of the domain5352 #gitlab_ci5353 returns Settings.gitalb_ci5354 returns the key artifacts_max_size5355 returns the key artifacts_max_size with values5356 with cache5357 caches settings content5358 cached settings5359 expires after EXPIRATION_TIME5360Mutations::ResolvesProject5361 uses the ProjectsResolver to resolve projects by path5362Gitlab::ExternalAuthorization::Access5363 #loaded?5364 is `true` when it was loaded recently5365 is `false` when there is no loading time5366 is `false` when there the result was loaded a long time ago5367 load!5368 when loading from the webservice5369 loads from the webservice it the cache was empty5370 assigns the accessibility, reason and loaded_at5371 returns itself5372 stores the result in redis5373 when the request fails5374 is loaded5375 assigns the correct accessibility, reason and loaded_at5376 does not store the result in redis5377 When loading from cache5378 does not load from the webservice5379 loads from the webservice when the cached result was too old5380devise/shared/_signin_box5381 Crowd form5382 is shown when Crowd is enabled5383 is not shown when Crowd is disabled5384Gitlab::Prometheus::AdditionalMetricsParser5385 #load_groups_from_yaml5386 parsing sample yaml5387 parses to two metric groups with 2 and 1 metric respectively5388 provide group data5389 provides metrics data5390 provides query data5391 group required fields5392 behaves like required field5393 when metrics is nil5394 throws parsing error5395 when metrics are not specified5396 throws parsing error5397 behaves like required field5398 when name is nil5399 throws parsing error5400 when name are not specified5401 throws parsing error5402 behaves like required field5403 when priority is nil5404 throws parsing error5405 when priority are not specified5406 throws parsing error5407 metrics fields parsing5408 behaves like required field5409 when title is nil5410 throws parsing error5411 when title are not specified5412 throws parsing error5413 behaves like required field5414 when required metrics is nil5415 throws parsing error5416 when required metrics are not specified5417 throws parsing error5418 behaves like required field5419 when weight is nil5420 throws parsing error5421 when weight are not specified5422 throws parsing error5423 behaves like required field5424 when queries is nil5425 throws parsing error5426 when queries are not specified5427 throws parsing error5428Gitlab::Git::HookEnv5429 .set5430 with RequestStore disabled5431 does not store anything5432 with RequestStore enabled5433 whitelist some `GIT_*` variables and stores them using RequestStore5434 .all5435 with RequestStore enabled5436 returns an env hash5437 .to_env_hash5438 with RequestStore enabled5439 input: nil, output: nil5440 puts the right value in the hash5441 input: "foo", output: "foo"5442 puts the right value in the hash5443 input: [], output: ""5444 puts the right value in the hash5445 input: ["foo"], output: "foo"5446 puts the right value in the hash5447 input: ["foo", "bar"], output: "foo:bar"5448 puts the right value in the hash5449 thread-safety5450 with RequestStore enabled5451 is thread-safe5452PagesDomainVerificationCronWorker5453 #perform5454 does nothing if the database is read-only5455 enqueues a PagesDomainVerificationWorker for domains needing verification5456Gitlab::Ci::Config::Entry::Root5457 .nodes5458 returns a hash5459 when filtering all the entry/node names5460 contains the expected node names5461 when configuration is valid5462 when top-level entries are defined5463 #compose!5464 creates nodes hash5465 creates node object for each entry5466 creates node object using valid class5467 sets correct description for nodes5468 #leaf?5469 is not leaf5470 when composed5471 #errors5472 has no errors5473 #stages_value5474 when stages key defined5475 returns array of stages5476 when deprecated types key defined5477 returns array of types as stages5478 #jobs_value5479 returns jobs configuration5480 when a mix of top-level and default entries is used5481 when composed5482 #errors5483 has no errors5484 #jobs_value5485 returns jobs configuration5486 when most of entires not defined5487 #nodes5488 instantizes all nodes5489 contains unspecified nodes5490 #variables_value5491 returns root value for variables5492 #stages_value5493 returns an array of root stages5494 #cache_value5495 returns correct cache definition5496 when variables resembles script-type job5497 #variables_value5498 returns root value for variables5499 #jobs_value5500 returns one job5501 when entires specified but not defined5502 #variables_value5503 undefined entry returns a root value5504 when configuration is not valid5505 when before script is not an array5506 #valid?5507 is not valid5508 #errors5509 reports errors from child nodes5510 when job does not have commands5511 #errors5512 reports errors about missing script5513 when value is not a hash5514 #valid?5515 is not valid5516 #errors5517 returns error about invalid type5518 #specified?5519 is concrete entry that is defined5520 #[]5521 when entry exists5522 returns correct entry5523 when entry does not exist5524 always return unspecified node5525gitlab:workhorse namespace rake task5526 install5527 no dir given5528 aborts and display a help message5529 when an underlying Git command fail5530 aborts and display a help message5531 checkout or clone5532 calls checkout_or_clone_version with the right arguments5533 gmake/make5534 gmake is available5535 calls gmake in the gitlab-workhorse directory5536 gmake is not available5537 calls make in the gitlab-workhorse directory5538ExpireJobCacheWorker5539 #perform5540 with a job in the pipeline5541 invalidates Etag caching for the job path5542 when there is no job in the pipeline5543 does not change the etag store5544Gitlab::DependencyLinker::GemfileLinker5545 .support?5546 supports Gemfile5547 supports gems.rb5548 does not support other files5549 #link5550 links sources5551 links dependencies5552 links to external dependencies5553 links GitHub repos5554 links Git repos5555SortingHelper5556 #issuable_sort_option_title5557 returns correct title for issuable_sort_option_overrides key5558 returns correct title for a valid sort value5559 returns nil for invalid sort value5560 #issuable_sort_direction_button5561 keeps label filter param5562 returns icon with sort-highest when sort is created_date5563 returns icon with sort-lowest when sort is asc5564 returns icon with sort-lowest when sorting by milestone5565 returns icon with sort-lowest when sorting by due_date5566 with `admin/projects` controller5567 #projects_sort_options_hash5568 returns a hash of available sorting options5569 with `projects` controller5570 #projects_sort_options_hash5571 returns a hash of available sorting options5572 #projects_reverse_sort_options_hash5573 returns a reversed hash of available sorting options5574 sort_key: "latest_activity_desc", reverse_sort_title: "latest_activity_asc"5575 should eq "latest_activity_asc"5576 sort_key: "created_desc", reverse_sort_title: "created_asc"5577 should eq "created_asc"5578 sort_key: "name_asc", reverse_sort_title: "name_desc"5579 should eq "name_desc"5580 sort_key: "stars_desc", reverse_sort_title: "stars_asc"5581 should eq "stars_asc"5582 sort_key: "latest_activity_asc", reverse_sort_title: "latest_activity_desc"5583 should eq "latest_activity_desc"5584 sort_key: "created_asc", reverse_sort_title: "created_desc"5585 should eq "created_desc"5586 sort_key: "name_desc", reverse_sort_title: "name_asc"5587 should eq "name_asc"5588 sort_key: "stars_asc", reverse_sort_title: "stars_desc"5589 should eq "stars_desc"5590 #project_sort_direction_button5591 returns the correct link to reverse the current sort option5592 returns the correct icon for each sort option5593 selected_sort: "latest_activity_desc", icon: "sort-highest"5594 should include "sort-highest"5595 selected_sort: "created_desc", icon: "sort-highest"5596 should include "sort-highest"5597 selected_sort: "name_desc", icon: "sort-highest"5598 should include "sort-highest"5599 selected_sort: "stars_desc", icon: "sort-highest"5600 should include "sort-highest"5601 selected_sort: "latest_activity_asc", icon: "sort-lowest"5602 should include "sort-lowest"5603 selected_sort: "created_asc", icon: "sort-lowest"5604 should include "sort-lowest"5605 selected_sort: "name_asc", icon: "sort-lowest"5606 should include "sort-lowest"5607 selected_sort: "stars_asc", icon: "sort-lowest"5608 should include "sort-lowest"5609 #projects_sort_option_titles5610 returns a hash of titles for the sorting options5611 with project_list_filter_bar off5612 #projects_sort_options_hash5613 returns a hash of available sorting options5614Gitlab::DependencyLinker::PodspecLinker5615 .support?5616 supports *.podspec5617 does not support other files5618 #link5619 does not link the pod name5620 links the license5621 links the homepage5622 links the source URL5623 links dependencies5624TaskListToggleService5625 checks Task 15626 unchecks Item 15627 checks task in loose list5628 returns false if line_source does not match the text5629 tolerates \r\n line endings5630 returns false if markdown is nil5631 returns false if markdown_html is nil5632 properly handles tasks in a blockquote5633 properly handles a GitLab blockquote5634PagesDomainVerificationWorker5635 #perform5636 does nothing if the database is read-only5637 does nothing for a non-existent domain5638 delegates to VerifyPagesDomainService5639Projects::ForksCountService5640 #count5641 returns the number of forks5642Gitlab::SQL::RecursiveCTE5643 #to_arel5644 generates an Arel relation for the CTE body5645 #alias_to5646 returns an alias for the CTE5647 replaces dots with an underscore5648 #apply_to5649 applies a CTE to an ActiveRecord::Relation5650AuthorizedProjectsWorker5651 #perform5652 refreshes user's authorized projects5653 when the user is not found5654 does nothing5655MicrosoftTeams::Notifier5656 #ping5657 expects to receive successful answer5658Gitlab::Ci::Config::Entry::Service5659 when configuration is a string5660 #valid?5661 is valid5662 #value5663 returns valid hash5664 #image5665 returns service's image name5666 #alias5667 returns service's alias5668 #command5669 returns service's command5670 #ports5671 returns service's ports5672 when configuration is a hash5673 #valid?5674 is valid5675 #value5676 returns valid hash5677 #image5678 returns service's image name5679 #alias5680 returns service's alias5681 #command5682 returns service's command5683 #entrypoint5684 returns service's entrypoint5685 when configuration has ports5686 when with_image_ports metadata is not enabled5687 #valid?5688 is not valid5689 when with_image_ports metadata is enabled5690 #valid?5691 is valid5692 when unknown port keys detected5693 is not valid5694 #ports5695 returns image's ports5696 when entry value is not correct5697 #errors5698 saves errors5699 #valid?5700 is not valid5701 when unexpected key is specified5702 #errors5703 saves errors5704 #valid?5705 is not valid5706 when service has ports5707 alias field is mandatory5708 when service does not have ports5709 alias field is optional5710Gitlab::Graphql::Loaders::BatchLfsOidLoader5711 #find5712 batch-resolves LFS blob IDs5713Resolvers::GroupResolver5714 #resolve5715 batch-resolves groups by full path5716 resolves an unknown full_path to nil5717Gitlab::TimeTrackingFormatter5718 #parse5719 positive durations5720 should eq 120005721 negative durations5722 should eq -120005723 #output5724 time_tracking_limit_to_hours setting is true5725 should eq "49h 40m"5726 time_tracking_limit_to_hours setting is false5727 should eq "1w 1d 1h 40m"5728BroadcastMessagesHelper5729 broadcast_message5730 returns nil when no current message5731 includes the current message5732 includes custom style5733 broadcast_message_style5734 defaults to no style5735 allows custom style5736 broadcast_message_status5737 returns Active5738 returns Expired5739 returns Pending5740RuboCop::Cop::RSpec::FactoriesInMigrationSpecs5741 in a migration spec file5742 behaves like an offensive factory call5743 registers an offense for build(:user)5744 registers an offense for build_list(:user)5745 registers an offense for create(:user)5746 registers an offense for create_list(:user)5747 behaves like an offensive factory call5748 registers an offense for FactoryBot.build(:user)5749 registers an offense for FactoryBot.build_list(:user)5750 registers an offense for FactoryBot.create(:user)5751 registers an offense for FactoryBot.create_list(:user)5752 outside of a migration spec file5753 does not register an offense5754bin/changelog5755 ChangelogEntry5756 truncates the file path5757 ChangelogOptionParser5758 .parse5759 parses --amend5760 parses --force and -f5761 parses --merge-request and -m5762 parses --dry-run and -n5763 parses --git-username and -u5764 parses --type and -t5765 parses -h5766 assigns title5767 .read_type5768 reads type from $stdin5769 invalid type given5770 shows error message and exits the program5771Gitlab::Ci::Build::Artifacts::Metadata5772 metadata file exists5773 #find_entries! empty string5774 matches correct paths5775 matches metadata for every path5776 return Hashes for each metadata5777 #find_entries! other_artifacts_0.1.2/5778 matches correct paths5779 #find_entries! other_artifacts_0.1.2/another-subdirectory/5780 matches correct paths5781 #find_entries! recursively for other_artifacts_0.1.2/5782 matches correct paths5783 #to_entry5784 should be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5785 #full_version5786 should eq "GitLab Build Artifacts Metadata 0.0.1"5787 #version5788 should eq "0.0.1"5789 #errors5790 should eq {}5791 metadata file does not exist5792 #find_entries!5793 raises error5794 metadata file is invalid5795 #find_entries!5796 raises error5797 generated metadata5798 #find_entries!5799 reads expected number of entries5800Gitlab::ExternalAuthorization::Cache5801 #load5802 reads stored info from redis5803 #store5804 sets the values in redis5805Gitlab::Kubernetes5806 #container_exec_url5807 should eq "wss"5808 should eq "example.com"5809 should eq "/api/v1/namespaces/default/pods/pod1/exec"5810 should eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"5811 with a HTTP API URL5812 should eq "ws"5813 with a path prefix in the API URL5814 should eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"5815 with arguments that need urlencoding5816 should eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"5817 should match /\Acontainer=container\+1&/5818 #filter_by_label5819 returns matching labels5820 #filter_by_annotation5821 returns matching labels5822 #filter_by_project_environment5823 returns matching env label5824 #filter_by_legacy_label5825 returns matching labels5826 #to_kubeconfig5827 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5828 when CA PEM is not provided5829 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5830 when token is not provided5831 should be nil5832 #add_terminal_auth5833 adds authentication parameters to a hash5834Gitlab::UntrustedRegexp5835 #initialize5836 invalid regexp5837 should raise RegexpError5838 #replace_all5839 replaces all instances of the match in a string5840 #replace5841 replaces the first instance of the match in a string5842 #===5843 returns true for a match5844 returns false for no match5845 can handle regular expressions in multiline mode5846 #match?5847 malicious regexp5848 takes under a second5849 matching regexp5850 returns an array of nil matches5851 non-matching regexp5852 returns an array of nil matches5853 #scan5854 malicious regexp5855 takes under a second5856 empty regexp5857 returns an array of nil matches5858 empty capture group regexp5859 returns an array of nil matches in an array5860 no capture group5861 returns the whole match5862 one capture group5863 returns the captured part5864 two capture groups5865 returns the captured parts5866Import/Export model configuration5867 has no new models5868Gitlab::HealthChecks::Redis::SharedStateCheck5869 #metrics5870 Check is passing5871 should include (have attributes {:name => "redis_shared_state_ping_success", :value => 1})5872 should include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})5873 should include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})5874 Check is misbehaving5875 should include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})5876 should include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})5877 should include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})5878 Check is timeouting5879 should include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})5880 should include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 1})5881 should include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})5882 #readiness5883 Check returns ok5884 should have attributes {:success => true}5885 Check is misbehaving5886 should have attributes {:message => "unexpected Shared_state check result: error!", :success => false}5887 Check is timeouting5888 should have attributes {:message => "Shared_state check timed out", :success => false}5889 #liveness5890 should eq #<struct Gitlab::HealthChecks::Result success=true, message=nil, labels=nil>5891Gitlab::Cache::RequestCache5892 when RequestStore is active5893 computes once for different instances when keys are the same5894 computes twice if RequestStore starts over5895 behaves like cache for the same instance5896 does not compute twice for the same argument5897 computes twice for the different argument5898 computes twice for the different class name5899 computes twice for the different method5900 when request_cache_key is provided5901 computes twice for the different keys, id5902 computes twice for the different keys, name5903 uses extra method cache key if provided5904 when RequestStore is inactive5905 computes twice for different instances even if keys are the same5906 behaves like cache for the same instance5907 does not compute twice for the same argument5908 computes twice for the different argument5909 computes twice for the different class name5910 computes twice for the different method5911 when request_cache_key is provided5912 computes twice for the different keys, id5913 computes twice for the different keys, name5914 uses extra method cache key if provided5915Gitlab::Ci::Config::External::File::Base5916 #matching?5917 when a location is present5918 returns true5919 with a location is missing5920 returns false5921 #valid?5922 when location is not a YAML file5923 should not be valid5924 when location has not a valid naming scheme5925 should not be valid5926 when location is a valid .yml extension5927 should be valid5928 when location is a valid .yaml extension5929 should be valid5930 when there are YAML syntax errors5931 is not a valid file5932 #to_hash5933 with includes5934 does expand hash to include the template5935Gitlab::Ci::Pipeline::Expression::Lexer5936 #tokens5937 returns single value5938 does ignore whitespace characters5939 returns multiple values of the same token5940 returns multiple values with different tokens5941 returns tokens and operators5942 limits statement to specified amount of tokens5943 raises syntax error in case of finding unknown tokens5944 with complex expressions5945 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5946 should eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5947 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]5948 should eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]5949 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]5950 should eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]5951 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]5952 should eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]5953 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]5954 should eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]5955 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]5956 should eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]5957 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]5958 should eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]5959 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]5960 should eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]5961 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]5962 should eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]5963 #lexemes5964 returns an array of syntax lexemes5965ShaAttribute5966 #sha_attribute5967 when in non-production5968 when the table exists5969 defines a SHA attribute for a binary column5970 raises ArgumentError when the column type is not :binary5971 when the table does not exist5972 allows the attribute to be added and issues a warning5973 when the column does not exist5974 allows the attribute to be added and issues a warning5975 when other execeptions are raised5976 logs and re-rasises the error5977 when in production5978 defines a SHA attribute5979Uploads routing5980 allows creating uploads for personal snippets5981 allows creating uploads for users5982 does not allow creating uploads for other models5983Gitlab::Metrics::SidekiqMiddleware5984 #call5985 tracks the transaction5986 tracks the transaction (for messages without `enqueued_at`)5987 tracks any raised exceptions5988JsRegexValidator5989 #validates_each5990 user_default_internal_regex: nil, result: []5991 generates correct errors5992 user_default_internal_regex: "", result: []5993 generates correct errors5994 user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]5995 generates correct errors5996 user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]5997 generates correct errors5998Gitlab::Ci::Config::Entry::Artifacts5999 validation6000 when entry config value is correct6001 #value6002 returns artifacts configuration6003 #valid?6004 is valid6005 when value includes 'reports' keyword6006 returns general artifact and report-type artifacts configuration6007 when entry value is not correct6008 #errors6009 when value of attribute is invalid6010 reports error6011 when there is an unknown key present6012 reports error6013 when 'reports' keyword is not hash6014 reports error6015Gitlab::GithubImport::Importer::IssuesImporter6016 #parallel?6017 returns true when running in parallel mode6018 returns false when running in sequential mode6019 #execute6020 when running in parallel mode6021 imports issues in parallel6022 when running in sequential mode6023 imports issues in sequence6024 #sequential_import6025 imports each issue in sequence6026 #parallel_import6027 imports each issue in parallel6028 #id_for_already_imported_cache6029 returns the issue number of the given issue6030RuboCop::Cop::Graphql::AuthorizeTypes6031 when in a type folder6032 adds an offense when there is no authorize call6033 does not add an offense for classes that have an authorize call6034 does not add an offense for classes that only have an authorize call6035 does not add an offense for base types6036Bitbucket::Representation::PullRequestComment6037 #iid6038 should eq 16039 #file_path6040 should eq "/path"6041 #old_pos6042 should eq 36043 #new_pos6044 should eq 36045 #parent_id6046 should eq 26047 should be nil6048 #inline?6049 should be truthy6050 should be falsey6051 #has_parent?6052 should be truthy6053 should be falsey6054Gitlab::CycleAnalytics::ProductionStage6055 behaves like base stage6056 has the median data value6057 has the median data stage6058 has the median data description6059 has the title6060 has the events6061Gitlab::Git::Conflict::File6062 #lines6063 when the content contains non-UTF-8 characters6064 raises UnsupportedEncoding6065 when the content can be converted to UTF-86066 sets lines to the lines6067 sets the type to text6068 #content6069 when the content contains non-UTF-8 characters6070 raises UnsupportedEncoding6071 when the content can be converted to UTF-86072 returns a valid UTF-8 string6073Gitlab::SidekiqSignals6074 .install6075 not a process group leader6076 does nothing6077 as a process group leader6078 installs its own signal handlers for TERM and INT only6079 installs a forwarding signal handler for INT6080 raises if sidekiq no longer traps SIGINT6081 installs a forwarding signal handler for TERM6082 raises if sidekiq no longer traps SIGTERM6083MergeRequest6084 should expose permissions using Types::PermissionTypes::MergeRequest6085 should require graphql authorizations :read_merge_request6086 should include Noteable6087 has the expected fields6088Gitlab::ZoomLinkExtractor6089 #links6090 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6091 should eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6092 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]6093 should eq ["https://zoom.us/j/1123433"]6094 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]6095 should eq ["https://zoom.us/my/1123433"]6096 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]6097 should eq ["https://gitlab.zoom.us/s/1123433"]6098 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]6099 should eq ["https://gitlab.zoom.us/j/1123433"]6100 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]6101 should eq ["https://gitlab.zoom.us/my/1123433"]6102 #match?6103 is true when a zoom link found6104 is false when no zoom link found6105Gitlab::Ci::Pipeline::Duration6106 test sample A6107 behaves like calculating duration6108 should eq 46109 test sample B6110 behaves like calculating duration6111 should eq 46112 test sample C6113 behaves like calculating duration6114 should eq 86115 test sample D6116 behaves like calculating duration6117 should eq 46118 test sample E6119 behaves like calculating duration6120 should eq 76121 test sample F6122 behaves like calculating duration6123 should eq 66124 test sample G6125 behaves like calculating duration6126 should eq 46127Gitlab::QueryLimiting::ActiveSupportSubscriber6128 #sql6129 increments the number of executed SQL queries6130 when the query is actually a rails cache hit6131 does not increment the number of executed SQL queries6132BlameHelper6133 #get_age_map_start_date6134 returns the earliest date from a blame group6135 returns the earliest date from a project6136 #age_map_class6137 returns blame-commit-age-9 when oldest6138 returns blame-commit-age-0 class when newest6139 when called on the same day as project creation6140 returns blame-commit-age-0 class6141Gitlab::GithubImport::Representation::User6142 .from_api_response6143 behaves like a User6144 returns an instance of User6145 the returned User6146 includes the user ID6147 includes the username6148 .from_json_hash6149 behaves like a User6150 returns an instance of User6151 the returned User6152 includes the user ID6153 includes the username6154Backup::Uploads6155 #initialize6156 uses the correct upload dir6157Gitlab::ReferenceCounter6158 increases and set the expire time of a reference count for a path6159 decreases the reference count for a path6160 warns if attempting to decrease a counter with a value of one or less, and resets the counter6161 get the reference count for a path6162Gitlab::Sherlock::LineSample6163 #duration6164 returns the duration6165 #events6166 returns the amount of events6167 #percentage_of6168 returns the percentage of 1500.06169 #majority_of6170 returns true if the sample takes up the majority of the given duration6171 returns false if the sample doesn't take up the majority of the given duration6172Issue6173 should expose permissions using Types::PermissionTypes::Issue6174 should eq "Issue"6175 should require graphql authorizations :read_issue6176 should include Noteable6177 has specific fields6178Gitlab::Ci::Status::Failed6179 #text6180 should eq "failed"6181 #label6182 should eq "failed"6183 #icon6184 should eq "status_failed"6185 #favicon6186 should eq "favicon_status_failed"6187 #group6188 should eq "failed"6189Gitlab::Lazy6190 when not calling any methods6191 does not call the supplied block6192 when calling a method on the object6193 lazy loads the value returned by the block6194 #respond_to?6195 returns true for a method defined on the wrapped object6196 returns false for a method not defined on the wrapped object6197Gitlab::Git::Patches::Collection6198 #size6199 combines the size of the patches6200 #valid_size?6201 is not valid if the total size is bigger than 2MB6202Gitlab::PhabricatorImport::Conduit::Maniphest6203 #tasks6204 calls the api with the correct params6205 returns a parsed response6206NamespaceBasicEntity6207 #as_json6208 includes required fields6209Gitlab::SidekiqMiddleware::CorrelationInjector6210 injects into payload the correlation id6211Gitlab::NamespacedSessionStore6212 current session6213 stores data under the specified key6214 retrieves data from the given key6215 passed in session6216 retrieves data from the given key6217ObjectStoreSettings6218 .parse6219 sets correct default values6220 respects original values6221Gitlab::Git::Util6222 #count_lines6223 counts 0 lines in ""6224 counts 1 lines in "foo"6225 counts 1 lines in "foo\n"6226 counts 2 lines in "foo\n\n"6227Banzai::FilterArray6228 #insert_after6229 inserts an element after a provided element6230 inserts an element at the end when the provided element does not exist6231 #insert_before6232 inserts an element before a provided element6233 inserts an element at the beginning when the provided element does not exist6234Types::Ci::DetailedStatusType6235 should eq "DetailedStatus"6236 has all fields6237Gitlab::ContentSecurityPolicy::ConfigLoader6238 .default_settings_hash6239 returns empty defaults6240 #load6241 sets the policy properly6242 ignores malformed policy statements6243Label6244 has the correct fields6245 should require graphql authorizations :read_label6246Metadata6247 should eq "Metadata"6248 should require graphql authorizations :read_instance_metadata6249TodosDestroyer::PrivateFeaturesWorker6250 calls the Todos::Destroy::PrivateFeaturesService with the params it was given6251GitHelper6252 #short_sha6253 should eq "d4e043f6"6254SystemHookPushWorker6255 #perform6256 executes SystemHooksService with expected values6257TodosDestroyer::ProjectPrivateWorker6258 calls the Todos::Destroy::ProjectPrivateService with the params it was given6259Gitlab::Kubernetes::Role6260 #generate6261 should eq #<Kubeclient::Resource metadata={:name=>"example-name", :namespace=>"example-namespace"}, rules=[{:ap...>["hello.world"], :resources=>["oil", "diamonds", "coffee"], :verbs=>["say", "do", "walk", "run"]}]>6262Gitlab::InsecureKeyFingerprint6263 #fingerprint6264 generates the key's fingerprint6265Resolvers::MetadataResolver6266 #resolve6267 returns version and revision6268Knapsack report was generated. Preview:6269{6270 "spec/models/repository_spec.rb": 87.43829298019409,6271 "spec/lib/gitlab/git_access_spec.rb": 72.11288905143738,6272 "spec/workers/gitlab_usage_ping_worker_spec.rb": 52.94634413719177,6273 "spec/policies/group_policy_spec.rb": 38.941401958465576,6274 "spec/lib/gitlab/ci/trace_spec.rb": 28.118202209472656,6275 "spec/services/merge_requests/rebase_service_spec.rb": 22.599660396575928,6276 "spec/services/ci/retry_pipeline_service_spec.rb": 17.45201587677002,6277 "spec/services/boards/lists/move_service_spec.rb": 14.806630849838257,6278 "spec/services/projects/destroy_service_spec.rb": 12.441655158996582,6279 "spec/presenters/project_presenter_spec.rb": 10.659677982330322,6280 "spec/models/project_services/hipchat_service_spec.rb": 11.132362842559814,6281 "spec/lib/gitlab/import_export/fork_spec.rb": 13.607122421264648,6282 "spec/uploaders/attachment_uploader_spec.rb": 9.794137954711914,6283 "spec/serializers/pipeline_entity_spec.rb": 8.073270559310913,6284 "spec/models/pages_domain_acme_order_spec.rb": 7.771057844161987,6285 "spec/uploaders/avatar_uploader_spec.rb": 4.878806829452515,6286 "spec/models/members/group_member_spec.rb": 6.083680629730225,6287 "spec/models/service_spec.rb": 5.460310220718384,6288 "spec/lib/gitlab/auth/o_auth/user_spec.rb": 4.770694971084595,6289 "spec/services/issuable/common_system_notes_service_spec.rb": 5.093952655792236,6290 "spec/services/merge_requests/assign_issues_service_spec.rb": 5.031677484512329,6291 "spec/policies/ci/trigger_policy_spec.rb": 4.47234034538269,6292 "spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb": 4.566076278686523,6293 "spec/services/lfs/file_transformer_spec.rb": 4.6288158893585205,6294 "spec/lib/banzai/filter/project_reference_filter_spec.rb": 3.7858526706695557,6295 "spec/services/merge_requests/post_merge_service_spec.rb": 3.8300318717956543,6296 "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 4.133234024047852,6297 "spec/models/commit_collection_spec.rb": 3.407386302947998,6298 "spec/models/diff_viewer/base_spec.rb": 3.5873401165008545,6299 "spec/lib/gitlab/blob_helper_spec.rb": 3.1541106700897217,6300 "spec/models/hooks/system_hook_spec.rb": 2.5023856163024902,6301 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb": 2.3839194774627686,6302 "spec/services/notes/build_service_spec.rb": 2.7435951232910156,6303 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 2.8736555576324463,6304 "spec/services/projects/auto_devops/disable_service_spec.rb": 3.073636293411255,6305 "spec/services/ci/destroy_pipeline_service_spec.rb": 2.640477180480957,6306 "spec/models/clusters/clusters_hierarchy_spec.rb": 2.621840476989746,6307 "spec/views/projects/commit/_commit_box.html.haml_spec.rb": 2.5100321769714355,6308 "spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb": 2.201566696166992,6309 "spec/workers/ci/archive_traces_cron_worker_spec.rb": 2.1977317333221436,6310 "spec/models/concerns/group_descendant_spec.rb": 2.417581081390381,6311 "spec/workers/project_cache_worker_spec.rb": 1.8639967441558838,6312 "spec/serializers/project_note_entity_spec.rb": 2.2654175758361816,6313 "spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb": 2.427114486694336,6314 "spec/services/users/build_service_spec.rb": 2.2373828887939453,6315 "spec/lib/banzai/object_renderer_spec.rb": 1.6643083095550537,6316 "spec/views/projects/merge_requests/diffs/_diffs.html.haml_spec.rb": 1.2133238315582275,6317 "spec/presenters/ci/variable_presenter_spec.rb": 1.3114292621612549,6318 "spec/models/concerns/has_environment_scope_spec.rb": 1.6864604949951172,6319 "spec/config/mail_room_spec.rb": 2.022382974624634,6320 "spec/lib/gitlab/github_import/importer/issue_importer_spec.rb": 1.5973262786865234,6321 "spec/services/clusters/create_service_spec.rb": 1.313185453414917,6322 "spec/workers/deployments/finished_worker_spec.rb": 1.202883005142212,6323 "spec/services/groups/nested_create_service_spec.rb": 1.2249345779418945,6324 "spec/lib/gitlab/ci/trace/stream_spec.rb": 1.4692871570587158,6325 "spec/services/projects/move_deploy_keys_projects_service_spec.rb": 1.778961420059204,6326 "spec/lib/gitlab/ci/pipeline/chain/command_spec.rb": 1.6257967948913574,6327 "spec/models/project_services/chat_notification_service_spec.rb": 1.2745602130889893,6328 "spec/lib/gitlab/data_builder/deployment_spec.rb": 1.2739098072052002,6329 "spec/tasks/gitlab/update_templates_rake_spec.rb": 14.397372245788574,6330 "spec/lib/gitlab/metrics/dashboard/processor_spec.rb": 1.2566473484039307,6331 "spec/finders/members_finder_spec.rb": 1.2493371963500977,6332 "spec/lib/gitlab/diff/position_tracer_spec.rb": 1.1409687995910645,6333 "spec/lib/gitlab/phabricator_import/base_worker_spec.rb": 1.2524733543395996,6334 "spec/validators/sha_validator_spec.rb": 1.246375322341919,6335 "spec/workers/issue_due_scheduler_worker_spec.rb": 0.7395482063293457,6336 "spec/lib/gitlab/job_waiter_spec.rb": 1.028106927871704,6337 "spec/models/concerns/protected_ref_access_spec.rb": 0.9395556449890137,6338 "spec/workers/repository_remove_remote_worker_spec.rb": 0.6085288524627686,6339 "spec/policies/ci/pipeline_schedule_policy_spec.rb": 0.9665050506591797,6340 "spec/lib/gitlab/import_export/uploads_saver_spec.rb": 0.6546015739440918,6341 "spec/views/shared/milestones/_top.html.haml_spec.rb": 0.753516435623169,6342 "spec/lib/gitlab/background_migration/migrate_build_stage_spec.rb": 1.0151760578155518,6343 "spec/migrations/cleanup_build_stage_migration_spec.rb": 0.6448774337768555,6344 "spec/lib/gitlab/data_builder/wiki_page_spec.rb": 0.6402547359466553,6345 "spec/services/delete_branch_service_spec.rb": 0.765789270401001,6346 "spec/workers/reactive_caching_worker_spec.rb": 0.45566582679748535,6347 "spec/workers/build_coverage_worker_spec.rb": 0.43064069747924805,6348 "spec/models/ci/build_metadata_spec.rb": 0.8125848770141602,6349 "spec/models/project_services/campfire_service_spec.rb": 0.7848167419433594,6350 "spec/lib/gitlab/ci/status/build/canceled_spec.rb": 0.5882248878479004,6351 "spec/lib/gitlab/ci/status/build/erased_spec.rb": 0.8270840644836426,6352 "spec/serializers/project_mirror_entity_spec.rb": 0.3525571823120117,6353 "spec/workers/ci/build_prepare_worker_spec.rb": 0.2907423973083496,6354 "spec/serializers/merge_request_for_pipeline_entity_spec.rb": 0.6714050769805908,6355 "spec/serializers/merge_request_widget_commit_entity_spec.rb": 0.6799681186676025,6356 "spec/serializers/user_entity_spec.rb": 0.2222898006439209,6357 "spec/serializers/analytics_build_serializer_spec.rb": 0.2569587230682373,6358 "spec/helpers/user_callouts_helper_spec.rb": 0.6429100036621094,6359 "spec/services/import_export_clean_up_service_spec.rb": 0.5924906730651855,6360 "spec/models/project_authorization_spec.rb": 0.5448331832885742,6361 "spec/lib/gitlab/phabricator_import/importer_spec.rb": 0.8218581676483154,6362 "spec/models/spam_log_spec.rb": 0.4323296546936035,6363 "spec/policies/application_setting/term_policy_spec.rb": 0.4877903461456299,6364 "spec/lib/gitlab/json_cache_spec.rb": 0.224196195602417,6365 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.42383766174316406,6366 "spec/lib/gitlab/allowable_spec.rb": 0.3713724613189697,6367 "spec/models/uploads/local_spec.rb": 0.3381924629211426,6368 "spec/services/update_snippet_service_spec.rb": 0.4087486267089844,6369 "spec/presenters/ci/trigger_presenter_spec.rb": 0.34004926681518555,6370 "spec/lib/gitlab/external_authorization/client_spec.rb": 0.3010847568511963,6371 "spec/models/system_note_metadata_spec.rb": 0.5730922222137451,6372 "spec/workers/project_daily_statistics_worker_spec.rb": 0.37717509269714355,6373 "spec/lib/gitlab/phabricator_import/import_tasks_worker_spec.rb": 0.2662465572357178,6374 "spec/models/import_export_upload_spec.rb": 0.331021785736084,6375 "spec/models/deploy_key_spec.rb": 0.31274938583374023,6376 "spec/uploaders/lfs_object_uploader_spec.rb": 0.2068014144897461,6377 "spec/services/projects/protect_default_branch_service_spec.rb": 0.10370349884033203,6378 "spec/finders/admin/runners_finder_spec.rb": 0.1640164852142334,6379 "spec/lib/gitlab/auth/blocked_user_tracker_spec.rb": 0.0988614559173584,6380 "spec/lib/gitlab/gitlab_import/importer_spec.rb": 0.5349793434143066,6381 "spec/helpers/boards_helper_spec.rb": 0.24204182624816895,6382 "spec/lib/gitlab/verify/lfs_objects_spec.rb": 0.21961498260498047,6383 "spec/workers/wait_for_cluster_creation_worker_spec.rb": 0.1655135154724121,6384 "spec/workers/pipeline_hooks_worker_spec.rb": 0.2067406177520752,6385 "spec/models/ci/artifact_blob_spec.rb": 0.1333153247833252,6386 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 0.18532705307006836,6387 "spec/models/instance_configuration_spec.rb": 0.22259807586669922,6388 "spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb": 0.179443359375,6389 "spec/lib/gitlab/external_authorization/access_spec.rb": 0.14543819427490234,6390 "spec/views/devise/shared/_signin_box.html.haml_spec.rb": 0.12499117851257324,6391 "spec/lib/gitlab/prometheus/additional_metrics_parser_spec.rb": 0.09474372863769531,6392 "spec/lib/gitlab/git/hook_env_spec.rb": 0.11306238174438477,6393 "spec/workers/pages_domain_verification_cron_worker_spec.rb": 0.10504603385925293,6394 "spec/lib/gitlab/ci/config/entry/root_spec.rb": 0.1282968521118164,6395 "spec/tasks/gitlab/workhorse_rake_spec.rb": 0.16099929809570312,6396 "spec/workers/expire_job_cache_worker_spec.rb": 0.10174083709716797,6397 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.061112165451049805,6398 "spec/helpers/sorting_helper_spec.rb": 0.08679485321044922,6399 "spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb": 0.07999897003173828,6400 "spec/services/task_list_toggle_service_spec.rb": 0.04936695098876953,6401 "spec/workers/pages_domain_verification_worker_spec.rb": 0.14218878746032715,6402 "spec/services/projects/forks_count_service_spec.rb": 0.0557551383972168,6403 "spec/lib/gitlab/sql/recursive_cte_spec.rb": 0.05391955375671387,6404 "spec/workers/authorized_projects_worker_spec.rb": 0.055286407470703125,6405 "spec/lib/microsoft_teams/notifier_spec.rb": 0.03755640983581543,6406 "spec/lib/gitlab/ci/config/entry/service_spec.rb": 0.05310320854187012,6407 "spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb": 0.0490567684173584,6408 "spec/graphql/resolvers/group_resolver_spec.rb": 0.03434634208679199,6409 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 0.03412485122680664,6410 "spec/helpers/broadcast_messages_helper_spec.rb": 0.039276838302612305,6411 "spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb": 0.08542203903198242,6412 "spec/bin/changelog_spec.rb": 0.021081924438476562,6413 "spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb": 0.2913703918457031,6414 "spec/lib/gitlab/external_authorization/cache_spec.rb": 0.0325465202331543,6415 "spec/lib/gitlab/kubernetes_spec.rb": 0.039992570877075195,6416 "spec/lib/gitlab/untrusted_regexp_spec.rb": 0.027618408203125,6417 "spec/lib/gitlab/import_export/model_configuration_spec.rb": 0.024239540100097656,6418 "spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb": 0.03060126304626465,6419 "spec/lib/gitlab/cache/request_cache_spec.rb": 0.029184818267822266,6420 "spec/lib/gitlab/ci/config/external/file/base_spec.rb": 0.027461528778076172,6421 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 0.02703094482421875,6422 "spec/models/concerns/sha_attribute_spec.rb": 0.02198171615600586,6423 "spec/routing/uploads_routing_spec.rb": 0.032674312591552734,6424 "spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb": 0.020055532455444336,6425 "spec/validators/js_regex_validator_spec.rb": 0.01785588264465332,6426 "spec/lib/gitlab/ci/config/entry/artifacts_spec.rb": 0.014672517776489258,6427 "spec/lib/gitlab/github_import/importer/issues_importer_spec.rb": 0.015066146850585938,6428 "spec/rubocop/cop/graphql/authorize_types_spec.rb": 0.016384601593017578,6429 "spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 0.012727022171020508,6430 "spec/lib/gitlab/cycle_analytics/production_stage_spec.rb": 0.012303829193115234,6431 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.00722956657409668,6432 "spec/lib/gitlab/sidekiq_signals_spec.rb": 0.010827779769897461,6433 "spec/graphql/types/merge_request_type_spec.rb": 0.007100343704223633,6434 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 0.011202335357666016,6435 "spec/lib/gitlab/ci/pipeline/duration_spec.rb": 0.010061025619506836,6436 "spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb": 0.008024215698242188,6437 "spec/helpers/blame_helper_spec.rb": 0.01108098030090332,6438 "spec/lib/gitlab/github_import/representation/user_spec.rb": 0.007979869842529297,6439 "spec/lib/backup/uploads_spec.rb": 0.002405881881713867,6440 "spec/lib/gitlab/reference_counter_spec.rb": 0.007714509963989258,6441 "spec/lib/gitlab/sherlock/line_sample_spec.rb": 0.006711006164550781,6442 "spec/graphql/types/issue_type_spec.rb": 0.007512331008911133,6443 "spec/lib/gitlab/ci/status/failed_spec.rb": 0.007172822952270508,6444 "spec/lib/gitlab/lazy_spec.rb": 0.0060994625091552734,6445 "spec/lib/gitlab/git/patches/collection_spec.rb": 0.005326509475708008,6446 "spec/lib/gitlab/phabricator_import/conduit/maniphest_spec.rb": 0.005029439926147461,6447 "spec/serializers/namespace_basic_entity_spec.rb": 0.006028890609741211,6448 "spec/lib/gitlab/sidekiq_middleware/correlation_injector_spec.rb": 0.012357473373413086,6449 "spec/lib/gitlab/namespaced_session_store_spec.rb": 0.005778074264526367,6450 "spec/config/object_store_settings_spec.rb": 0.00677037239074707,6451 "spec/lib/gitlab/git/util_spec.rb": 0.007289886474609375,6452 "spec/lib/banzai/filter_array_spec.rb": 0.007702350616455078,6453 "spec/graphql/types/ci/detailed_status_type_spec.rb": 0.004268646240234375,6454 "spec/lib/gitlab/content_security_policy/config_loader_spec.rb": 0.0060389041900634766,6455 "spec/graphql/types/label_type_spec.rb": 0.004220485687255859,6456 "spec/graphql/types/metadata_type_spec.rb": 0.003869771957397461,6457 "spec/workers/todos_destroyer/private_features_worker_spec.rb": 0.0025408267974853516,6458 "spec/helpers/git_helper_spec.rb": 0.002753734588623047,6459 "spec/workers/system_hook_push_worker_spec.rb": 0.002517223358154297,6460 "spec/workers/todos_destroyer/project_private_worker_spec.rb": 0.002457857131958008,6461 "spec/lib/gitlab/kubernetes/role_spec.rb": 0.0026748180389404297,6462 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.002118349075317383,6463 "spec/graphql/resolvers/metadata_resolver_spec.rb": 0.037716388702392586464}6465Knapsack global time execution for tests: 09m 41s6466Pending: (Failures listed here are expected and do not affect your suite's status)6467 1) AttachmentUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 6468 # No pattern provided, skipping.6469 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86470 2) AttachmentUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 6471 # No pattern provided, skipping.6472 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86473 3) AttachmentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6474 # No pattern provided, skipping.6475 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86476 4) AttachmentUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6477 # No pattern provided, skipping.6478 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86479 5) AttachmentUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6480 # No pattern provided, skipping.6481 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86482 6) AttachmentUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6483 # No pattern provided, skipping.6484 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86485 7) AttachmentUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6486 # No pattern provided, skipping.6487 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86488 8) AvatarUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 6489 # No pattern provided, skipping.6490 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86491 9) AvatarUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 6492 # No pattern provided, skipping.6493 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86494 10) AvatarUploader behaves like builds correct paths #relative_path is relative6495 # Path not set, skipping.6496 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396497 11) AvatarUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6498 # No pattern provided, skipping.6499 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86500 12) AvatarUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6501 # No pattern provided, skipping.6502 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86503 13) AvatarUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6504 # No pattern provided, skipping.6505 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86506 14) AvatarUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative6507 # Path not set, skipping.6508 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396509 15) AvatarUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6510 # No pattern provided, skipping.6511 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86512 16) AvatarUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6513 # No pattern provided, skipping.6514 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86515 17) Gitlab::BackgroundMigration::MigrateBuildStage recovers from unique constraint violation only twice6516 # around hook at ./spec/spec_helper.rb:151 did not execute the example6517 # ./spec/lib/gitlab/background_migration/migrate_build_stage_spec.rb:566518 18) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 6519 # No pattern provided, skipping.6520 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86521 19) LfsObjectUploader behaves like builds correct paths #relative_path is relative6522 # Path not set, skipping.6523 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396524 20) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 6525 # No pattern provided, skipping.6526 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86527 21) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6528 # No pattern provided, skipping.6529 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86530 22) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6531 # No pattern provided, skipping.6532 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86533 23) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6534 # No pattern provided, skipping.6535 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86536 24) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 6537 # No pattern provided, skipping.6538 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86539 25) LfsObjectUploader object store is REMOTE behaves like builds correct paths #relative_path is relative6540 # Path not set, skipping.6541 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396542 26) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6543 # No pattern provided, skipping.6544 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86545 27) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6546 # No pattern provided, skipping.6547 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86548Finished in 11 minutes 24 seconds (files took 29.03 seconds to load)65492349 examples, 0 failures, 27 pending6550$ date6551Fri Aug 23 08:12:38 UTC 20196553$ date6554Fri Aug 23 08:12:40 UTC 20196557coverage/: found 5 matching files 6558knapsack/: found 4 matching files 6559rspec_flaky/: found 4 matching files 6560rspec_profiling/: found 1 matching files 6561WARNING: tmp/capybara/: no matching files 6562tmp/memory_test/: found 2 matching files 6563Uploading artifacts to coordinator... ok id=278546243 responseStatus=201 Created token=WMdsSWo86564Uploading artifacts...6565junit_rspec.xml: found 1 matching files 6566Uploading artifacts to coordinator... ok id=278546243 responseStatus=201 Created token=WMdsSWo86567Job succeeded