rspec unit pg 7/20
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 12.1.0 (de7731dd)2 on docker-auto-scale-com 1d6b581d 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:15
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-1d6b581d-project-278964-concurrent-0 via runner-1d6b581d-gsrm-1566544948-ccc3fb33...
00:01
15Reinitialized existing Git repository in /builds/gitlab-org/gitlab-ee/.git/17 5c1b8d03..4447c081 master -> origin/master18Checking out 4447c081 as master...19Removing .gitlab_shell_secret20Removing .gitlab_workhorse_secret21Removing builds/2019_08/22Removing config/database.yml23Removing config/database_geo.yml24Removing config/gitlab.yml25Removing config/redis.cache.yml26Removing config/redis.queues.yml27Removing config/redis.shared_state.yml28Removing config/resque.yml29Removing config/secrets.yml30Removing log/api_json.log31Removing log/application.log32Removing log/gitaly-test.log33Removing log/grpc.log34Removing log/test_json.log35Removing tmp/cache/36Removing tmp/tests/37Removing vendor/gitaly-ruby/38Removing vendor/ruby/39Skipping Git submodules setup41Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 42Successfully extracted cache44Downloading artifacts from coordinator... ok id=278682829 responseStatus=200 OK token=GD3tnYdc45Downloading artifacts for setup-test-env (278682830)...46Downloading artifacts from coordinator... ok id=278682830 responseStatus=200 OK token=M-vJJYAX47WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 48Downloading artifacts for retrieve-tests-metadata (278682832)...49Downloading artifacts from coordinator... ok id=278682832 responseStatus=200 OK token=Nc9UNA_251Fri Aug 23 10:41:40 UTC 201952$ source scripts/utils.sh53$ source scripts/prepare_build.sh54Bundler version 1.17.255Warning: 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`.56The Gemfile's dependencies are satisfied57Successfully installed knapsack-1.17.2581 gem installed59CREATE ROLE60GRANT61Dropped database 'gitlabhq_test'62Created database 'gitlabhq_test'63-- enable_extension("pg_trgm")64 -> 0.0392s65-- enable_extension("plpgsql")66 -> 0.0029s67-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})68 -> 0.0090s69-- create_table("allowed_email_domains", {:force=>:cascade})70 -> 0.0064s71-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})72 -> 0.0165s73-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})74 -> 0.0163s75-- create_table("appearances", {:id=>:serial, :force=>:cascade})76 -> 0.0040s77-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})78 -> 0.0026s79-- create_table("application_settings", {:id=>:serial, :force=>:cascade})80 -> 0.0928s81-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})82 -> 0.0071s83-- create_table("approval_merge_request_rules", {:force=>:cascade})84 -> 0.0140s85-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})86 -> 0.0066s87-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})88 -> 0.0066s89-- create_table("approval_merge_request_rules_users", {:force=>:cascade})90 -> 0.0064s91-- create_table("approval_project_rules", {:force=>:cascade})92 -> 0.0080s93-- create_table("approval_project_rules_groups", {:force=>:cascade})94 -> 0.0064s95-- create_table("approval_project_rules_users", {:force=>:cascade})96 -> 0.0063s97-- create_table("approvals", {:id=>:serial, :force=>:cascade})98 -> 0.0066s99-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})100 -> 0.0070s101-- create_table("approvers", {:id=>:serial, :force=>:cascade})102 -> 0.0072s103-- create_table("audit_events", {:id=>:serial, :force=>:cascade})104 -> 0.0076s105-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})106 -> 0.0073s107-- create_table("badges", {:id=>:serial, :force=>:cascade})108 -> 0.0070s109-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})110 -> 0.0066s111-- create_table("board_group_recent_visits", {:force=>:cascade})112 -> 0.0108s113-- create_table("board_labels", {:id=>:serial, :force=>:cascade})114 -> 0.0064s115-- create_table("board_project_recent_visits", {:force=>:cascade})116 -> 0.0108s117-- create_table("boards", {:id=>:serial, :force=>:cascade})118 -> 0.0096s119-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})120 -> 0.0052s121-- create_table("chat_names", {:id=>:serial, :force=>:cascade})122 -> 0.0071s123-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})124 -> 0.0048s125-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})126 -> 0.0048s127-- create_table("ci_build_trace_chunks", {:force=>:cascade})128 -> 0.0050s129-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})130 -> 0.0051s131-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})132 -> 0.0088s133-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})134 -> 0.0537s135-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})136 -> 0.0076s137-- create_table("ci_builds_runner_session", {:force=>:cascade})138 -> 0.0051s139-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})140 -> 0.0065s141-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})142 -> 0.0115s143-- create_table("ci_job_variables", {:force=>:cascade})144 -> 0.0075s145-- create_table("ci_pipeline_chat_data", {:force=>:cascade})146 -> 0.0070s147-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})148 -> 0.0055s149-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})150 -> 0.0098s151-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})152 -> 0.0056s153-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})154 -> 0.0332s155-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})156 -> 0.0065s157-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})158 -> 0.0065s159-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})160 -> 0.0179s161-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})162 -> 0.0128s163-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})164 -> 0.0114s165-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})166 -> 0.0074s167-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})168 -> 0.0070s169-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})170 -> 0.0069s171-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})172 -> 0.0063s173-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})174 -> 0.0054s175-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})176 -> 0.0065s177-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})178 -> 0.0057s179-- create_table("clusters", {:id=>:serial, :force=>:cascade})180 -> 0.0093s181-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})182 -> 0.0052s183-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})184 -> 0.0052s185-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})186 -> 0.0053s187-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})188 -> 0.0072s189-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})190 -> 0.0050s191-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})192 -> 0.0051s193-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})194 -> 0.0077s195-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})196 -> 0.0161s197-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})198 -> 0.0075s199-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})200 -> 0.0075s201-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})202 -> 0.0052s203-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})204 -> 0.0052s205-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})206 -> 0.0049s207-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})208 -> 0.0086s209-- create_table("deployments", {:id=>:serial, :force=>:cascade})210 -> 0.0261s211-- create_table("design_management_designs", {:force=>:cascade})212 -> 0.0072s213-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})214 -> 0.0103s215-- create_table("design_management_versions", {:force=>:cascade})216 -> 0.0070s217-- create_table("draft_notes", {:force=>:cascade})218 -> 0.0099s219-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})220 -> 0.0033s221-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})222 -> 0.0035s223-- create_table("emails", {:id=>:serial, :force=>:cascade})224 -> 0.0092s225-- create_table("environments", {:id=>:serial, :force=>:cascade})226 -> 0.0119s227-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})228 -> 0.0067s229-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})230 -> 0.0043s231-- create_table("epics", {:id=>:serial, :force=>:cascade})232 -> 0.0229s233-- create_table("events", {:id=>:serial, :force=>:cascade})234 -> 0.0158s235-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})236 -> 0.0052s237-- create_table("features", {:id=>:serial, :force=>:cascade})238 -> 0.0049s239-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})240 -> 0.0083s241-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})242 -> 0.0047s243-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})244 -> 0.0042s245-- create_table("geo_cache_invalidation_events", {:force=>:cascade})246 -> 0.0025s247-- create_table("geo_container_repository_updated_events", {:force=>:cascade})248 -> 0.0042s249-- create_table("geo_event_log", {:force=>:cascade})250 -> 0.0302s251-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})252 -> 0.0049s253-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})254 -> 0.0051s255-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})256 -> 0.0060s257-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})258 -> 0.0049s259-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})260 -> 0.0090s261-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})262 -> 0.0065s263-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})264 -> 0.0131s265-- create_table("geo_repositories_changed_events", {:force=>:cascade})266 -> 0.0044s267-- create_table("geo_repository_created_events", {:force=>:cascade})268 -> 0.0050s269-- create_table("geo_repository_deleted_events", {:force=>:cascade})270 -> 0.0052s271-- create_table("geo_repository_renamed_events", {:force=>:cascade})272 -> 0.0056s273-- create_table("geo_repository_updated_events", {:force=>:cascade})274 -> 0.0082s275-- create_table("geo_reset_checksum_events", {:force=>:cascade})276 -> 0.0043s277-- create_table("geo_upload_deleted_events", {:force=>:cascade})278 -> 0.0050s279-- create_table("gitlab_subscriptions", {:force=>:cascade})280 -> 0.0078s281-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})282 -> 0.0093s283-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})284 -> 0.0095s285-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})286 -> 0.0140s287-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})288 -> 0.0072s289-- create_table("historical_data", {:id=>:serial, :force=>:cascade})290 -> 0.0025s291-- create_table("identities", {:id=>:serial, :force=>:cascade})292 -> 0.0095s293-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})294 -> 0.0075s295-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})296 -> 0.0050s297-- create_table("insights", {:id=>:serial, :force=>:cascade})298 -> 0.0064s299-- create_table("internal_ids", {:force=>:cascade})300 -> 0.0110s301-- create_table("ip_restrictions", {:force=>:cascade})302 -> 0.0048s303-- create_table("issue_assignees", {:id=>false, :force=>:cascade})304 -> 0.0053s305-- create_table("issue_links", {:id=>:serial, :force=>:cascade})306 -> 0.0085s307-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})308 -> 0.0045s309-- create_table("issue_tracker_data", {:force=>:cascade})310 -> 0.0051s311-- create_table("issues", {:id=>:serial, :force=>:cascade})312 -> 0.0395s313-- create_table("jira_connect_installations", {:force=>:cascade})314 -> 0.0053s315-- create_table("jira_connect_subscriptions", {:force=>:cascade})316 -> 0.0088s317-- create_table("jira_tracker_data", {:force=>:cascade})318 -> 0.0063s319-- create_table("keys", {:id=>:serial, :force=>:cascade})320 -> 0.0101s321-- create_table("label_links", {:id=>:serial, :force=>:cascade})322 -> 0.0069s323-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})324 -> 0.0085s325-- create_table("labels", {:id=>:serial, :force=>:cascade})326 -> 0.0141s327-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})328 -> 0.0028s329-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})330 -> 0.0075s331-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})332 -> 0.0071s333-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})334 -> 0.0064s335-- create_table("licenses", {:id=>:serial, :force=>:cascade})336 -> 0.0026s337-- create_table("lists", {:id=>:serial, :force=>:cascade})338 -> 0.0133s339-- create_table("members", {:id=>:serial, :force=>:cascade})340 -> 0.0167s341-- create_table("merge_request_assignees", {:force=>:cascade})342 -> 0.0086s343-- create_table("merge_request_blocks", {:force=>:cascade})344 -> 0.0066s345-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})346 -> 0.0061s347-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})348 -> 0.0042s349-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})350 -> 0.0073s351-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})352 -> 0.0177s353-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})354 -> 0.0552s355-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})356 -> 0.0065s357-- create_table("merge_trains", {:force=>:cascade})358 -> 0.0112s359-- create_table("milestones", {:id=>:serial, :force=>:cascade})360 -> 0.0170s361-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})362 -> 0.0039s363-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})364 -> 0.0068s365-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})366 -> 0.0052s367-- create_table("namespaces", {:id=>:serial, :force=>:cascade})368 -> 0.0538s369-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})370 -> 0.0053s371-- create_table("notes", {:id=>:serial, :force=>:cascade})372 -> 0.0278s373-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})374 -> 0.0110s375-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})376 -> 0.0052s377-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})378 -> 0.0094s379-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})380 -> 0.0086s381-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})382 -> 0.0050s383-- create_table("operations_feature_flag_scopes", {:force=>:cascade})384 -> 0.0089s385-- create_table("operations_feature_flags", {:force=>:cascade})386 -> 0.0055s387-- create_table("operations_feature_flags_clients", {:force=>:cascade})388 -> 0.0073s389-- create_table("packages_maven_metadata", {:force=>:cascade})390 -> 0.0051s391-- create_table("packages_package_files", {:force=>:cascade})392 -> 0.0052s393-- create_table("packages_packages", {:force=>:cascade})394 -> 0.0048s395-- create_table("pages_domain_acme_orders", {:force=>:cascade})396 -> 0.0072s397-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})398 -> 0.0187s399-- create_table("path_locks", {:id=>:serial, :force=>:cascade})400 -> 0.0093s401-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})402 -> 0.0087s403-- create_table("plans", {:id=>:serial, :force=>:cascade})404 -> 0.0053s405-- create_table("pool_repositories", {:force=>:cascade})406 -> 0.0093s407-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})408 -> 0.0049s409-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})410 -> 0.0020s411-- create_table("project_aliases", {:force=>:cascade})412 -> 0.0071s413-- create_table("project_authorizations", {:id=>false, :force=>:cascade})414 -> 0.0056s415-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})416 -> 0.0054s417-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})418 -> 0.0055s419-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})420 -> 0.0071s421-- create_table("project_daily_statistics", {:force=>:cascade})422 -> 0.0044s423-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})424 -> 0.0064s425-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})426 -> 0.0026s427-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})428 -> 0.0078s429-- create_table("project_features", {:id=>:serial, :force=>:cascade})430 -> 0.0054s431-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})432 -> 0.0070s433-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})434 -> 0.0048s435-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})436 -> 0.0033s437-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})438 -> 0.0577s439-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})440 -> 0.0199s441-- create_table("project_repositories", {:force=>:cascade})442 -> 0.0092s443-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})444 -> 0.0168s445-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})446 -> 0.0099s447-- create_table("project_tracing_settings", {:force=>:cascade})448 -> 0.0059s449-- create_table("projects", {:id=>:serial, :force=>:cascade})450 -> 0.0715s451-- create_table("prometheus_alert_events", {:force=>:cascade})452 -> 0.0073s453-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})454 -> 0.0088s455-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})456 -> 0.0122s457-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})458 -> 0.0100s459-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})460 -> 0.0098s461-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})462 -> 0.0102s463-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})464 -> 0.0056s465-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})466 -> 0.0095s467-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})468 -> 0.0071s469-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})470 -> 0.0092s471-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})472 -> 0.0072s473-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})474 -> 0.0040s475-- create_table("push_rules", {:id=>:serial, :force=>:cascade})476 -> 0.0096s477-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})478 -> 0.0071s479-- create_table("release_links", {:force=>:cascade})480 -> 0.0074s481-- create_table("releases", {:id=>:serial, :force=>:cascade})482 -> 0.0094s483-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})484 -> 0.0087s485-- create_table("repository_languages", {:id=>false, :force=>:cascade})486 -> 0.0034s487-- create_table("resource_label_events", {:force=>:cascade})488 -> 0.0134s489-- create_table("reviews", {:force=>:cascade})490 -> 0.0091s491-- create_table("routes", {:id=>:serial, :force=>:cascade})492 -> 0.0094s493-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})494 -> 0.0059s495-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})496 -> 0.0051s497-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})498 -> 0.0053s499-- create_table("services", {:id=>:serial, :force=>:cascade})500 -> 0.0172s501-- create_table("shards", {:id=>:serial, :force=>:cascade})502 -> 0.0047s503-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})504 -> 0.0073s505-- create_table("smartcard_identities", {:force=>:cascade})506 -> 0.0070s507-- create_table("snippets", {:id=>:serial, :force=>:cascade})508 -> 0.0165s509-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})510 -> 0.0079s511-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})512 -> 0.0049s513-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})514 -> 0.0039s515-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})516 -> 0.0077s517-- create_table("suggestions", {:force=>:cascade})518 -> 0.0068s519-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})520 -> 0.0049s521-- create_table("taggings", {:id=>:serial, :force=>:cascade})522 -> 0.0115s523-- create_table("tags", {:id=>:serial, :force=>:cascade})524 -> 0.0075s525-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})526 -> 0.0092s527-- create_table("timelogs", {:id=>:serial, :force=>:cascade})528 -> 0.0089s529-- create_table("todos", {:id=>:serial, :force=>:cascade})530 -> 0.0225s531-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})532 -> 0.0043s533-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})534 -> 0.0072s535-- create_table("uploads", {:id=>:serial, :force=>:cascade})536 -> 0.0116s537-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})538 -> 0.0058s539-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})540 -> 0.0066s541-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})542 -> 0.0073s543-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})544 -> 0.0054s545-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})546 -> 0.0067s547-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})548 -> 0.0054s549-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})550 -> 0.0061s551-- create_table("users", {:id=>:serial, :force=>:cascade})552 -> 0.0628s553-- create_table("users_ops_dashboard_projects", {:force=>:cascade})554 -> 0.0088s555-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})556 -> 0.0074s557-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})558 -> 0.0169s559-- create_table("vulnerability_identifiers", {:force=>:cascade})560 -> 0.0059s561-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})562 -> 0.0072s563-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})564 -> 0.0069s565-- create_table("vulnerability_occurrences", {:force=>:cascade})566 -> 0.0130s567-- create_table("vulnerability_scanners", {:force=>:cascade})568 -> 0.0071s569-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})570 -> 0.0080s571-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})572 -> 0.0132s573-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})574 -> 0.0035s575-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})576 -> 0.0024s577-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})578 -> 0.0015s579-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})580 -> 0.0016s581-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})582 -> 0.0017s583-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})584 -> 0.0013s585-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})586 -> 0.0033s587-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})588 -> 0.0034s589-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})590 -> 0.0028s591-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})592 -> 0.0027s593-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})594 -> 0.0037s595-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})596 -> 0.0021s597-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})598 -> 0.0015s599-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})600 -> 0.0029s601-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})602 -> 0.0017s603-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})604 -> 0.0017s605-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})606 -> 0.0015s607-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})608 -> 0.0015s609-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})610 -> 0.0017s611-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})612 -> 0.0017s613-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})614 -> 0.0018s615-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})616 -> 0.0015s617-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})618 -> 0.0016s619-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})620 -> 0.0023s621-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})622 -> 0.0018s623-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})624 -> 0.0018s625-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})626 -> 0.0018s627-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})628 -> 0.0017s629-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})630 -> 0.0018s631-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})632 -> 0.0017s633-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})634 -> 0.0017s635-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})636 -> 0.0016s637-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})638 -> 0.0015s639-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})640 -> 0.0018s641-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})642 -> 0.0015s643-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})644 -> 0.0015s645-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})646 -> 0.0016s647-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})648 -> 0.0020s649-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})650 -> 0.0020s651-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})652 -> 0.0017s653-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})654 -> 0.0018s655-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})656 -> 0.0019s657-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})658 -> 0.0033s659-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})660 -> 0.0018s661-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})662 -> 0.0023s663-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})664 -> 0.0017s665-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})666 -> 0.0015s667-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})668 -> 0.0020s669-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})670 -> 0.0025s671-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})672 -> 0.0018s673-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})674 -> 0.0016s675-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})676 -> 0.0019s677-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})678 -> 0.0023s679-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})680 -> 0.0016s681-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})682 -> 0.0018s683-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})684 -> 0.0016s685-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})686 -> 0.0017s687-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})688 -> 0.0022s689-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})690 -> 0.0019s691-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})692 -> 0.0016s693-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})694 -> 0.0017s695-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})696 -> 0.0015s697-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})698 -> 0.0016s699-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})700 -> 0.0019s701-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})702 -> 0.0017s703-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})704 -> 0.0018s705-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})706 -> 0.0014s707-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})708 -> 0.0014s709-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})710 -> 0.0017s711-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})712 -> 0.0019s713-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})714 -> 0.0018s715-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})716 -> 0.0016s717-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})718 -> 0.0021s719-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})720 -> 0.0018s721-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})722 -> 0.0014s723-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})724 -> 0.0014s725-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})726 -> 0.0017s727-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})728 -> 0.0017s729-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})730 -> 0.0015s731-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})732 -> 0.0017s733-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})734 -> 0.0016s735-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})736 -> 0.0017s737-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})738 -> 0.0016s739-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})740 -> 0.0019s741-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})742 -> 0.0018s743-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})744 -> 0.0015s745-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})746 -> 0.0015s747-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})748 -> 0.0015s749-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})750 -> 0.0019s751-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})752 -> 0.0018s753-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})754 -> 0.0018s755-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})756 -> 0.0015s757-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})758 -> 0.0015s759-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})760 -> 0.0015s761-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})762 -> 0.0017s763-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})764 -> 0.0030s765-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})766 -> 0.0024s767-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})768 -> 0.0019s769-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})770 -> 0.0018s771-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})772 -> 0.0016s773-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})774 -> 0.0018s775-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})776 -> 0.0016s777-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})778 -> 0.0018s779-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})780 -> 0.0021s781-- add_foreign_key("container_repositories", "projects")782 -> 0.0021s783-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})784 -> 0.0017s785-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})786 -> 0.0017s787-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})788 -> 0.0019s789-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})790 -> 0.0023s791-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})792 -> 0.0020s793-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})794 -> 0.0028s795-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})796 -> 0.0019s797-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})798 -> 0.0015s799-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})800 -> 0.0015s801-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})802 -> 0.0017s803-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})804 -> 0.0021s805-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})806 -> 0.0020s807-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})808 -> 0.0021s809-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})810 -> 0.0020s811-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})812 -> 0.0018s813-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})814 -> 0.0022s815-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})816 -> 0.0016s817-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})818 -> 0.0016s819-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})820 -> 0.0015s821-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})822 -> 0.0019s823-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})824 -> 0.0017s825-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})826 -> 0.0019s827-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})828 -> 0.0019s829-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})830 -> 0.0018s831-- add_foreign_key("events", "projects", {:on_delete=>:cascade})832 -> 0.0024s833-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})834 -> 0.0018s835-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})836 -> 0.0017s837-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})838 -> 0.0017s839-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})840 -> 0.0018s841-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})842 -> 0.0016s843-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})844 -> 0.0020s845-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})846 -> 0.0015s847-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})848 -> 0.0023s849-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})850 -> 0.0015s851-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})852 -> 0.0015s853-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})854 -> 0.0015s855-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})856 -> 0.0014s857-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})858 -> 0.0014s859-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})860 -> 0.0017s861-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})862 -> 0.0015s863-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})864 -> 0.0014s865-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})866 -> 0.0017s867-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})868 -> 0.0015s869-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})870 -> 0.0016s871-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})872 -> 0.0022s873-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})874 -> 0.0019s875-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})876 -> 0.0020s877-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})878 -> 0.0018s879-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})880 -> 0.0020s881-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})882 -> 0.0014s883-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})884 -> 0.0018s885-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})886 -> 0.0019s887-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})888 -> 0.0018s889-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})890 -> 0.0017s891-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})892 -> 0.0019s893-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})894 -> 0.0014s895-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})896 -> 0.0017s897-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})898 -> 0.0021s899-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})900 -> 0.0028s901-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})902 -> 0.0013s903-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})904 -> 0.0018s905-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})906 -> 0.0017s907-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})908 -> 0.0017s909-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})910 -> 0.0020s911-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})912 -> 0.0019s913-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})914 -> 0.0018s915-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})916 -> 0.0017s917-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})918 -> 0.0019s919-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})920 -> 0.0017s921-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})922 -> 0.0016s923-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})924 -> 0.0015s925-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})926 -> 0.0018s927-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})928 -> 0.0017s929-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})930 -> 0.0014s931-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})932 -> 0.0016s933-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})934 -> 0.0019s935-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})936 -> 0.0015s937-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})938 -> 0.0018s939-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})940 -> 0.0023s941-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})942 -> 0.0019s943-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})944 -> 0.0018s945-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})946 -> 0.0019s947-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})948 -> 0.0018s949-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})950 -> 0.0023s951-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})952 -> 0.0022s953-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})954 -> 0.0023s955-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})956 -> 0.0021s957-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})958 -> 0.0037s959-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})960 -> 0.0029s961-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})962 -> 0.0070s963-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})964 -> 0.0030s965-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})966 -> 0.0024s967-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})968 -> 0.0063s969-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})970 -> 0.0020s971-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})972 -> 0.0019s973-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})974 -> 0.0020s975-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})976 -> 0.0022s977-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})978 -> 0.0023s979-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})980 -> 0.0020s981-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})982 -> 0.0017s983-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})984 -> 0.0016s985-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})986 -> 0.0017s987-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})988 -> 0.0015s989-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})990 -> 0.0016s991-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})992 -> 0.0021s993-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})994 -> 0.0016s995-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})996 -> 0.0018s997-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})998 -> 0.0016s999-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1000 -> 0.0016s1001-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1002 -> 0.0015s1003-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1004 -> 0.0016s1005-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1006 -> 0.0023s1007-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1008 -> 0.0021s1009-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1010 -> 0.0019s1011-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1012 -> 0.0018s1013-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1014 -> 0.0020s1015-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1016 -> 0.0020s1017-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1018 -> 0.0019s1019-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1020 -> 0.0016s1021-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1022 -> 0.0018s1023-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1024 -> 0.0015s1025-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1026 -> 0.0018s1027-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1028 -> 0.0017s1029-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1030 -> 0.0017s1031-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1032 -> 0.0018s1033-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1034 -> 0.0017s1035-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1036 -> 0.0017s1037-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1038 -> 0.0018s1039-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1040 -> 0.0017s1041-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1042 -> 0.0017s1043-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1044 -> 0.0022s1045-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1046 -> 0.0020s1047-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1048 -> 0.0030s1049-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1050 -> 0.0022s1051-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1052 -> 0.0030s1053-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1054 -> 0.0020s1055-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1056 -> 0.0021s1057-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1058 -> 0.0024s1059-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1060 -> 0.0020s1061-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1062 -> 0.0015s1063-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1064 -> 0.0014s1065-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1066 -> 0.0026s1067-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1068 -> 0.0024s1069-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1070 -> 0.0021s1071-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1072 -> 0.0020s1073-- add_foreign_key("path_locks", "users")1074 -> 0.0018s1075-- add_foreign_key("personal_access_tokens", "users")1076 -> 0.0021s1077-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1078 -> 0.0020s1079-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1080 -> 0.0015s1081-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1082 -> 0.0020s1083-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1084 -> 0.0019s1085-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1086 -> 0.0018s1087-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1088 -> 0.0017s1089-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1090 -> 0.0021s1091-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1092 -> 0.0024s1093-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1094 -> 0.0020s1095-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1096 -> 0.0019s1097-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1098 -> 0.0016s1099-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1100 -> 0.0018s1101-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1102 -> 0.0020s1103-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1104 -> 0.0020s1105-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1106 -> 0.0020s1107-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1108 -> 0.0020s1109-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1110 -> 0.0020s1111-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1112 -> 0.0022s1113-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1114 -> 0.0026s1115-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1116 -> 0.0030s1117-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1118 -> 0.0026s1119-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1120 -> 0.0019s1121-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1122 -> 0.0032s1123-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1124 -> 0.0031s1125-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1126 -> 0.0026s1127-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1128 -> 0.0026s1129-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1130 -> 0.0026s1131-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1132 -> 0.0019s1133-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1134 -> 0.0019s1135-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1136 -> 0.0031s1137-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1138 -> 0.0021s1139-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1140 -> 0.0027s1141-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1142 -> 0.0026s1143-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1144 -> 0.0021s1145-- add_foreign_key("protected_branch_merge_access_levels", "users")1146 -> 0.0025s1147-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1148 -> 0.0024s1149-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1150 -> 0.0017s1151-- add_foreign_key("protected_branch_push_access_levels", "users")1152 -> 0.0024s1153-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1154 -> 0.0025s1155-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1156 -> 0.0017s1157-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1158 -> 0.0026s1159-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1160 -> 0.0030s1161-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1162 -> 0.0026s1163-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1164 -> 0.0033s1165-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1166 -> 0.0028s1167-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1168 -> 0.0028s1169-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1170 -> 0.0024s1171-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1172 -> 0.0022s1173-- add_foreign_key("protected_tag_create_access_levels", "users")1174 -> 0.0026s1175-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1176 -> 0.0027s1177-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1178 -> 0.0016s1179-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1180 -> 0.0023s1181-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1182 -> 0.0022s1183-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1184 -> 0.0021s1185-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1186 -> 0.0019s1187-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1188 -> 0.0021s1189-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1190 -> 0.0021s1191-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1192 -> 0.0019s1193-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1194 -> 0.0018s1195-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1196 -> 0.0015s1197-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1198 -> 0.0022s1199-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1200 -> 0.0039s1201-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1202 -> 0.0036s1203-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1204 -> 0.0025s1205-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1206 -> 0.0020s1207-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1208 -> 0.0019s1209-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1210 -> 0.0018s1211-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1212 -> 0.0032s1213-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1214 -> 0.0017s1215-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1216 -> 0.0021s1217-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1218 -> 0.0025s1219-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1220 -> 0.0025s1221-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1222 -> 0.0016s1223-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1224 -> 0.0024s1225-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1226 -> 0.0017s1227-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1228 -> 0.0016s1229-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1230 -> 0.0016s1231-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1232 -> 0.0020s1233-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1234 -> 0.0027s1235-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1236 -> 0.0019s1237-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1238 -> 0.0025s1239-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1240 -> 0.0026s1241-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1242 -> 0.0024s1243-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1244 -> 0.0020s1245-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1246 -> 0.0020s1247-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1248 -> 0.0025s1249-- add_foreign_key("u2f_registrations", "users")1250 -> 0.0021s1251-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1252 -> 0.0023s1253-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1254 -> 0.0027s1255-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1256 -> 0.0029s1257-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1258 -> 0.0024s1259-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1260 -> 0.0027s1261-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1262 -> 0.0027s1263-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1264 -> 0.0025s1265-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1266 -> 0.0019s1267-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1268 -> 0.0023s1269-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1270 -> 0.0023s1271-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1272 -> 0.0024s1273-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1274 -> 0.0029s1275-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1276 -> 0.0025s1277-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1278 -> 0.0022s1279-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1280 -> 0.0024s1281-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1282 -> 0.0027s1283-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1284 -> 0.0024s1285-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1286 -> 0.0022s1287-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1288 -> 0.0030s1289-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1290 -> 0.0018s1291-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1292 -> 0.0029s1293-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1294 -> 0.0022s1295-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1296 -> 0.0017s1297-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1298 -> 0.0030s1299-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1300 -> 0.0018s1301-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1302 -> 0.0020s1303-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1304 -> 0.0043s1305-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1306 -> 0.0021s1307-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1308 -> 0.0023s1309Dropped database 'gitlabhq_geo_test'1310Created database 'gitlabhq_geo_test'1311-- enable_extension("plpgsql")1312 -> 0.0192s1313-- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade})1314 -> 0.0135s1315-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1316 -> 0.0023s1317-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1318 -> 0.0133s1319-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1320 -> 0.0104s1321-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1322 -> 0.0472s1323$ date1324Fri Aug 23 10:42:25 UTC 20191325$ JOB_NAME=( $CI_JOB_NAME )1326$ TEST_TOOL=${JOB_NAME[0]}1327$ TEST_LEVEL=${JOB_NAME[1]}1328$ DATABASE=${JOB_NAME[2]}1329$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1330$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec1331$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1332$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1333$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1334$ export FLAKY_RSPEC_GENERATE_REPORT=true1335$ export CACHE_CLASSES=true1336$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1337$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1338$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1339$ scripts/gitaly-test-spawn1340Checking gitaly-ruby bundle...1341Warning: 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`.1342The Gemfile's dependencies are satisfied1343Trying to connect to gitaly: ...... OK1344$ date1345Fri Aug 23 10:42:26 UTC 20191346$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")1347$ mkdir -p tmp/memory_test1348$ export MEMORY_TEST_PATH="tmp/memory_test/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"1349$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"1350Knapsack report generator started!1351Run options:1352 include {:focus=>true, :level=>"unit"}1353 exclude {:geo=>true}1354==> Setting up GitLab Shell...1355 GitLab Shell set up in 0.740694105 seconds...1356==> Setting up Gitaly...1357 Gitaly set up in 0.000403083 seconds...1358==> Setting up GitLab Elasticsearch Indexer...1359 GitLab Elasticsearch Indexer set up in 0.000639366 seconds...1360SnippetsFinder1361 #initialize1362 raises ArgumentError when a project and author are given1363 #execute1364 filter by scope1365 returns all snippets for 'all' scope1366 returns all snippets for 'are_private' scope1367 returns all snippets for 'are_internal' scope1368 returns all snippets for 'are_private' scope1369 filter by author1370 returns all public and internal snippets1371 returns internal snippets1372 returns private snippets1373 returns public snippets1374 returns all snippets1375 returns only public snippets if unauthenticated user1376 returns all snippets for an admin1377 project snippets1378 returns public personal and project snippets for unauthorized user1379 returns public and internal snippets for non project members1380 returns public snippets for non project members1381 returns internal snippets for non project members1382 does not return private snippets for non project members1383 returns all snippets for project members1384 returns private snippets for project members1385 returns all snippets for an admin1386 when the user cannot read cross project1387 returns only personal snippets when the user cannot read cross project1388 behaves like snippet visibility1389 For project snippets1390 project_type: :public, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 20, outcome: true1391 For public project and unauthenticated users1392 agrees with the read_project_snippet policy1393 returns proper outcome1394 Without a given project and unauthenticated users1395 returns proper outcome1396 returns no snippets when the user cannot read cross project1397 project_type: :public, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 10, outcome: false1398 For public project and unauthenticated users1399 agrees with the read_project_snippet policy1400 returns proper outcome1401 Without a given project and unauthenticated users1402 returns proper outcome1403 returns no snippets when the user cannot read cross project1404 project_type: :public, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 0, outcome: false1405 For public project and unauthenticated users1406 agrees with the read_project_snippet policy1407 returns proper outcome1408 Without a given project and unauthenticated users1409 returns proper outcome1410 returns no snippets when the user cannot read cross project1411 project_type: :public, feature_visibility: 20, user_type: :external, snippet_type: 20, outcome: true1412 For public project and external users1413 agrees with the read_project_snippet policy1414 returns proper outcome1415 Without a given project and external users1416 returns proper outcome1417 returns no snippets when the user cannot read cross project1418 project_type: :public, feature_visibility: 20, user_type: :external, snippet_type: 10, outcome: false1419 For public project and external users1420 agrees with the read_project_snippet policy1421 returns proper outcome1422 Without a given project and external users1423 returns proper outcome1424 returns no snippets when the user cannot read cross project1425 project_type: :public, feature_visibility: 20, user_type: :external, snippet_type: 0, outcome: false1426 For public project and external users1427 agrees with the read_project_snippet policy1428 returns proper outcome1429 Without a given project and external users1430 returns proper outcome1431 returns no snippets when the user cannot read cross project1432 project_type: :public, feature_visibility: 20, user_type: :non_member, snippet_type: 20, outcome: true1433 For public project and non_member users1434 agrees with the read_project_snippet policy1435 returns proper outcome1436 Without a given project and non_member users1437 returns proper outcome1438 returns no snippets when the user cannot read cross project1439 project_type: :public, feature_visibility: 20, user_type: :non_member, snippet_type: 10, outcome: true1440 For public project and non_member users1441 agrees with the read_project_snippet policy1442 returns proper outcome1443 Without a given project and non_member users1444 returns proper outcome1445 returns no snippets when the user cannot read cross project1446 project_type: :public, feature_visibility: 20, user_type: :non_member, snippet_type: 0, outcome: false1447 For public project and non_member users1448 agrees with the read_project_snippet policy1449 returns proper outcome1450 Without a given project and non_member users1451 returns proper outcome1452 returns no snippets when the user cannot read cross project1453 project_type: :public, feature_visibility: 20, user_type: :member, snippet_type: 20, outcome: true1454 For public project and member users1455 agrees with the read_project_snippet policy1456 returns proper outcome1457 Without a given project and member users1458 returns proper outcome1459 returns no snippets when the user cannot read cross project1460 project_type: :public, feature_visibility: 20, user_type: :member, snippet_type: 10, outcome: true1461 For public project and member users1462 agrees with the read_project_snippet policy1463 returns proper outcome1464 Without a given project and member users1465 returns proper outcome1466 returns no snippets when the user cannot read cross project1467 project_type: :public, feature_visibility: 20, user_type: :member, snippet_type: 0, outcome: true1468 For public project and member users1469 agrees with the read_project_snippet policy1470 returns proper outcome1471 Without a given project and member users1472 returns proper outcome1473 returns no snippets when the user cannot read cross project1474 project_type: :public, feature_visibility: 20, user_type: :author, snippet_type: 20, outcome: true1475 For public project and author users1476 agrees with the read_project_snippet policy1477 returns proper outcome1478 Without a given project and author users1479 returns proper outcome1480 returns no snippets when the user cannot read cross project1481 project_type: :public, feature_visibility: 20, user_type: :author, snippet_type: 10, outcome: true1482 For public project and author users1483 agrees with the read_project_snippet policy1484 returns proper outcome1485 Without a given project and author users1486 returns proper outcome1487 returns no snippets when the user cannot read cross project1488 project_type: :public, feature_visibility: 20, user_type: :author, snippet_type: 0, outcome: true1489 For public project and author users1490 agrees with the read_project_snippet policy1491 returns proper outcome1492 Without a given project and author users1493 returns proper outcome1494 returns no snippets when the user cannot read cross project1495 project_type: :public, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 20, outcome: false1496 For public project and unauthenticated users1497 agrees with the read_project_snippet policy1498 returns proper outcome1499 Without a given project and unauthenticated users1500 returns proper outcome1501 returns no snippets when the user cannot read cross project1502 project_type: :public, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 10, outcome: false1503 For public project and unauthenticated users1504 agrees with the read_project_snippet policy1505 returns proper outcome1506 Without a given project and unauthenticated users1507 returns proper outcome1508 returns no snippets when the user cannot read cross project1509 project_type: :public, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 0, outcome: false1510 For public project and unauthenticated users1511 agrees with the read_project_snippet policy1512 returns proper outcome1513 Without a given project and unauthenticated users1514 returns proper outcome1515 returns no snippets when the user cannot read cross project1516 project_type: :public, feature_visibility: 10, user_type: :external, snippet_type: 20, outcome: false1517 For public project and external users1518 agrees with the read_project_snippet policy1519 returns proper outcome1520 Without a given project and external users1521 returns proper outcome1522 returns no snippets when the user cannot read cross project1523 project_type: :public, feature_visibility: 10, user_type: :external, snippet_type: 10, outcome: false1524 For public project and external users1525 agrees with the read_project_snippet policy1526 returns proper outcome1527 Without a given project and external users1528 returns proper outcome1529 returns no snippets when the user cannot read cross project1530 project_type: :public, feature_visibility: 10, user_type: :external, snippet_type: 0, outcome: false1531 For public project and external users1532 agrees with the read_project_snippet policy1533 returns proper outcome1534 Without a given project and external users1535 returns proper outcome1536 returns no snippets when the user cannot read cross project1537 project_type: :public, feature_visibility: 10, user_type: :non_member, snippet_type: 20, outcome: false1538 For public project and non_member users1539 agrees with the read_project_snippet policy1540 returns proper outcome1541 Without a given project and non_member users1542 returns proper outcome1543 returns no snippets when the user cannot read cross project1544 project_type: :public, feature_visibility: 10, user_type: :non_member, snippet_type: 10, outcome: false1545 For public project and non_member users1546 agrees with the read_project_snippet policy1547 returns proper outcome1548 Without a given project and non_member users1549 returns proper outcome1550 returns no snippets when the user cannot read cross project1551 project_type: :public, feature_visibility: 10, user_type: :non_member, snippet_type: 0, outcome: false1552 For public project and non_member users1553 agrees with the read_project_snippet policy1554 returns proper outcome1555 Without a given project and non_member users1556 returns proper outcome1557 returns no snippets when the user cannot read cross project1558 project_type: :public, feature_visibility: 10, user_type: :member, snippet_type: 20, outcome: true1559 For public project and member users1560 agrees with the read_project_snippet policy1561 returns proper outcome1562 Without a given project and member users1563 returns proper outcome1564 returns no snippets when the user cannot read cross project1565 project_type: :public, feature_visibility: 10, user_type: :member, snippet_type: 10, outcome: true1566 For public project and member users1567 agrees with the read_project_snippet policy1568 returns proper outcome1569 Without a given project and member users1570 returns proper outcome1571 returns no snippets when the user cannot read cross project1572 project_type: :public, feature_visibility: 10, user_type: :member, snippet_type: 0, outcome: true1573 For public project and member users1574 agrees with the read_project_snippet policy1575 returns proper outcome1576 Without a given project and member users1577 returns proper outcome1578 returns no snippets when the user cannot read cross project1579 project_type: :public, feature_visibility: 10, user_type: :author, snippet_type: 20, outcome: true1580 For public project and author users1581 agrees with the read_project_snippet policy1582 returns proper outcome1583 Without a given project and author users1584 returns proper outcome1585 returns no snippets when the user cannot read cross project1586 project_type: :public, feature_visibility: 10, user_type: :author, snippet_type: 10, outcome: true1587 For public project and author users1588 agrees with the read_project_snippet policy1589 returns proper outcome1590 Without a given project and author users1591 returns proper outcome1592 returns no snippets when the user cannot read cross project1593 project_type: :public, feature_visibility: 10, user_type: :author, snippet_type: 0, outcome: true1594 For public project and author users1595 agrees with the read_project_snippet policy1596 returns proper outcome1597 Without a given project and author users1598 returns proper outcome1599 returns no snippets when the user cannot read cross project1600 project_type: :public, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 20, outcome: false1601 For public project and unauthenticated users1602 agrees with the read_project_snippet policy1603 returns proper outcome1604 Without a given project and unauthenticated users1605 returns proper outcome1606 returns no snippets when the user cannot read cross project1607 project_type: :public, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 10, outcome: false1608 For public project and unauthenticated users1609 agrees with the read_project_snippet policy1610 returns proper outcome1611 Without a given project and unauthenticated users1612 returns proper outcome1613 returns no snippets when the user cannot read cross project1614 project_type: :public, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 0, outcome: false1615 For public project and unauthenticated users1616 agrees with the read_project_snippet policy1617 returns proper outcome1618 Without a given project and unauthenticated users1619 returns proper outcome1620 returns no snippets when the user cannot read cross project1621 project_type: :public, feature_visibility: 0, user_type: :external, snippet_type: 20, outcome: false1622 For public project and external users1623 agrees with the read_project_snippet policy1624 returns proper outcome1625 Without a given project and external users1626 returns proper outcome1627 returns no snippets when the user cannot read cross project1628 project_type: :public, feature_visibility: 0, user_type: :external, snippet_type: 10, outcome: false1629 For public project and external users1630 agrees with the read_project_snippet policy1631 returns proper outcome1632 Without a given project and external users1633 returns proper outcome1634 returns no snippets when the user cannot read cross project1635 project_type: :public, feature_visibility: 0, user_type: :external, snippet_type: 0, outcome: false1636 For public project and external users1637 agrees with the read_project_snippet policy1638 returns proper outcome1639 Without a given project and external users1640 returns proper outcome1641 returns no snippets when the user cannot read cross project1642 project_type: :public, feature_visibility: 0, user_type: :non_member, snippet_type: 20, outcome: false1643 For public project and non_member users1644 agrees with the read_project_snippet policy1645 returns proper outcome1646 Without a given project and non_member users1647 returns proper outcome1648 returns no snippets when the user cannot read cross project1649 project_type: :public, feature_visibility: 0, user_type: :non_member, snippet_type: 10, outcome: false1650 For public project and non_member users1651 agrees with the read_project_snippet policy1652 returns proper outcome1653 Without a given project and non_member users1654 returns proper outcome1655 returns no snippets when the user cannot read cross project1656 project_type: :public, feature_visibility: 0, user_type: :non_member, snippet_type: 0, outcome: false1657 For public project and non_member users1658 agrees with the read_project_snippet policy1659 returns proper outcome1660 Without a given project and non_member users1661 returns proper outcome1662 returns no snippets when the user cannot read cross project1663 project_type: :public, feature_visibility: 0, user_type: :member, snippet_type: 20, outcome: false1664 For public project and member users1665 agrees with the read_project_snippet policy1666 returns proper outcome1667 Without a given project and member users1668 returns proper outcome1669 returns no snippets when the user cannot read cross project1670 project_type: :public, feature_visibility: 0, user_type: :member, snippet_type: 10, outcome: false1671 For public project and member users1672 agrees with the read_project_snippet policy1673 returns proper outcome1674 Without a given project and member users1675 returns proper outcome1676 returns no snippets when the user cannot read cross project1677 project_type: :public, feature_visibility: 0, user_type: :member, snippet_type: 0, outcome: false1678 For public project and member users1679 agrees with the read_project_snippet policy1680 returns proper outcome1681 Without a given project and member users1682 returns proper outcome1683 returns no snippets when the user cannot read cross project1684 project_type: :public, feature_visibility: 0, user_type: :author, snippet_type: 20, outcome: false1685 For public project and author users1686 agrees with the read_project_snippet policy1687 returns proper outcome1688 Without a given project and author users1689 returns proper outcome1690 returns no snippets when the user cannot read cross project1691 project_type: :public, feature_visibility: 0, user_type: :author, snippet_type: 10, outcome: false1692 For public project and author users1693 agrees with the read_project_snippet policy1694 returns proper outcome1695 Without a given project and author users1696 returns proper outcome1697 returns no snippets when the user cannot read cross project1698 project_type: :public, feature_visibility: 0, user_type: :author, snippet_type: 0, outcome: false1699 For public project and author users1700 agrees with the read_project_snippet policy1701 returns proper outcome1702 Without a given project and author users1703 returns proper outcome1704 returns no snippets when the user cannot read cross project1705 project_type: :internal, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 20, outcome: false1706 For internal project and unauthenticated users1707 agrees with the read_project_snippet policy1708 returns proper outcome1709 Without a given project and unauthenticated users1710 returns proper outcome1711 returns no snippets when the user cannot read cross project1712 project_type: :internal, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 10, outcome: false1713 For internal project and unauthenticated users1714 agrees with the read_project_snippet policy1715 returns proper outcome1716 Without a given project and unauthenticated users1717 returns proper outcome1718 returns no snippets when the user cannot read cross project1719 project_type: :internal, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 0, outcome: false1720 For internal project and unauthenticated users1721 agrees with the read_project_snippet policy1722 returns proper outcome1723 Without a given project and unauthenticated users1724 returns proper outcome1725 returns no snippets when the user cannot read cross project1726 project_type: :internal, feature_visibility: 20, user_type: :external, snippet_type: 20, outcome: false1727 For internal project and external users1728 agrees with the read_project_snippet policy1729 returns proper outcome1730 Without a given project and external users1731 returns proper outcome1732 returns no snippets when the user cannot read cross project1733 project_type: :internal, feature_visibility: 20, user_type: :external, snippet_type: 10, outcome: false1734 For internal project and external users1735 agrees with the read_project_snippet policy1736 returns proper outcome1737 Without a given project and external users1738 returns proper outcome1739 returns no snippets when the user cannot read cross project1740 project_type: :internal, feature_visibility: 20, user_type: :external, snippet_type: 0, outcome: false1741 For internal project and external users1742 agrees with the read_project_snippet policy1743 returns proper outcome1744 Without a given project and external users1745 returns proper outcome1746 returns no snippets when the user cannot read cross project1747 project_type: :internal, feature_visibility: 20, user_type: :non_member, snippet_type: 20, outcome: true1748 For internal project and non_member users1749 agrees with the read_project_snippet policy1750 returns proper outcome1751 Without a given project and non_member users1752 returns proper outcome1753 returns no snippets when the user cannot read cross project1754 project_type: :internal, feature_visibility: 20, user_type: :non_member, snippet_type: 10, outcome: true1755 For internal project and non_member users1756 agrees with the read_project_snippet policy1757 returns proper outcome1758 Without a given project and non_member users1759 returns proper outcome1760 returns no snippets when the user cannot read cross project1761 project_type: :internal, feature_visibility: 20, user_type: :non_member, snippet_type: 0, outcome: false1762 For internal project and non_member users1763 agrees with the read_project_snippet policy1764 returns proper outcome1765 Without a given project and non_member users1766 returns proper outcome1767 returns no snippets when the user cannot read cross project1768 project_type: :internal, feature_visibility: 20, user_type: :member, snippet_type: 20, outcome: true1769 For internal project and member users1770 agrees with the read_project_snippet policy1771 returns proper outcome1772 Without a given project and member users1773 returns proper outcome1774 returns no snippets when the user cannot read cross project1775 project_type: :internal, feature_visibility: 20, user_type: :member, snippet_type: 10, outcome: true1776 For internal project and member users1777 agrees with the read_project_snippet policy1778 returns proper outcome1779 Without a given project and member users1780 returns proper outcome1781 returns no snippets when the user cannot read cross project1782 project_type: :internal, feature_visibility: 20, user_type: :member, snippet_type: 0, outcome: true1783 For internal project and member users1784 agrees with the read_project_snippet policy1785 returns proper outcome1786 Without a given project and member users1787 returns proper outcome1788 returns no snippets when the user cannot read cross project1789 project_type: :internal, feature_visibility: 20, user_type: :author, snippet_type: 20, outcome: true1790 For internal project and author users1791 agrees with the read_project_snippet policy1792 returns proper outcome1793 Without a given project and author users1794 returns proper outcome1795 returns no snippets when the user cannot read cross project1796 project_type: :internal, feature_visibility: 20, user_type: :author, snippet_type: 10, outcome: true1797 For internal project and author users1798 agrees with the read_project_snippet policy1799 returns proper outcome1800 Without a given project and author users1801 returns proper outcome1802 returns no snippets when the user cannot read cross project1803 project_type: :internal, feature_visibility: 20, user_type: :author, snippet_type: 0, outcome: true1804 For internal project and author users1805 agrees with the read_project_snippet policy1806 returns proper outcome1807 Without a given project and author users1808 returns proper outcome1809 returns no snippets when the user cannot read cross project1810 project_type: :internal, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 20, outcome: false1811 For internal project and unauthenticated users1812 agrees with the read_project_snippet policy1813 returns proper outcome1814 Without a given project and unauthenticated users1815 returns proper outcome1816 returns no snippets when the user cannot read cross project1817 project_type: :internal, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 10, outcome: false1818 For internal project and unauthenticated users1819 agrees with the read_project_snippet policy1820 returns proper outcome1821 Without a given project and unauthenticated users1822 returns proper outcome1823 returns no snippets when the user cannot read cross project1824 project_type: :internal, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 0, outcome: false1825 For internal project and unauthenticated users1826 agrees with the read_project_snippet policy1827 returns proper outcome1828 Without a given project and unauthenticated users1829 returns proper outcome1830 returns no snippets when the user cannot read cross project1831 project_type: :internal, feature_visibility: 10, user_type: :external, snippet_type: 20, outcome: false1832 For internal project and external users1833 agrees with the read_project_snippet policy1834 returns proper outcome1835 Without a given project and external users1836 returns proper outcome1837 returns no snippets when the user cannot read cross project1838 project_type: :internal, feature_visibility: 10, user_type: :external, snippet_type: 10, outcome: false1839 For internal project and external users1840 agrees with the read_project_snippet policy1841 returns proper outcome1842 Without a given project and external users1843 returns proper outcome1844 returns no snippets when the user cannot read cross project1845 project_type: :internal, feature_visibility: 10, user_type: :external, snippet_type: 0, outcome: false1846 For internal project and external users1847 agrees with the read_project_snippet policy1848 returns proper outcome1849 Without a given project and external users1850 returns proper outcome1851 returns no snippets when the user cannot read cross project1852 project_type: :internal, feature_visibility: 10, user_type: :non_member, snippet_type: 20, outcome: false1853 For internal project and non_member users1854 agrees with the read_project_snippet policy1855 returns proper outcome1856 Without a given project and non_member users1857 returns proper outcome1858 returns no snippets when the user cannot read cross project1859 project_type: :internal, feature_visibility: 10, user_type: :non_member, snippet_type: 10, outcome: false1860 For internal project and non_member users1861 agrees with the read_project_snippet policy1862 returns proper outcome1863 Without a given project and non_member users1864 returns proper outcome1865 returns no snippets when the user cannot read cross project1866 project_type: :internal, feature_visibility: 10, user_type: :non_member, snippet_type: 0, outcome: false1867 For internal project and non_member users1868 agrees with the read_project_snippet policy1869 returns proper outcome1870 Without a given project and non_member users1871 returns proper outcome1872 returns no snippets when the user cannot read cross project1873 project_type: :internal, feature_visibility: 10, user_type: :member, snippet_type: 20, outcome: true1874 For internal project and member users1875 agrees with the read_project_snippet policy1876 returns proper outcome1877 Without a given project and member users1878 returns proper outcome1879 returns no snippets when the user cannot read cross project1880 project_type: :internal, feature_visibility: 10, user_type: :member, snippet_type: 10, outcome: true1881 For internal project and member users1882 agrees with the read_project_snippet policy1883 returns proper outcome1884 Without a given project and member users1885 returns proper outcome1886 returns no snippets when the user cannot read cross project1887 project_type: :internal, feature_visibility: 10, user_type: :member, snippet_type: 0, outcome: true1888 For internal project and member users1889 agrees with the read_project_snippet policy1890 returns proper outcome1891 Without a given project and member users1892 returns proper outcome1893 returns no snippets when the user cannot read cross project1894 project_type: :internal, feature_visibility: 10, user_type: :author, snippet_type: 20, outcome: true1895 For internal project and author users1896 agrees with the read_project_snippet policy1897 returns proper outcome1898 Without a given project and author users1899 returns proper outcome1900 returns no snippets when the user cannot read cross project1901 project_type: :internal, feature_visibility: 10, user_type: :author, snippet_type: 10, outcome: true1902 For internal project and author users1903 agrees with the read_project_snippet policy1904 returns proper outcome1905 Without a given project and author users1906 returns proper outcome1907 returns no snippets when the user cannot read cross project1908 project_type: :internal, feature_visibility: 10, user_type: :author, snippet_type: 0, outcome: true1909 For internal project and author users1910 agrees with the read_project_snippet policy1911 returns proper outcome1912 Without a given project and author users1913 returns proper outcome1914 returns no snippets when the user cannot read cross project1915 project_type: :internal, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 20, outcome: false1916 For internal project and unauthenticated users1917 agrees with the read_project_snippet policy1918 returns proper outcome1919 Without a given project and unauthenticated users1920 returns proper outcome1921 returns no snippets when the user cannot read cross project1922 project_type: :internal, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 10, outcome: false1923 For internal project and unauthenticated users1924 agrees with the read_project_snippet policy1925 returns proper outcome1926 Without a given project and unauthenticated users1927 returns proper outcome1928 returns no snippets when the user cannot read cross project1929 project_type: :internal, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 0, outcome: false1930 For internal project and unauthenticated users1931 agrees with the read_project_snippet policy1932 returns proper outcome1933 Without a given project and unauthenticated users1934 returns proper outcome1935 returns no snippets when the user cannot read cross project1936 project_type: :internal, feature_visibility: 0, user_type: :external, snippet_type: 20, outcome: false1937 For internal project and external users1938 agrees with the read_project_snippet policy1939 returns proper outcome1940 Without a given project and external users1941 returns proper outcome1942 returns no snippets when the user cannot read cross project1943 project_type: :internal, feature_visibility: 0, user_type: :external, snippet_type: 10, outcome: false1944 For internal project and external users1945 agrees with the read_project_snippet policy1946 returns proper outcome1947 Without a given project and external users1948 returns proper outcome1949 returns no snippets when the user cannot read cross project1950 project_type: :internal, feature_visibility: 0, user_type: :external, snippet_type: 0, outcome: false1951 For internal project and external users1952 agrees with the read_project_snippet policy1953 returns proper outcome1954 Without a given project and external users1955 returns proper outcome1956 returns no snippets when the user cannot read cross project1957 project_type: :internal, feature_visibility: 0, user_type: :non_member, snippet_type: 20, outcome: false1958 For internal project and non_member users1959 agrees with the read_project_snippet policy1960 returns proper outcome1961 Without a given project and non_member users1962 returns proper outcome1963 returns no snippets when the user cannot read cross project1964 project_type: :internal, feature_visibility: 0, user_type: :non_member, snippet_type: 10, outcome: false1965 For internal project and non_member users1966 agrees with the read_project_snippet policy1967 returns proper outcome1968 Without a given project and non_member users1969 returns proper outcome1970 returns no snippets when the user cannot read cross project1971 project_type: :internal, feature_visibility: 0, user_type: :non_member, snippet_type: 0, outcome: false1972 For internal project and non_member users1973 agrees with the read_project_snippet policy1974 returns proper outcome1975 Without a given project and non_member users1976 returns proper outcome1977 returns no snippets when the user cannot read cross project1978 project_type: :internal, feature_visibility: 0, user_type: :member, snippet_type: 20, outcome: false1979 For internal project and member users1980 agrees with the read_project_snippet policy1981 returns proper outcome1982 Without a given project and member users1983 returns proper outcome1984 returns no snippets when the user cannot read cross project1985 project_type: :internal, feature_visibility: 0, user_type: :member, snippet_type: 10, outcome: false1986 For internal project and member users1987 agrees with the read_project_snippet policy1988 returns proper outcome1989 Without a given project and member users1990 returns proper outcome1991 returns no snippets when the user cannot read cross project1992 project_type: :internal, feature_visibility: 0, user_type: :member, snippet_type: 0, outcome: false1993 For internal project and member users1994 agrees with the read_project_snippet policy1995 returns proper outcome1996 Without a given project and member users1997 returns proper outcome1998 returns no snippets when the user cannot read cross project1999 project_type: :internal, feature_visibility: 0, user_type: :author, snippet_type: 20, outcome: false2000 For internal project and author users2001 agrees with the read_project_snippet policy2002 returns proper outcome2003 Without a given project and author users2004 returns proper outcome2005 returns no snippets when the user cannot read cross project2006 project_type: :internal, feature_visibility: 0, user_type: :author, snippet_type: 10, outcome: false2007 For internal project and author users2008 agrees with the read_project_snippet policy2009 returns proper outcome2010 Without a given project and author users2011 returns proper outcome2012 returns no snippets when the user cannot read cross project2013 project_type: :internal, feature_visibility: 0, user_type: :author, snippet_type: 0, outcome: false2014 For internal project and author users2015 agrees with the read_project_snippet policy2016 returns proper outcome2017 Without a given project and author users2018 returns proper outcome2019 returns no snippets when the user cannot read cross project2020 project_type: :private, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 20, outcome: false2021 For private project and unauthenticated users2022 agrees with the read_project_snippet policy2023 returns proper outcome2024 Without a given project and unauthenticated users2025 returns proper outcome2026 returns no snippets when the user cannot read cross project2027 project_type: :private, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 10, outcome: false2028 For private project and unauthenticated users2029 agrees with the read_project_snippet policy2030 returns proper outcome2031 Without a given project and unauthenticated users2032 returns proper outcome2033 returns no snippets when the user cannot read cross project2034 project_type: :private, feature_visibility: 20, user_type: :unauthenticated, snippet_type: 0, outcome: false2035 For private project and unauthenticated users2036 agrees with the read_project_snippet policy2037 returns proper outcome2038 Without a given project and unauthenticated users2039 returns proper outcome2040 returns no snippets when the user cannot read cross project2041 project_type: :private, feature_visibility: 20, user_type: :external, snippet_type: 20, outcome: true2042 For private project and external users2043 agrees with the read_project_snippet policy2044 returns proper outcome2045 Without a given project and external users2046 returns proper outcome2047 returns no snippets when the user cannot read cross project2048 project_type: :private, feature_visibility: 20, user_type: :external, snippet_type: 10, outcome: true2049 For private project and external users2050 agrees with the read_project_snippet policy2051 returns proper outcome2052 Without a given project and external users2053 returns proper outcome2054 returns no snippets when the user cannot read cross project2055 project_type: :private, feature_visibility: 20, user_type: :external, snippet_type: 0, outcome: true2056 For private project and external users2057 agrees with the read_project_snippet policy2058 returns proper outcome2059 Without a given project and external users2060 returns proper outcome2061 returns no snippets when the user cannot read cross project2062 project_type: :private, feature_visibility: 20, user_type: :non_member, snippet_type: 20, outcome: false2063 For private project and non_member users2064 agrees with the read_project_snippet policy2065 returns proper outcome2066 Without a given project and non_member users2067 returns proper outcome2068 returns no snippets when the user cannot read cross project2069 project_type: :private, feature_visibility: 20, user_type: :non_member, snippet_type: 10, outcome: false2070 For private project and non_member users2071 agrees with the read_project_snippet policy2072 returns proper outcome2073 Without a given project and non_member users2074 returns proper outcome2075 returns no snippets when the user cannot read cross project2076 project_type: :private, feature_visibility: 20, user_type: :non_member, snippet_type: 0, outcome: false2077 For private project and non_member users2078 agrees with the read_project_snippet policy2079 returns proper outcome2080 Without a given project and non_member users2081 returns proper outcome2082 returns no snippets when the user cannot read cross project2083 project_type: :private, feature_visibility: 20, user_type: :member, snippet_type: 20, outcome: true2084 For private project and member users2085 agrees with the read_project_snippet policy2086 returns proper outcome2087 Without a given project and member users2088 returns proper outcome2089 returns no snippets when the user cannot read cross project2090 project_type: :private, feature_visibility: 20, user_type: :member, snippet_type: 10, outcome: true2091 For private project and member users2092 agrees with the read_project_snippet policy2093 returns proper outcome2094 Without a given project and member users2095 returns proper outcome2096 returns no snippets when the user cannot read cross project2097 project_type: :private, feature_visibility: 20, user_type: :member, snippet_type: 0, outcome: true2098 For private project and member users2099 agrees with the read_project_snippet policy2100 returns proper outcome2101 Without a given project and member users2102 returns proper outcome2103 returns no snippets when the user cannot read cross project2104 project_type: :private, feature_visibility: 20, user_type: :author, snippet_type: 20, outcome: true2105 For private project and author users2106 agrees with the read_project_snippet policy2107 returns proper outcome2108 Without a given project and author users2109 returns proper outcome2110 returns no snippets when the user cannot read cross project2111 project_type: :private, feature_visibility: 20, user_type: :author, snippet_type: 10, outcome: true2112 For private project and author users2113 agrees with the read_project_snippet policy2114 returns proper outcome2115 Without a given project and author users2116 returns proper outcome2117 returns no snippets when the user cannot read cross project2118 project_type: :private, feature_visibility: 20, user_type: :author, snippet_type: 0, outcome: true2119 For private project and author users2120 agrees with the read_project_snippet policy2121 returns proper outcome2122 Without a given project and author users2123 returns proper outcome2124 returns no snippets when the user cannot read cross project2125 project_type: :private, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 20, outcome: false2126 For private project and unauthenticated users2127 agrees with the read_project_snippet policy2128 returns proper outcome2129 Without a given project and unauthenticated users2130 returns proper outcome2131 returns no snippets when the user cannot read cross project2132 project_type: :private, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 10, outcome: false2133 For private project and unauthenticated users2134 agrees with the read_project_snippet policy2135 returns proper outcome2136 Without a given project and unauthenticated users2137 returns proper outcome2138 returns no snippets when the user cannot read cross project2139 project_type: :private, feature_visibility: 10, user_type: :unauthenticated, snippet_type: 0, outcome: false2140 For private project and unauthenticated users2141 agrees with the read_project_snippet policy2142 returns proper outcome2143 Without a given project and unauthenticated users2144 returns proper outcome2145 returns no snippets when the user cannot read cross project2146 project_type: :private, feature_visibility: 10, user_type: :external, snippet_type: 20, outcome: true2147 For private project and external users2148 agrees with the read_project_snippet policy2149 returns proper outcome2150 Without a given project and external users2151 returns proper outcome2152 returns no snippets when the user cannot read cross project2153 project_type: :private, feature_visibility: 10, user_type: :external, snippet_type: 10, outcome: true2154 For private project and external users2155 agrees with the read_project_snippet policy2156 returns proper outcome2157 Without a given project and external users2158 returns proper outcome2159 returns no snippets when the user cannot read cross project2160 project_type: :private, feature_visibility: 10, user_type: :external, snippet_type: 0, outcome: true2161 For private project and external users2162 agrees with the read_project_snippet policy2163 returns proper outcome2164 Without a given project and external users2165 returns proper outcome2166 returns no snippets when the user cannot read cross project2167 project_type: :private, feature_visibility: 10, user_type: :non_member, snippet_type: 20, outcome: false2168 For private project and non_member users2169 agrees with the read_project_snippet policy2170 returns proper outcome2171 Without a given project and non_member users2172 returns proper outcome2173 returns no snippets when the user cannot read cross project2174 project_type: :private, feature_visibility: 10, user_type: :non_member, snippet_type: 10, outcome: false2175 For private project and non_member users2176 agrees with the read_project_snippet policy2177 returns proper outcome2178 Without a given project and non_member users2179 returns proper outcome2180 returns no snippets when the user cannot read cross project2181 project_type: :private, feature_visibility: 10, user_type: :non_member, snippet_type: 0, outcome: false2182 For private project and non_member users2183 agrees with the read_project_snippet policy2184 returns proper outcome2185 Without a given project and non_member users2186 returns proper outcome2187 returns no snippets when the user cannot read cross project2188 project_type: :private, feature_visibility: 10, user_type: :member, snippet_type: 20, outcome: true2189 For private project and member users2190 agrees with the read_project_snippet policy2191 returns proper outcome2192 Without a given project and member users2193 returns proper outcome2194 returns no snippets when the user cannot read cross project2195 project_type: :private, feature_visibility: 10, user_type: :member, snippet_type: 10, outcome: true2196 For private project and member users2197 agrees with the read_project_snippet policy2198 returns proper outcome2199 Without a given project and member users2200 returns proper outcome2201 returns no snippets when the user cannot read cross project2202 project_type: :private, feature_visibility: 10, user_type: :member, snippet_type: 0, outcome: true2203 For private project and member users2204 agrees with the read_project_snippet policy2205 returns proper outcome2206 Without a given project and member users2207 returns proper outcome2208 returns no snippets when the user cannot read cross project2209 project_type: :private, feature_visibility: 10, user_type: :author, snippet_type: 20, outcome: true2210 For private project and author users2211 agrees with the read_project_snippet policy2212 returns proper outcome2213 Without a given project and author users2214 returns proper outcome2215 returns no snippets when the user cannot read cross project2216 project_type: :private, feature_visibility: 10, user_type: :author, snippet_type: 10, outcome: true2217 For private project and author users2218 agrees with the read_project_snippet policy2219 returns proper outcome2220 Without a given project and author users2221 returns proper outcome2222 returns no snippets when the user cannot read cross project2223 project_type: :private, feature_visibility: 10, user_type: :author, snippet_type: 0, outcome: true2224 For private project and author users2225 agrees with the read_project_snippet policy2226 returns proper outcome2227 Without a given project and author users2228 returns proper outcome2229 returns no snippets when the user cannot read cross project2230 project_type: :private, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 20, outcome: false2231 For private project and unauthenticated users2232 agrees with the read_project_snippet policy2233 returns proper outcome2234 Without a given project and unauthenticated users2235 returns proper outcome2236 returns no snippets when the user cannot read cross project2237 project_type: :private, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 10, outcome: false2238 For private project and unauthenticated users2239 agrees with the read_project_snippet policy2240 returns proper outcome2241 Without a given project and unauthenticated users2242 returns proper outcome2243 returns no snippets when the user cannot read cross project2244 project_type: :private, feature_visibility: 0, user_type: :unauthenticated, snippet_type: 0, outcome: false2245 For private project and unauthenticated users2246 agrees with the read_project_snippet policy2247 returns proper outcome2248 Without a given project and unauthenticated users2249 returns proper outcome2250 returns no snippets when the user cannot read cross project2251 project_type: :private, feature_visibility: 0, user_type: :external, snippet_type: 20, outcome: false2252 For private project and external users2253 agrees with the read_project_snippet policy2254 returns proper outcome2255 Without a given project and external users2256 returns proper outcome2257 returns no snippets when the user cannot read cross project2258 project_type: :private, feature_visibility: 0, user_type: :external, snippet_type: 10, outcome: false2259 For private project and external users2260 agrees with the read_project_snippet policy2261 returns proper outcome2262 Without a given project and external users2263 returns proper outcome2264 returns no snippets when the user cannot read cross project2265 project_type: :private, feature_visibility: 0, user_type: :external, snippet_type: 0, outcome: false2266 For private project and external users2267 agrees with the read_project_snippet policy2268 returns proper outcome2269 Without a given project and external users2270 returns proper outcome2271 returns no snippets when the user cannot read cross project2272 project_type: :private, feature_visibility: 0, user_type: :non_member, snippet_type: 20, outcome: false2273 For private project and non_member users2274 agrees with the read_project_snippet policy2275 returns proper outcome2276 Without a given project and non_member users2277 returns proper outcome2278 returns no snippets when the user cannot read cross project2279 project_type: :private, feature_visibility: 0, user_type: :non_member, snippet_type: 10, outcome: false2280 For private project and non_member users2281 agrees with the read_project_snippet policy2282 returns proper outcome2283 Without a given project and non_member users2284 returns proper outcome2285 returns no snippets when the user cannot read cross project2286 project_type: :private, feature_visibility: 0, user_type: :non_member, snippet_type: 0, outcome: false2287 For private project and non_member users2288 agrees with the read_project_snippet policy2289 returns proper outcome2290 Without a given project and non_member users2291 returns proper outcome2292 returns no snippets when the user cannot read cross project2293 project_type: :private, feature_visibility: 0, user_type: :member, snippet_type: 20, outcome: false2294 For private project and member users2295 agrees with the read_project_snippet policy2296 returns proper outcome2297 Without a given project and member users2298 returns proper outcome2299 returns no snippets when the user cannot read cross project2300 project_type: :private, feature_visibility: 0, user_type: :member, snippet_type: 10, outcome: false2301 For private project and member users2302 agrees with the read_project_snippet policy2303 returns proper outcome2304 Without a given project and member users2305 returns proper outcome2306 returns no snippets when the user cannot read cross project2307 project_type: :private, feature_visibility: 0, user_type: :member, snippet_type: 0, outcome: false2308 For private project and member users2309 agrees with the read_project_snippet policy2310 returns proper outcome2311 Without a given project and member users2312 returns proper outcome2313 returns no snippets when the user cannot read cross project2314 project_type: :private, feature_visibility: 0, user_type: :author, snippet_type: 20, outcome: false2315 For private project and author users2316 agrees with the read_project_snippet policy2317 returns proper outcome2318 Without a given project and author users2319 returns proper outcome2320 returns no snippets when the user cannot read cross project2321 project_type: :private, feature_visibility: 0, user_type: :author, snippet_type: 10, outcome: false2322 For private project and author users2323 agrees with the read_project_snippet policy2324 returns proper outcome2325 Without a given project and author users2326 returns proper outcome2327 returns no snippets when the user cannot read cross project2328 project_type: :private, feature_visibility: 0, user_type: :author, snippet_type: 0, outcome: false2329 For private project and author users2330 agrees with the read_project_snippet policy2331 returns proper outcome2332 Without a given project and author users2333 returns proper outcome2334 returns no snippets when the user cannot read cross project2335 For personal snippets2336 snippet_visibility: 20, user_type: :unauthenticated, outcome: true2337 For personal and 20 snippets with unauthenticated user2338 agrees with read_personal_snippet policy2339 returns proper outcome2340 returns personal snippets when the user cannot read cross project2341 snippet_visibility: 20, user_type: :external, outcome: true2342 For personal and 20 snippets with external user2343 agrees with read_personal_snippet policy2344 returns proper outcome2345 returns personal snippets when the user cannot read cross project2346 snippet_visibility: 20, user_type: :non_member, outcome: true2347 For personal and 20 snippets with non_member user2348 agrees with read_personal_snippet policy2349 returns proper outcome2350 returns personal snippets when the user cannot read cross project2351 snippet_visibility: 20, user_type: :author, outcome: true2352 For personal and 20 snippets with author user2353 agrees with read_personal_snippet policy2354 returns proper outcome2355 returns personal snippets when the user cannot read cross project2356 snippet_visibility: 10, user_type: :unauthenticated, outcome: false2357 For personal and 10 snippets with unauthenticated user2358 agrees with read_personal_snippet policy2359 returns proper outcome2360 returns personal snippets when the user cannot read cross project2361 snippet_visibility: 10, user_type: :external, outcome: false2362 For personal and 10 snippets with external user2363 agrees with read_personal_snippet policy2364 returns proper outcome2365 returns personal snippets when the user cannot read cross project2366 snippet_visibility: 10, user_type: :non_member, outcome: true2367 For personal and 10 snippets with non_member user2368 agrees with read_personal_snippet policy2369 returns proper outcome2370 returns personal snippets when the user cannot read cross project2371 snippet_visibility: 10, user_type: :author, outcome: true2372 For personal and 10 snippets with author user2373 agrees with read_personal_snippet policy2374 returns proper outcome2375 returns personal snippets when the user cannot read cross project2376 snippet_visibility: 0, user_type: :unauthenticated, outcome: false2377 For personal and 0 snippets with unauthenticated user2378 agrees with read_personal_snippet policy2379 returns proper outcome2380 returns personal snippets when the user cannot read cross project2381 snippet_visibility: 0, user_type: :external, outcome: false2382 For personal and 0 snippets with external user2383 agrees with read_personal_snippet policy2384 returns proper outcome2385 returns personal snippets when the user cannot read cross project2386 snippet_visibility: 0, user_type: :non_member, outcome: false2387 For personal and 0 snippets with non_member user2388 agrees with read_personal_snippet policy2389 returns proper outcome2390 returns personal snippets when the user cannot read cross project2391 snippet_visibility: 0, user_type: :author, outcome: true2392 For personal and 0 snippets with author user2393 agrees with read_personal_snippet policy2394 returns proper outcome2395 returns personal snippets when the user cannot read cross project2396 external authorization2397 includes the result if the external service allows access2398 does not include any results if the external service denies access2399 behaves like a finder with external authorization service2400 finds the subject2401 with an external authorization service2402 does not include the subject when no project was given2403 includes the subject when a project id was given2404GpgKey2405 associations2406 should belong to user required:2407 should have many subkeys2408 validation2409 should validate that :user cannot be empty/falsy2410 should validate that :key cannot be empty/falsy2411 should validate that :key is case-sensitively unique2412 should allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----END PGP PUBLIC KEY BLOCK-----"›2413 should not allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey"›2414 should not allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----BEGIN PGP PUBLIC KEY BLOCK-----"›2415 should not allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----"›2416 should not allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----"›2417 should not allow :key to be ‹"-----END PGP PUBLIC KEY BLOCK-----"›2418 should not allow :key to be ‹"key\n-----END PGP PUBLIC KEY BLOCK-----"›2419 should not allow :key to be ‹"BEGIN PGP"›2420 callbacks2421 extract_fingerprint2422 extracts the fingerprint from the gpg key2423 extract_primary_keyid2424 extracts the primary keyid from the gpg key2425 generate_subkeys2426 extracts the subkeys from the gpg key2427 #key=2428 strips white spaces2429 does not strip when the key is nil2430 #user_infos2431 returns the user infos from the gpg key2432 #verified_user_infos2433 returns the user infos if it is verified2434 returns an empty array if the user info is not verified2435 #emails_with_verified_status2436 email is verified if the user has the matching email2437 #verified?2438 returns true if one of the email addresses in the key belongs to the user2439 returns false if none of the email addresses in the key does not belong to the user2440 verified_and_belongs_to_email?2441 returns false if none of the email addresses in the key does not belong to the user2442 returns false if one of the email addresses in the key belongs to the user and does not match the provided email2443 returns true if one of the email addresses in the key belongs to the user and matches the provided email2444 returns true if one of the email addresses in the key belongs to the user and case-insensitively matches the provided email2445 #revoke2446 invalidates all associated gpg signatures and destroys the key2447 deletes all the associated subkeys2448 invalidates all signatures associated to the subkeys2449Gitlab::Gpg::InvalidGpgSignatureUpdater2450 #run2451 gpg signature did have an associated gpg key which was removed later2452 assigns the gpg key to the signature when the missing gpg key is added2453 does not assign the gpg key when an unrelated gpg key is added2454 gpg signature did not have an associated gpg key2455 updates the signature to being valid when the missing gpg key is added2456 keeps the signature at being invalid when an unrelated gpg key is added2457 gpg signature did have an associated unverified gpg key2458 updates the signature to being valid when the user updates the email address2459 keeps the signature at being invalid when the changed email address is still unrelated2460 gpg signature did not have an associated gpg subkey2461 updates the signature to being valid when the missing gpg key is added2462Boards::Issues::ListService2463 #execute2464 when parent is a project2465 behaves like issues list service2466 delegates search to IssuesFinder2467 #metadata2468DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". 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 metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)2469 returns issues count for list2470 issues are ordered by priority2471 returns opened issues when list_id is missing2472 returns opened issues when listing issues from Backlog2473 returns closed issues when listing issues from Closed2474 returns opened issues that have label list applied when listing issues from a label list2475 with list that does not belong to the board2476 raises an error2477 with invalid list id2478 raises an error2479 when project is archived2480 behaves like issues list service2481 delegates search to IssuesFinder2482 #metadata2483DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". 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 metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)2484 returns issues count for list2485 issues are ordered by priority2486 returns opened issues when list_id is missing2487 returns opened issues when listing issues from Backlog2488 returns closed issues when listing issues from Closed2489 returns opened issues that have label list applied when listing issues from a label list2490 with list that does not belong to the board2491 raises an error2492 with invalid list id2493 raises an error2494 when parent is a group2495 and group has no parent2496 behaves like issues list service2497 delegates search to IssuesFinder2498 #metadata2499DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". 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 metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)2500 returns issues count for list2501 issues are ordered by priority2502 returns opened issues when list_id is missing2503 returns opened issues when listing issues from Backlog2504 returns closed issues when listing issues from Closed2505 returns opened issues that have label list applied when listing issues from a label list2506 with list that does not belong to the board2507 raises an error2508 with invalid list id2509 raises an error2510 and group is an ancestor2511 behaves like issues list service2512 delegates search to IssuesFinder2513 #metadata2514DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". 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 metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)2515 returns issues count for list2516 issues are ordered by priority2517 returns opened issues when list_id is missing2518 returns opened issues when listing issues from Backlog2519 returns closed issues when listing issues from Closed2520 returns opened issues that have label list applied when listing issues from a label list2521 with list that does not belong to the board2522 raises an error2523 with invalid list id2524 raises an error2525NotesHelper2526 #notes_max_access_for_users2527 returns access levels2528 handles access in different projects2529 #discussion_path2530 for a merge request discusion2531 for a diff discussion2532 when the discussion is active2533 returns the diff path with the line code2534 when the discussion is on an older merge request version2535 returns the diff version path with the line code2536 when the discussion is on a comparison between merge request versions2537 returns the diff version comparison path with the line code2538 when the discussion does not have a merge request version2539 returns nil2540 for a legacy diff discussion2541 when the discussion is active2542 returns the diff path with the line code2543 when the discussion is outdated2544 returns nil2545 for a non-diff discussion2546 returns nil2547 for a contextual commit discussion2548 returns the merge request diff discussion scoped in the commit2549 for a commit discussion2550 for a diff discussion2551 returns the commit path with the line code2552 for a legacy diff discussion2553 returns the commit path with the line code2554 for a non-diff discussion2555 returns the commit path with the note anchor2556 #notes_url2557 return snippet notes path for personal snippet2558 return project notes path for project snippet2559 return project notes path for other noteables2560 #note_url2561 return snippet notes path for personal snippet2562 return project notes path for project snippet2563 return project notes path for other noteables2564 #form_resources2565 returns note for personal snippet2566 returns namespace, project and note for project snippet2567 returns namespace, project and note path for other noteables2568 #noteable_note_url2569 returns the noteable url with an anchor to the note2570 #discussion_resolved_intro2571 when the discussion was resolved by a push2572 returns "Automatically resolved"2573 when the discussion was not resolved by a push2574 returns "Resolved"2575Gitlab::ImportExport::ProjectTreeRestorer2576 restore project tree2577 JSON2578 restores models based on JSON2579 restore correct project features2580 has the project description2581 has the same label associated to two issues2582 has milestones associated to two separate issues2583 creates a valid pipeline note2584 pipeline has the correct user ID2585 restores pipelines with missing ref2586 preserves updated_at on issues2587 has multiple issue assignees2588 contains the merge access levels on a protected branch2589 contains the push access levels on a protected branch2590 contains the create access levels on a protected tag2591 restores issue resource label events2592 restores merge requests resource label events2593 restores suggestion2594 has the correct data for merge request diff files2595 has the correct data for merge request diff commits2596 has the correct data for merge request latest_merge_request_diff2597 has labels associated to label links, associated to issues2598 has project labels2599 has no group labels2600 has issue boards2601 has lists associated with the issue board2602 has a project feature2603 has custom attributes2604 has badges2605 restores the correct service2606 when importing a project with cached_markdown_version and note_html2607 for an Issue2608 does not import note_html2609 for a Merge Request2610 does not import note_html2611 event at forth level of the tree2612 restores the event2613 has the action2614 event belongs to note, belongs to merge request, belongs to a project2615 Merge requests2616 always has the new project as a target2617 has the same source project as originally if source/target are the same2618 has the new project as target if source/target differ2619 has no source if source/target differ2620 tokens are regenerated2621 has new CI trigger tokens2622 has a new CI build token2623 has restored the correct number of records2624 has the correct number of merge requests2625 only restores valid triggers2626 has the correct number of pipelines and statuses2627 when restoring hierarchy of pipeline, stages and jobs2628 restores pipelines2629 restores pipeline stages2630 correctly restores association between stage and a pipeline2631 restores statuses2632 correctly restores association between a stage and a job2633 correctly restores association between a pipeline and a job2634 Light JSON2635 with a simple project2636 behaves like restores project correctly2637 has labels2638 has label priorities2639 has milestones2640 has issues2641 does not set params that are excluded from import_export settings2642 project.json file access check2643 does not read a symlink2644 when there is an existing build with build token2645 behaves like restores project successfully2646 correctly restores project2647 when the project has overridden params in import data2648 handles string versions of visibility_level2649 overwrites the params stored in the JSON2650 does not allow setting params that are excluded from import_export settings2651 with a project that has a group2652 behaves like restores project successfully2653 correctly restores project2654 behaves like restores project correctly2655 has labels2656 has label priorities2657 has milestones2658 has issues2659 does not set params that are excluded from import_export settings2660 behaves like restores group correctly2661 has group label2662 has group milestone2663 has the correct visibility level2664 with existing group models2665 does not import any templated services2666 imports labels2667 imports milestones2668 with clashing milestones on IID2669 preserves the project milestone IID2670 #restored_project2671 no group visibility2672 uses the project visibility2673 with restricted internal visibility2674 internal project2675 uses private visibility2676 with group visibility2677 private group visibility2678 uses the group visibility2679 public group visibility2680 uses the project visibility2681 internal group visibility2682 uses the group visibility2683 with restricted internal visibility2684 sets private visibility2685JiraService2686 #options2687 sets the URL properly2688 leaves out trailing slashes in context2689 Associations2690 should belong to project required:2691 should have one service_hook2692 should allow :jira_issue_transition_id to be ‹nil›2693 should allow :jira_issue_transition_id to be ‹"1,2,3"›2694 should allow :jira_issue_transition_id to be ‹"1;2;3"›2695 should not allow :jira_issue_transition_id to be ‹"a,b,cd"›2696 Validations2697 when service is active2698 should validate that :url cannot be empty/falsy2699 behaves like issue tracker service URL attribute2700 should allow :url to be ‹"https://example.com"›2701 should not allow :url to be ‹"example.com"›2702 should not allow :url to be ‹"ftp://example.com"›2703 should not allow :url to be ‹"herp-and-derp"›2704 when service is inactive2705 should not validate that :url cannot be empty/falsy2706 should not validate that :username cannot be empty/falsy2707 should not validate that :password cannot be empty/falsy2708 validating urls2709 is valid when all fields have required values2710 is not valid when url is not a valid url2711 is not valid when api url is not a valid url2712 is not valid when username is missing2713 is not valid when password is missing2714 is valid when api url is a valid url2715 .reference_pattern2716 does not allow # on the code2717 behaves like allows project key on reference pattern2718 allows underscores in the project name2719 allows numbers in the project name2720 requires the project name to begin with A-Z2721 #create2722 does not store title & description into properties2723 sets title & description correctly2724 overriding properties2725 when data are stored in properties2726 when data are stored in the properties2727 #update2728 removes title and description from properties2729 stores title & description in services table2730 reading fields2731 returns correct values2732 when data are stored in separated fields2733 when data are stored in the properties2734 #update2735 removes title and description from properties2736 stores title & description in services table2737 reading fields2738 returns correct values2739 when data are stored in both properties and separated fields2740 when data are stored in the properties2741 #update2742 removes title and description from properties2743 stores title & description in services table2744 reading fields2745 returns correct values2746 when no title & description are set2747 returns default values2748 #close_issue2749 when resource is a merge request2750 behaves like close_issue2751 calls Jira API2752 does not fail if remote_link.all on issue returns nil2753 creates Remote Link reference in Jira for comment2754 does not send comment or remote links to issues already closed2755 does not send comment or remote links to issues with unknown resolution2756 references the GitLab commit2757 references the GitLab commit2758 logs exception when transition id is not valid2759 calls the api with jira_issue_transition_id2760 when have multiple transition ids2761 calls the api with transition ids separated by comma2762 calls the api with transition ids separated by semicolon2763 when resource is a commit2764 behaves like close_issue2765 calls Jira API2766 does not fail if remote_link.all on issue returns nil2767 creates Remote Link reference in Jira for comment2768 does not send comment or remote links to issues already closed2769 does not send comment or remote links to issues with unknown resolution2770 references the GitLab commit2771 references the GitLab commit2772 logs exception when transition id is not valid2773 calls the api with jira_issue_transition_id2774 when have multiple transition ids2775 calls the api with transition ids separated by comma2776 calls the api with transition ids separated by semicolon2777 #test_settings2778 when the test succeeds2779 tries to get Jira project with URL when API URL not set2780 returns correct result2781 tries to get Jira project with API URL if set2782 when the test fails2783 returns result with the error2784 Stored password invalidation2785 when a password was previously set2786 does not reset password if username changed2787 does not reset password if new url is set together with password, even if it's the same password2788 resets password if url changed, even if setter called multiple times2789 when only web url present2790 reset password if url changed2791 reset password if url not changed but api url added2792 when both web and api url present2793 reset password if api url changed2794 does not reset password if url changed2795 reset password if api url set to empty2796 when no password was previously set2797 saves password if new url is set together with password2798 description and title2799 when it is not set2800 default values are returned2801 when it is set in properties2802 values from properties are returned2803 when it is in title & description fields2804 values from title and description fields are returned2805 when it is in both properites & title & description fields2806 values from title and description fields are returned2807 additional cookies2808 provides additional cookies to allow basic auth with oracle webgate2809 is initialized2810 project and issue urls2811 removes trailing slashes from url2812 when gitlab.yml was initialized2813 is prepopulated with the settings2814 favicon urls2815 includes the standard favicon2816 includes returns the custom favicon2817 generating external URLs2818 #issues_url2819 handles trailing slashes2820 #new_issue_url2821 handles trailing slashes2822MergeRequests::SquashService2823 #execute2824 when there is only one commit in the merge request2825 returns that commit SHA2826 does not perform any git actions2827 when squashing only new files2828 returns the squashed commit SHA2829 cleans up the temporary directory2830 does not keep the branch push event2831 when there is a single commit in the merge request2832 will skip performing the squash, as the outcome would be the same2833 will still perform the squash when a custom squash commit message has been provided2834 the squashed commit2835 copies the author info from the merge request2836 sets the current user as the committer2837 has the same diff as the merge request, but a different SHA2838 has a default squash commit message if no message was provided2839 if a message was provided2840 has the same message as the message provided2841 when squashing with files too large to display2842 returns the squashed commit SHA2843 cleans up the temporary directory2844 does not keep the branch push event2845 when there is a single commit in the merge request2846 will skip performing the squash, as the outcome would be the same2847 will still perform the squash when a custom squash commit message has been provided2848 the squashed commit2849 copies the author info from the merge request2850 sets the current user as the committer2851 has the same diff as the merge request, but a different SHA2852 has a default squash commit message if no message was provided2853 if a message was provided2854 has the same message as the message provided2855 git errors2856 with gitaly enabled2857 logs the stage and output2858 returns an error2859 when any other exception is thrown2860 logs the MR reference and exception2861 returns an error2862 cleans up the temporary directory2863EnvironmentSerializer2864 when there is a single object provided2865 contains important elements of environment2866 contains relevant information about last deployment2867 when there is a collection of objects provided2868 contains important elements of environment2869 generates payload for collection2870 when representing environments within folders2871 when there is a single environment2872 represents one standalone environment2873 when there are multiple environments in folder2874 represents one item that is a folder2875 when there are multiple folders and standalone environments2876 represents multiple items grouped within folders2877 when used with pagination2878 creates a paginated serializer2879 when resource is paginatable relation2880 when there is a single environment object in relation2881 serializes environments2882 when multiple environment objects are serialized2883 serializes appropriate number of objects2884 appends relevant headers2885 when grouping environments within folders2886 paginates grouped items including ordering2887 appends correct total page count header2888 appends correct page count headers2889Issues::BuildService2890 for a single discussion2891 #execute2892 references the noteable title in the issue title2893 adds the note content to the description2894 for discussions in a merge request2895 #items_for_discussions2896 has an item for each discussion2897 #item_for_discussion2898 mentions the author of the note2899 wraps the note in a blockquote2900 #execute2901 uses provided title if title param given2902 uses provided description if description param given2903 without additional params2904 has the merge request reference in the title2905 has the reference of the merge request in the description2906 with multiple discussions2907 mentions all the authors in the description2908 has a link for each unresolved discussion in the description2909 mentions additional notes2910 For a merge request without discussions2911 #execute2912 mentions the merge request in the description2913 #execute2914 builds a new issues with given params2915 sets milestone to nil if it is not available for the project2916SentNotification2917 validation2918 note validity2919 when the project doesn't match the noteable's project2920 is invalid2921 when the project doesn't match the discussion project2922 is invalid2923 when the noteable project and discussion project match2924 is valid2925 .record2926 behaves like a successful sent notification2927 creates a new SentNotification2928 .record_note2929 for a discussion note2930 sets in_reply_to_discussion_id2931 behaves like a successful sent notification2932 creates a new SentNotification2933 for an individual note2934 does not set in_reply_to_discussion_id2935 behaves like a successful sent notification2936 creates a new SentNotification2937 #unsubscribable?2938 behaves like an unsubscribable notification2939 for issue2940 should be unsubscribable2941 behaves like an unsubscribable notification2942 for merge request2943 should be unsubscribable2944 behaves like a non-unsubscribable notification2945 for a commit2946 should not be unsubscribable2947 behaves like a non-unsubscribable notification2948 for a personal snippet2949 should not be unsubscribable2950 behaves like a non-unsubscribable notification2951 for a project snippet2952 should not be unsubscribable2953 #for_commit?2954 behaves like a non-commit notification2955 for a issue2956 should not be for commit2957 behaves like a non-commit notification2958 for a merge request2959 should not be for commit2960 behaves like a commit notification2961 for commit2962 should be for commit2963 behaves like a non-commit notification2964 for a personal snippet2965 should not be for commit2966 behaves like a non-commit notification2967 for a project snippet2968 should not be for commit2969 #for_snippet?2970 behaves like a non-snippet notification2971 for a issue2972 should not be for snippet2973 behaves like a non-snippet notification2974 for a merge request2975 should not be for snippet2976 behaves like a non-snippet notification2977 for a commit2978 should not be for snippet2979 behaves like a snippet notification2980 for personal snippet2981 should be for snippet2982 behaves like a snippet notification2983 for project snippet2984 should be for snippet2985 #create_reply2986 for issue2987 creates a comment on the issue2988 for issue comment2989 creates a comment on the issue2990 for issue discussion2991 creates a reply on the discussion2992 for merge request2993 creates a comment on the merge_request2994 for merge request comment2995 creates a comment on the merge request2996 for merge request diff discussion2997 creates a reply on the discussion2998 for merge request non-diff discussion2999 creates a reply on the discussion3000 for commit3001 creates a comment on the commit3002 for commit comment3003 creates a comment on the commit3004 for commit diff discussion3005 creates a reply on the discussion3006 for commit non-diff discussion3007 creates a reply on the discussion3008Gitlab::Cache::Ci::ProjectPipelineStatus3009 .load_for_project3010 loads the status3011 loading in batches3012 .load_in_batch_for_projects3013 loads pipeline_status on projects3014 loads 10 projects without hitting Gitaly call limit3015 .update_for_pipeline3016 refreshes the cache if nescessary3017 #has_status?3018 is false when the status wasn't loaded yet3019 is true when all status information was loaded3020 #load_status3021 loads the status from the cache when there is one3022 loads the status from the project commit when there is no cache3023 stores the status in the cache when it loading it from the project3024 sets the state to loaded3025 only loads the status once3026 #load_from_project3027 reads the status from the pipeline for the commit3028 doesn't fail for an empty project3029 #store_in_cache3030 sets the object in caching3031 #store_in_cache_if_needed3032 stores the state in the cache when the sha is the HEAD of the project3033 doesn't store the status in redis_cache when the sha is not the head of the project3034 deletes the cache if the repository doesn't have a head commit3035 with a status in caching3036 #load_from_cache3037 reads the status from redis_cache3038 when status is empty string3039 reads the status as nil3040 #has_cache?3041 knows the status is cached3042 #delete_from_cache3043 deletes values from redis_cache3044Gitlab::TreeSummary3045 #initialize3046 defaults offset to 03047 defaults limit to 253048 #summarize3049 returns an array of entries, and an array of commits3050 #summarize (entries)3051 summarizes the entries within the window3052 references the commit and commit path in entries3053 in a good subdirectory3054 summarizes the entries in the subdirectory3055 in a non-existent subdirectory3056 should be empty3057 custom offset and limit3058 returns entries from the offset3059 #summarize (commits)3060 returns an Array of ::Commit objects3061 deduplicates commits when multiple entries reference the same commit3062 in a subdirectory3063 returns commits for entries in the subdirectory3064 #more?3065 num_entries: 0, offset: 0, limit: 0, expected_result: false3066 should eq false3067 num_entries: 0, offset: 0, limit: 1, expected_result: false3068 should eq false3069 num_entries: 1, offset: 0, limit: 0, expected_result: true3070 should eq true3071 num_entries: 1, offset: 0, limit: 1, expected_result: false3072 should eq false3073 num_entries: 1, offset: 1, limit: 0, expected_result: false3074 should eq false3075 num_entries: 1, offset: 1, limit: 1, expected_result: false3076 should eq false3077 num_entries: 2, offset: 0, limit: 0, expected_result: true3078 should eq true3079 num_entries: 2, offset: 0, limit: 1, expected_result: true3080 should eq true3081 num_entries: 2, offset: 0, limit: 2, expected_result: false3082 should eq false3083 num_entries: 2, offset: 0, limit: 3, expected_result: false3084 should eq false3085 num_entries: 2, offset: 1, limit: 0, expected_result: true3086 should eq true3087 num_entries: 2, offset: 1, limit: 1, expected_result: false3088 should eq false3089 num_entries: 2, offset: 2, limit: 0, expected_result: false3090 should eq false3091 num_entries: 2, offset: 2, limit: 1, expected_result: false3092 should eq false3093 #next_offset3094 num_entries: 0, offset: 0, limit: 0, expected_result: 03095 should eq 03096 num_entries: 0, offset: 0, limit: 1, expected_result: 13097 should eq 13098 num_entries: 0, offset: 1, limit: 0, expected_result: 13099 should eq 13100 num_entries: 0, offset: 1, limit: 1, expected_result: 13101 should eq 13102 num_entries: 1, offset: 0, limit: 0, expected_result: 03103 should eq 03104 num_entries: 1, offset: 0, limit: 1, expected_result: 13105 should eq 13106 num_entries: 1, offset: 1, limit: 0, expected_result: 13107 should eq 13108 num_entries: 1, offset: 1, limit: 1, expected_result: 23109 should eq 23110DeprecatedAssignee3111 #assignee_id=3112 creates the merge_request_assignees relation3113 nullifies the assignee_id column3114 when relation already exists3115 overwrites existing assignees3116 #assignee=3117 creates the merge_request_assignees relation3118 nullifies the assignee_id column3119 when relation already exists3120 overwrites existing assignees3121 #assignee_id3122 returns the first assignee ID3123 #assignees3124 when assignee_id exists and there is no relation3125 creates the relation3126 nullifies the assignee_id3127 when DB is read-only3128 returns a users relation3129 returns an empty relation if no assignee_id is set3130 #assignee_ids3131 when assignee_id exists and there is no relation3132 creates the relation3133 nullifies the assignee_id3134 when DB is read-only3135 returns a list of user IDs3136 returns an empty relation if no assignee_id is set3137Ci::LegacyStage3138 #expectations3139 should includes the StaticModel module3140 should respond to #pipeline3141 should respond to #name3142 should delegate #project to the #pipeline object3143 #statuses3144 returns only matching statuses3145 #groups3146 returns an array of three groups3147 returns groups with correctly ordered statuses3148 returns groups with correct names3149 when a name is nil on legacy pipelines3150 returns an array of three groups3151 #statuses_count3152 counts statuses only from current stage3153 #builds3154 returns only builds3155 #status3156 if status is already defined3157 returns defined status3158 if status has to be calculated3159 returns status of a build3160 and builds are retried3161 returns status of latest build3162 #detailed_status3163 when build is created3164 returns detailed status for created stage3165 when build is pending3166 returns detailed status for pending stage3167 when build is running3168 returns detailed status for running stage3169 when build is successful3170 returns detailed status for successful stage3171 when build is failed3172 returns detailed status for failed stage3173 when build is canceled3174 returns detailed status for canceled stage3175 when build is skipped3176 returns detailed status for skipped stage3177 #success?3178 when stage is successful3179 is successful3180 when stage is not successful3181 is not successful3182 #has_warnings?3183 when stage has warnings3184 when using memoized warnings flag3185 when there are warnings3186 returns true using memoized value3187 when there are no warnings3188 returns false using memoized value3189 when number of warnings is not a valid value3190 calculates statuses using database queries3191 when calculating warnings from statuses3192 has warnings calculated from statuses3193 when stage does not have warnings3194 does not have warnings calculated from statuses3195 behaves like manual playable stage3196 #manual_playable?3197 when is manual3198 should be truthy3199 when is scheduled3200 should be truthy3201 when is skipped3202 should be truthy3203MergeRequests::AssignIssuesService3204 finds unassigned issues fixed in merge request3205 ignores issues the user cannot update assignee on3206 ignores issues already assigned to any user3207 ignores all issues unless current_user is merge_request.author3208 accepts precomputed data for closes_issues3209 assigns these to the merge request owner3210 ignores external issues3211Avatarable3212 #update3213 when avatar changed3214 validates the file size3215 when avatar was not changed3216 skips validation of file size3217 #avatar_path3218 with caching enabled3219 only calls local_url once3220 calls local_url twice for path and URLs3221 calls local_url twice for different sizes3222 handles unpersisted objects3223 has_asset_host: true, visibility_level: 0, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3224 returns the expected avatar path3225 returns the expected avatar path with width parameter3226 when avatar is stored remotely3227 returns the expected avatar path3228 has_asset_host: true, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3229 returns the expected avatar path3230 returns the expected avatar path with width parameter3231 when avatar is stored remotely3232 returns the expected avatar path3233 has_asset_host: true, visibility_level: 10, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3234 returns the expected avatar path3235 returns the expected avatar path with width parameter3236 when avatar is stored remotely3237 returns the expected avatar path3238 has_asset_host: true, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3239 returns the expected avatar path3240 returns the expected avatar path with width parameter3241 when avatar is stored remotely3242 returns the expected avatar path3243 has_asset_host: true, visibility_level: 20, only_path: true, avatar_path_prefix: []3244 returns the expected avatar path3245 returns the expected avatar path with width parameter3246 when avatar is stored remotely3247 returns the expected avatar path3248 has_asset_host: true, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab-assets.example.com"]3249 returns the expected avatar path3250 returns the expected avatar path with width parameter3251 when avatar is stored remotely3252 returns the expected avatar path3253 has_asset_host: false, visibility_level: 0, only_path: true, avatar_path_prefix: ["/gitlab"]3254 returns the expected avatar path3255 returns the expected avatar path with width parameter3256 when avatar is stored remotely3257 returns the expected avatar path3258 has_asset_host: false, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3259 returns the expected avatar path3260 returns the expected avatar path with width parameter3261 when avatar is stored remotely3262 returns the expected avatar path3263 has_asset_host: false, visibility_level: 10, only_path: true, avatar_path_prefix: ["/gitlab"]3264 returns the expected avatar path3265 returns the expected avatar path with width parameter3266 when avatar is stored remotely3267 returns the expected avatar path3268 has_asset_host: false, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3269 returns the expected avatar path3270 returns the expected avatar path with width parameter3271 when avatar is stored remotely3272 returns the expected avatar path3273 has_asset_host: false, visibility_level: 20, only_path: true, avatar_path_prefix: ["/gitlab"]3274 returns the expected avatar path3275 returns the expected avatar path with width parameter3276 when avatar is stored remotely3277 returns the expected avatar path3278 has_asset_host: false, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3279 returns the expected avatar path3280 returns the expected avatar path with width parameter3281 when avatar is stored remotely3282 returns the expected avatar path3283Gitlab::BackgroundMigration::RemoveRestrictedTodos3284 when a project is private3285 removes todos of users without project access3286 with a confidential issue3287 removes todos of users without project access and guests for confidential issues3288 when a project is public3289 when all features have the same visibility as the project, no confidential issues3290 does not remove any todos3291 with confidential issues3292 removes confidential issue todos for non authorized users3293 features visibility restrictions3294 when issues are restricted to project members3295 removes non members issue todos3296 when merge requests are restricted to project members3297 removes non members issue todos3298 when repository and merge requests are restricted to project members3299 removes non members commit and merge requests todos3300NOTICE: table "design_management_designs" does not exist, skipping3301NOTICE: table "design_management_designs_versions" does not exist, skipping3302NOTICE: table "design_management_versions" does not exist, skipping3303NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3304Projects::AfterRenameService3305 #execute3306 using legacy storage3307 renames a repository3308 updates project full path in .git/config3309 updates storage location3310 container registry with images3311 raises a RenameFailedError3312 gitlab pages3313 moves pages folder to new location3314 attachments3315 moves uploads folder to new location3316 with hashed storage upgrade when renaming enabled3317 calls HashedStorage::MigrationService with correct options3318 using hashed storage3319 renames a repository3320 updates project full path in .git/config3321 updates storage location3322 container registry with images3323 raises a RenameFailedError3324 gitlab pages3325 moves pages folder to new location3326 attachments3327 keeps uploads folder location unchanged3328 when not rolled out3329 moves attachments folder to hashed storage3330TrendingProject3331 .refresh!3332 populates the trending projects table3333 removes existing rows before populating the table3334 stores the project IDs for every trending project3335 does not store projects that fall out of the trending time range3336 stores only public projects3337Projects::ImportExport::ExportService3338 #execute3339 saves the version3340 saves the avatar3341 saves the models3342 saves the uploads3343 saves the repo3344 saves the lfs objects3345 saves the wiki repo3346 when all saver services succeed3347 saves the project in the file system3348 calls the after export strategy3349 when after export strategy fails3350 removes the remaining exported data3351 notifies the user3352 notifies logger3353 when saver services fail3354 removes the remaining exported data3355 notifies the user3356 notifies logger3357 the after export strategy is not called3358project routing3359 ProjectsController routing3360 to #create3361 to #new3362 to #edit3363 to #update3364 to #destroy3365 to #preview_markdown3366 to #resolve3367 to #show3368 regular name3369 should route {:get=>"/gitlab/gitlabhq"} to {:namespace_id=>"gitlab", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3370 name with dot3371 should route {:get=>"/gitlab/gitlabhq.keys"} to {:namespace_id=>"gitlab", :id=>"gitlabhq.keys", :controller=>"projects", :action=>"show"}3372 with nested group3373 should route {:get=>"/gitlab/subgroup/gitlabhq"} to {:namespace_id=>"gitlab/subgroup", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3374 Projects::AutocompleteSourcesController routing3375 to #members3376 to #issues3377 to #merge_requests3378 to #labels3379 to #milestones3380 to #commands3381 to #snippets3382 behaves like redirecting a legacy project path3383 redirects /gitlab/gitlabhq/autocomplete_sources/labels to /gitlab/gitlabhq/-/autocomplete_sources/labels3384 Projects::WikisController routing3385 to #pages3386 to #history3387 behaves like RESTful project resources3388 to #index3389 to #create3390 to #new3391 to #edit3392 to #show3393 to #update3394 to #destroy3395 Projects::RepositoriesController routing3396 to #archive format:zip3397 to #archive format:tar.bz23398 to #archive with "/" in route3399 to #archive_alternative3400 to #archive_deprecated3401 to #archive_deprecated format:zip3402 to #archive_deprecated format:tar.bz23403 to #archive_deprecated with "/" in route3404 Projects::BranchesController routing3405 to #branches3406 behaves like redirecting a legacy project path3407 redirects /gitlab/gitlabhq/branches to /gitlab/gitlabhq/-/branches3408 Projects::TagsController routing3409 to #tags3410 Projects::DeployKeysController routing3411 behaves like RESTful project resources3412 to #index3413 to #create3414 to #new3415 to #edit3416 to #show3417 to #update3418 to #destroy3419 behaves like redirecting a legacy project path3420 redirects /gitlab/gitlabhq/deploy_keys to /gitlab/gitlabhq/-/deploy_keys3421 Projects::ProtectedBranchesController routing3422 behaves like RESTful project resources3423 to #index3424 to #create3425 to #new3426 to #edit3427 to #show3428 to #update3429 to #destroy3430 Projects::RefsController routing3431 to #switch3432 to #logs_tree3433 Projects::MergeRequestsController routing3434 to #commits3435 to #pipelines3436 to #merge3437 to #show3438 behaves like RESTful project resources3439 to #index3440 to #create3441 to #new3442 to #edit3443 to #show3444 to #update3445 to #destroy3446 Projects::MergeRequests::CreationsController routing3447 to #new3448 to #create3449 to #branch_from3450 to #branch_to3451 to #pipelines3452 to #diffs3453 Projects::MergeRequests::DiffsController routing3454 to #show3455 Projects::MergeRequests::ConflictsController routing3456 to #show3457 SnippetsController routing3458 to #raw3459 to #index3460 to #create3461 to #new3462 to #edit3463 to #show3464 to #update3465 to #destroy3466 Projects::HooksController routing3467 to #test3468 behaves like RESTful project resources3469 to #index3470 to #create3471 to #new3472 to #edit3473 to #show3474 to #update3475 to #destroy3476 Projects::HookLogsController routing3477 to #retry3478 to #show3479 Projects::CommitController routing3480 to #show3481 Projects::CommitsController routing3482 to #show3483 behaves like RESTful project resources3484 to #index3485 to #create3486 to #new3487 to #edit3488 to #show3489 to #update3490 to #destroy3491 Projects::ProjectMembersController routing3492 behaves like RESTful project resources3493 to #index3494 to #create3495 to #new3496 to #edit3497 to #show3498 to #update3499 to #destroy3500 behaves like redirecting a legacy project path3501 redirects /gitlab/gitlabhq/project_members to /gitlab/gitlabhq/-/project_members3502 Projects::MilestonesController routing3503 to #promote3504 behaves like RESTful project resources3505 to #index3506 to #create3507 to #new3508 to #edit3509 to #show3510 to #update3511 to #destroy3512 behaves like redirecting a legacy project path3513 redirects /gitlab/gitlabhq/milestones to /gitlab/gitlabhq/-/milestones3514 Projects::LabelsController routing3515 to #index3516 behaves like redirecting a legacy project path3517 redirects /gitlab/gitlabhq/labels to /gitlab/gitlabhq/-/labels3518 Projects::IssuesController routing3519 to #bulk_update3520 behaves like RESTful project resources3521 to #index3522 to #create3523 to #new3524 to #edit3525 to #show3526 to #update3527 to #destroy3528 Projects::NotesController routing3529 to #index3530 behaves like RESTful project resources3531 to #index3532 to #create3533 to #new3534 to #edit3535 to #show3536 to #update3537 to #destroy3538 Projects::BlameController routing3539 to #show3540 Projects::BlobController routing3541 to #show3542 Projects::TreeController routing3543 to #show3544 Projects::FindFileController routing3545 to #show3546 to #list3547 Projects::BlobController routing3548 to #edit3549 to #preview3550 Projects::CompareController routing3551 to #index3552 to #compare3553 to #show3554 Projects::NetworkController routing3555 to #show3556 behaves like redirecting a legacy project path3557 redirects /gitlab/gitlabhq/network/master to /gitlab/gitlabhq/-/network/master3558 Projects::GraphsController routing3559 to #show3560 behaves like redirecting a legacy project path3561 redirects /gitlab/gitlabhq/graphs/master to /gitlab/gitlabhq/-/graphs/master3562 Projects::ForksController routing3563 to #new3564 to #create3565 behaves like redirecting a legacy project path3566 redirects /gitlab/gitlabhq/forks to /gitlab/gitlabhq/-/forks3567 Projects::AvatarsController routing3568 to #destroy3569 behaves like redirecting a legacy project path3570 redirects /gitlab/gitlabhq/avatar to /gitlab/gitlabhq/-/avatar3571 Projects::PagesDomainsController routing3572 to #destroy with a valid domain name3573 to #show with a valid domain3574 behaves like RESTful project resources3575 to #index3576 to #create3577 to #new3578 to #edit3579 to #show3580 to #update3581 to #destroy3582 Projects::Registry::TagsController routing3583 #destroy3584 correctly routes to a destroy action3585 takes registry tag name constrains into account3586 Projects::Settings::RepositoryController routing3587 to #show3588 behaves like redirecting a legacy project path3589 redirects /gitlab/gitlabhq/settings/repository to /gitlab/gitlabhq/-/settings/repository3590 Projects::TemplatesController routing3591 #show3592 routes when :template_type is `merge_request`3593 routes when :template_type is `issue`3594 routes to application#route_not_found when :template_type is unknown3595 Projects::DeployTokensController routing3596 routes to deploy_tokens#revoke3597EachBatch3598 .each_batch3599 behaves like each_batch handling3600 yields an ActiveRecord::Relation when a block is given3601 yields a batch index as the second argument3602 accepts a custom batch size3603 does not include ORDER BYs in the yielded relations3604 allows updating of the yielded relations3605 behaves like each_batch handling3606 yields an ActiveRecord::Relation when a block is given3607 yields a batch index as the second argument3608 accepts a custom batch size3609 does not include ORDER BYs in the yielded relations3610 allows updating of the yielded relations3611Discussions::ResolveService3612 #execute3613 doesn't resolve discussions the user can't resolve3614 resolves the discussion3615 executes the notification service3616 adds a system note to the discussion3617 can resolve multiple discussions at once3618Issues::DuplicateService3619 #execute3620 when the issues passed are the same3621 does nothing3622 when the user cannot update the duplicate issue3623 does nothing3624 when the user cannot comment on the canonical issue3625 does nothing3626 when the user can mark the issue as a duplicate3627 closes the duplicate issue3628 adds a system note to the duplicate issue3629 adds a system note to the canonical issue3630StuckMergeJobsWorker3631 perform3632 merge job identified as completed3633 updates merge request to merged when locked but has merge_commit_sha3634 updates merge request to opened when locked but has not been merged3635 logs updated stuck merge job ids3636 merge job not identified as completed3637 does not change merge request state when job is not completed yet3638Gitlab::CycleAnalytics::BaseEventFetcher3639 limits the rows to the max number3640UserInteractedProject3641 should validate that :project_id cannot be empty/falsy3642 should validate that :user_id cannot be empty/falsy3643 .track3644 sets project accordingly3645 sets user accordingly3646 only creates a record once per user/project3647 for all actions (event types)3648 creates a record3649 for all actions (event types)3650 creates a record3651 for all actions (event types)3652 creates a record3653 for all actions (event types)3654 creates a record3655 for all actions (event types)3656 creates a record3657 for all actions (event types)3658 creates a record3659 for all actions (event types)3660 creates a record3661 for all actions (event types)3662 creates a record3663 for all actions (event types)3664 creates a record3665 for all actions (event types)3666 creates a record3667 for all actions (event types)3668 creates a record3669 with an event without a project3670 ignores the event3671 .available?3672 checks schema version and properly caches positive result3673Clusters::Applications::CheckIngressIpAddressService3674 #execute3675 when the ingress ip address is available3676 updates the external_ip for the app3677 when the ingress external hostname is available3678 updates the external_hostname for the app3679 when the ingress ip address is not available3680 does not error3681 when the exclusive lease cannot be obtained3682 does not call kubeclient3683 #execute3684 when the ingress ip address is available3685 updates the external_ip for the app3686 when the ingress external hostname is available3687 updates the external_hostname for the app3688 when the ingress ip address is not available3689 does not error3690 when the exclusive lease cannot be obtained3691 does not call kubeclient3692ForkNetwork3693 #add_root_as_member3694 adds the root project as a member when creating a new root network3695 #find_fork_in3696 finds all fork of the current network in al collection3697 #merge_requests3698 finds merge requests within the fork network3699 for a deleted project3700 keeps the fork network3701 allows multiple fork networks where the root project is deleted3702Deployable3703 #create_deployment3704 when the deployable object will deploy to production3705 creates a deployment and environment record3706 when the deployable object will deploy to a cluster3707 creates a deployment with cluster association3708 when the deployable object will stop an environment3709 does not create a deployment record3710 when the deployable object has already had a deployment3711 does not create a new deployment3712 when the deployable object will not deploy3713 does not create a deployment and environment record3714 when environment scope contains invalid character3715 does not create a deployment and environment record3716UpdateHeadPipelineForMergeRequestWorker3717 #perform3718 when pipeline exists for the source project and branch3719 updates the head_pipeline_id of the merge_request3720 when merge request sha does not equal pipeline sha3721 does not update head pipeline3722 when pipeline does not exist for the source project and branch3723 does not update the head_pipeline_id of the merge_request3724 when a merge request pipeline exists3725 sets the merge request pipeline as the head pipeline3726 when branch pipeline exists3727 prioritizes the merge request pipeline as the head pipeline3728Gitlab::Auth::Saml::User3729 #save3730 account exists on server3731 and should bind with SAML3732 adds the SAML identity to the existing user3733 external groups3734 are defined3735 marks the user as external3736 are defined but the user does not belong there3737 does not mark the user as external3738 user was external, now should not be3739 makes user internal3740 no account exists on server3741 external groups3742 are defined3743 marks the user as external3744 are defined but the user does not belong there3745 does not mark the user as external3746 with auto_link_ldap_user disabled (default)3747 with allow_single_sign_on enabled3748 creates a user from SAML3749 with allow_single_sign_on default (["saml"])3750 does not throw an error3751 with allow_single_sign_on disabled3752 throws an error3753 with auto_link_ldap_user enabled3754 and at least one LDAP provider is defined3755 and a corresponding LDAP person3756 and no account for the LDAP user3757 creates a user with dual LDAP and SAML identities3758 and LDAP user has an account already3759 adds the omniauth identity to the LDAP account3760 saves successfully on subsequent tries, when both identities are present3761 when uid is an uid3762 behaves like find LDAP person3763 adds the omniauth identity to the LDAP account3764 when uid is a dn3765 behaves like find LDAP person3766 adds the omniauth identity to the LDAP account3767 when uid is an email3768 behaves like find LDAP person3769 adds the omniauth identity to the LDAP account3770 user has SAML user, and wants to add their LDAP identity3771 adds the LDAP identity to the existing SAML user3772 when signup is disabled3773 creates the user3774 when user confirmation email is enabled3775 creates and confirms the user anyway3776 blocking3777 signup with SAML only3778 dont block on create3779 does not block the user3780 block on create3781 blocks user3782 sign-in3783 dont block on create3784 should not be blocked3785 block on create3786 should not be blocked3787 #find_user3788 raw info hash attributes empty3789 does not mark user as external3790 #bypass_two_factor?3791 with authn_contexts_worth_two_factors configured3792 returns true when authn_context is worth two factors3793 returns false when authn_context is not worth two factors3794 returns false when authn_context is blank3795 without auth_contexts_worth_two_factors_configured3796 returns false when authn_context is present3797 returns false when authn_context is blank3798ClusterablePresenter3799 .fabricate3800 creates an object from a descendant presenter3801 #can_create_cluster?3802 when clusterable is a group3803 behaves like appropriate member permissions3804 with a developer3805 should be falsy3806 with a maintainer3807 should be truthy3808 when clusterable is a project3809 behaves like appropriate member permissions3810 with a developer3811 should be falsy3812 with a maintainer3813 should be truthy3814 #can_add_cluster?3815 when clusterable is a group3816 behaves like appropriate member permissions3817 with a developer3818 should be falsy3819 with a maintainer3820 should be truthy3821 when clusterable is a project3822 behaves like appropriate member permissions3823 with a developer3824 should be falsy3825 with a maintainer3826 should be truthy3827Gitlab::Ci::Status::Factory3828 when object has a core status3829 when simple core status is created3830 fabricates a core status created3831 matches a valid core status for created3832 does not match any extended statuses for created3833 when simple core status is preparing3834 fabricates a core status preparing3835 matches a valid core status for preparing3836 does not match any extended statuses for preparing3837 when simple core status is pending3838 fabricates a core status pending3839 matches a valid core status for pending3840 does not match any extended statuses for pending3841 when simple core status is running3842 fabricates a core status running3843 matches a valid core status for running3844 does not match any extended statuses for running3845 when simple core status is success3846 fabricates a core status success3847 matches a valid core status for success3848 does not match any extended statuses for success3849 when simple core status is failed3850 fabricates a core status failed3851 matches a valid core status for failed3852 does not match any extended statuses for failed3853 when simple core status is canceled3854 fabricates a core status canceled3855 matches a valid core status for canceled3856 does not match any extended statuses for canceled3857 when simple core status is skipped3858 fabricates a core status skipped3859 matches a valid core status for skipped3860 does not match any extended statuses for skipped3861 when simple core status is manual3862 fabricates a core status manual3863 matches a valid core status for manual3864 does not match any extended statuses for manual3865 when simple core status is scheduled3866 fabricates a core status scheduled3867 matches a valid core status for scheduled3868 does not match any extended statuses for scheduled3869 when resource supports multiple extended statuses3870 when exclusive statuses are matches3871 does not fabricate compound decorator3872 delegates to core status3873 matches correct core status3874 matches correct extended statuses3875 when exclusive statuses are not matched3876 behaves like compound decorator factory3877 fabricates compound decorator3878 delegates to core status3879 latest matches status becomes a status name3880 matches correct core status3881 matches correct extended statuses3882 when using simplified status grouping3883 behaves like compound decorator factory3884 fabricates compound decorator3885 delegates to core status3886 latest matches status becomes a status name3887 matches correct core status3888 matches correct extended statuses3889Gitlab::Git::RuggedImpl::UseRugged3890 #execute_rugged_call3891 instruments Rugged call3892 when feature flag is not persisted3893 returns true when gitaly matches disk3894 returns false when disk access fails3895 returns false when gitaly doesn't match disk3896 doesn't lead to a second rpc call because gitaly client should use the cached value3897 when feature flag is persisted3898 returns false when the feature flag is off3899 returns true when feature flag is on3900Gitlab::BackgroundMigration::BackfillHashedProjectRepositories3901 behaves like backfill migration for project repositories3902 #perform3903 creates a project_repository row for projects on hashed storage that needs one3904 does nothing for projects on hashed storage that have already a project_repository row3905 does nothing for projects on legacy storage3906 inserts rows in a single query3907NOTICE: table "design_management_designs" does not exist, skipping3908NOTICE: table "design_management_designs_versions" does not exist, skipping3909NOTICE: table "design_management_versions" does not exist, skipping3910NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3911StageSerializer3912 #represent3913 with a single entity3914 serializes the stage object3915 with an array of entities3916 serializes the array of pipelines3917Gitlab::LegacyGithubImport::BranchFormatter3918 #exists?3919 returns true when branch exists and commit is part of the branch3920 returns false when branch exists and commit is not part of the branch3921 returns false when branch does not exist3922 #repo3923 returns raw repo3924 #sha3925 returns raw sha3926 #valid?3927 returns true when raw sha and ref are present3928 returns false when raw sha is blank3929 returns false when raw ref is blank3930FileMover3931 #execute3932 local storage3933 when move and field update successful3934 updates the description correctly3935 updates existing upload record3936 schedules a background migration3937 when update_markdown fails3938 does not update the description3939 does not change the upload record3940 when tmp uploader is not local storage3941 when move and field update successful3942 updates the description correctly3943 creates new target upload record an delete the old upload3944 when update_markdown fails3945 does not update the description3946 does not change the upload record3947 security3948 when relative path is involved3949 does not trigger move if path is outside designated directory3950 when symlink is involved3951 does not trigger move if path is outside designated directory3952Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig3953 Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::Storage::HashedProject3954 has the correct disk_path3955 Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::Storage::LegacyProject3956 has the correct disk_path3957 Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::Project3958 #full_path3959 returns path containing all parent namespaces3960 raises OrphanedNamespaceError when any parent namespace does not exist3961 Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::Up3962 #perform3963 asks the gitaly client to set config3964 Gitlab::BackgroundMigration::BackfillProjectFullpathInRepoConfig::Down3965 #perform3966 asks the gitaly client to set config3967NOTICE: table "design_management_designs" does not exist, skipping3968NOTICE: table "design_management_designs_versions" does not exist, skipping3969NOTICE: table "design_management_versions" does not exist, skipping3970NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3971Gitlab::Database::Count::ReltuplesCountStrategy3972 #count3973 when reltuples is up to date3974unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.3975unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.3976 uses statistics to do the count3977 when models using single-type inheritance are used3978 returns nil counts for inherited tables3979 insufficient permissions3980 returns an empty hash3981projects/pages_domains/show3982 when auto_ssl is enabled3983 when domain is disabled3984 shows verification warning3985 when certificate is absent3986 shows alert about time of obtaining certificate3987 when certificate is present3988 shows certificate info3989 when auto_ssl is disabled3990 when certificate is present3991 shows certificate info3992 when certificate is absent3993 shows missing certificate3994SlackSlashCommandsService3995 behaves like chat slash commands service3996 Associations3997 should respond to #token3998 should have many chat_names3999 #valid_token?4000 when the token is empty4001 is false4002 when there is a token4003 accepts equal tokens4004 #trigger4005 no token is passed4006 returns nil4007 with a token passed4008 no user can be found4009 when no url can be generated4010 responds with the authorize url4011 when an auth url can be generated4012 generates the url4013 when the user is authenticated4014 triggers the command4015 when user is blocked4016 blocks command execution4017 #trigger4018 when an auth url is generated4019 uses slack compatible links4020 #chat_responder4021 returns the responder to use for Slack4022GroupMembersFinder#execute4023 returns members for top-level group4024 returns members for nested group4025 returns members for descendant groups if requested4026ScheduleCalculateWikiSizes4027 when missing wiki sizes exist4028DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ee/lib/gitlab/database/migration_helpers.rb:992)4029 schedules a background migration4030DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ee/lib/gitlab/database/migration_helpers.rb:992)4031 calculates missing wiki sizes4032 when missing wiki sizes do not exist4033 does not schedule a background migration4034NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4035Autocomplete::ProjectFinder4036 #execute4037 without a project ID4038 returns nil4039 with an empty String as the project ID4040 returns nil4041 with a project ID4042 raises ActiveRecord::RecordNotFound if the project does not exist4043 raises ActiveRecord::RecordNotFound if the user can not read the project4044 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project4045 returns the project if it exists and is readable4046Members::RequestAccessService4047 when source is nil4048 behaves like a service raising Gitlab::Access::AccessDeniedError4049 raises Gitlab::Access::AccessDeniedError4050 when current user cannot request access to the project4051 behaves like a service raising Gitlab::Access::AccessDeniedError4052 raises Gitlab::Access::AccessDeniedError4053 behaves like a service raising Gitlab::Access::AccessDeniedError4054 raises Gitlab::Access::AccessDeniedError4055 when access requests are disabled4056 behaves like a service raising Gitlab::Access::AccessDeniedError4057 raises Gitlab::Access::AccessDeniedError4058 behaves like a service raising Gitlab::Access::AccessDeniedError4059 raises Gitlab::Access::AccessDeniedError4060 when current user can request access to the project4061 behaves like a service creating a access request4062 succeeds4063 returns a <Source>Member4064 behaves like a service creating a access request4065 succeeds4066 returns a <Source>Member4067Gitlab::JobWaiter4068 .notify4069 pushes the jid to the named queue4070 #wait4071 returns when all jobs have been completed4072 times out if not all jobs complete4073Ci::VariablePresenter4074 inherits from Gitlab::View::Presenter::Delegated4075 #initialize4076 takes a variable and optional params4077 exposes variable4078 forwards missing methods to variable4079 #placeholder4080 should eq "PROJECT_VARIABLE"4081 #form_path4082 should eq "/namespace1163/project1200/-/settings/ci_cd"4083 #edit_path4084 should eq "/namespace1164/project1201/variables"4085 #delete_path4086 should eq "/namespace1165/project1202/variables"4087Gitlab::Git::Patches::CommitPatches4088 #commit4089 applies the patches4090 updates the branch cache4091 when the repository does not exist4092 raises the correct error4093 when the patch does not apply4094 raises the correct error4095ProjectCustomAttribute4096 assocations4097 should belong to project required:4098 validations4099 should validate that :project cannot be empty/falsy4100 should validate that :key cannot be empty/falsy4101 should validate that :value cannot be empty/falsy4102 should validate that :key is case-sensitively unique within the scope of :project_id4103Gitlab::SlashCommands::Presenters::IssueSearch4104 formats the message correct4105 shows a list of results4106ButtonHelper4107 http_clone_button4108 with internal auth enabled4109 when user has a password4110 shows no tooltip4111 when user has password automatically set4112 shows the password text on the dropdown4113 with internal auth disabled4114 when user has no personal access tokens4115 has a personal access token text on the dropdown description4116 when user has personal access tokens4117 does not have a personal access token text on the dropdown description4118 when user is ldap user4119 shows no tooltip4120 ssh_button4121 without an ssh key on the user4122 shows a warning on the dropdown description4123 without an ssh key on the user and user_show_add_ssh_key_message unset4124 there is no warning on the dropdown description4125 with an ssh key on the user4126 there is no warning on the dropdown description4127 ssh and http clone buttons4128 only shows the title of any of the clone buttons when append_link is false4129 clipboard_button4130 with default options4131 when no `text` attribute is not provided4132 shows copy to clipboard button with default configuration and no text set to copy4133 when `text` attribute is provided4134 shows copy to clipboard button with provided `text` to copy4135 when `title` attribute is provided4136 shows copy to clipboard button with provided `title` as tooltip4137 with `button_text` attribute provided4138 shows copy to clipboard button with provided `button_text` as button label4139 with `hide_tooltip` attribute provided4140 shows copy to clipboard button without tooltip support4141 with `hide_button_icon` attribute provided4142 shows copy to clipboard button without tooltip support4143UsersStarProjectsFinder4144 #execute4145 as same user4146 should contain exactly #<UsersStarProject id: 2, project_id: 1241, user_id: 2365, created_at: "2019-08-23 10:57:16", updated_at: "2019-08-23 10:57:16"> and #<UsersStarProject id: 1, project_id: 1241, user_id: 2363, created_at: "2019-08-23 10:57:16", updated_at: "2019-08-23 10:57:16">4147 as other user4148 should contain exactly #<UsersStarProject id: 3, project_id: 1242, user_id: 2366, created_at: "2019-08-23 10:57:16", updated_at: "2019-08-23 10:57:16">4149 as no user4150 should contain exactly #<UsersStarProject id: 5, project_id: 1243, user_id: 2370, created_at: "2019-08-23 10:57:16", updated_at: "2019-08-23 10:57:16">4151projects/buttons/_dropdown4152 user with all abilities4153 empty repository4154 has a link to create a new file4155 does not have a link to create a new branch4156 does not have a link to create a new tag4157Ci::BuildScheduleWorker4158 when build is found4159 when build is scheduled4160 executes RunScheduledBuildService4161 when build is not scheduled4162 executes RunScheduledBuildService4163 when build is not found4164 does nothing4165Email4166 normalize email value4167 validations4168 behaves like an object with email-formated attributes4169 specifically its :email attribute4170 with a value of 'info@example.com'4171 is valid4172 with a value of 'info+test@example.com'4173 is valid4174 with a value of 'o'reilly@example.com'4175 is valid4176 with a value of 'mailto:test@example.com'4177 is valid4178 with a value of 'lol!'+=?><#$%^&*()@gmail.com'4179 is valid4180 with a value of 'foobar'4181 is invalid4182 with a value of 'test@test@example.com'4183 is invalid4184 #update_invalid_gpg_signatures4185 synchronizes the gpg keys when the email is updated4186 scopes4187 scopes confirmed emails4188 delegation4189 delegates to :user4190ScheduleFillValidTimeForPagesDomainCertificates4191DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ee/lib/gitlab/database/migration_helpers.rb:992)4192 correctly schedules background migrations4193DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in queue_background_migration_jobs_by_range_at_intervals at /builds/gitlab-org/gitlab-ee/lib/gitlab/database/migration_helpers.rb:992)4194 sets certificate valid_not_before/not_after4195NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4196Gitlab::Prometheus::Queries::DeploymentQuery4197 sends appropriate queries to prometheus4198PagesDomainSslRenewalCronWorker4199 #perform4200 enqueues a PagesDomainSslRenewalWorker for domains needing renewal4201 when letsencrypt integration is disabled4202 does nothing4203Gitlab::GithubImport::Stage::ImportPullRequestsWorker4204 #import4205 imports all the pull requests4206Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs4207 does not remove any jobs for non-chat pipelines4208 #perform!4209 removes unwanted jobs for chat pipelines4210Gitlab::Ci::Status::Build::Preparing4211 #illustration4212 should include :image, :size, :title, and :content4213 .matches?4214 when build is preparing4215 is a correct match4216 when build is not preparing4217 does not match4218tokens rake tasks4219 reset_all_email task4220 changes the incoming email token4221 reset_all_feed task4222 changes the feed token for the user4223Upload4224 assocations4225 should belong to model required:4226 validations4227 should validate that :size cannot be empty/falsy4228 should validate that :path cannot be empty/falsy4229 should validate that :model cannot be empty/falsy4230 should validate that :uploader cannot be empty/falsy4231 callbacks4232 for a file above the checksum threshold4233 schedules checksum calculation4234 for a file at or below the checksum threshold4235 calculates checksum immediately before save4236 after_destroy4237 uploader is FileUploader-based4238 calls delete_file!4239 #absolute_path4240 returns the path directly when already absolute4241 delegates to the uploader's absolute_path method4242 #calculate_checksum!4243 sets `checksum` to SHA256 sum of the file4244 sets `checksum` to nil for a non-existent file4245 #exist?4246 returns true when the file exists4247 when the file does not exist4248 returns false4249 when the record is persisted4250 sends a message to Sentry4251 increments a metric counter to signal a problem4252 when the record is not persisted4253 does not send a message to Sentry4254 does not increment a metric counter4255 #uploader_context4256 should match (a hash including {:secret => "secret", :identifier => "file.txt"})4257Gitlab::CycleAnalytics::CodeEventFetcher4258 behaves like default query config4259 has the stage attribute4260 has the projection attributes4261 has a default order4262projects/pipeline_schedules/_pipeline_schedule4263 taking ownership of schedule4264 when non-owner is signed in4265 non-owner can take ownership of pipeline4266 when owner is signed in4267 owner cannot take ownership of pipeline4268ProfilesHelper4269 #commit_email_select_options4270 returns an array with private commit email along with all the verified emails4271 #selected_commit_email4272 returns main email when commit email attribute is nil4273 returns DB stored commit_email4274 #email_provider_label4275 returns nil for users without external email4276 returns omniauth provider label for users with external attributes4277 returns the correct omniauth provider label for users with some external attributes4278 returns 'LDAP' for users with external email but no email provider4279Gitlab::Import::SetAsyncJid4280 .set_jid4281 sets the JID in Redis4282 updates the import JID of the project4283BackfillReleasesNameWithTagName4284 defaults name to tag value4285NOTICE: table "design_management_designs" does not exist, skipping4286NOTICE: table "design_management_designs_versions" does not exist, skipping4287NOTICE: table "design_management_versions" does not exist, skipping4288NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4289ClusterProvisionWorker4290 #perform4291 when provider type is gcp4292 provision a cluster4293 when provider type is user4294 does not provision a cluster4295 when cluster does not exist4296 does not provision a cluster4297EnqueueVerifyPagesDomainWorkers4298NOTICE: index "index_projects_on_lower_name" does not exist, skipping4299 #up4300 enqueues a verification worker for every domain4301NOTICE: table "design_management_designs" does not exist, skipping4302NOTICE: table "design_management_designs_versions" does not exist, skipping4303NOTICE: table "design_management_versions" does not exist, skipping4304NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4305Gitlab::GitalyClient::CleanupService4306 #apply_bfg_object_map_stream4307 sends an apply_bfg_object_map_stream message4308Gitlab::Search::Query4309 should be < SimpleDelegator4310 leaves undefined filters in the main query4311 parses filters4312 with an empty filter4313 ignores empty filters4314 with a pipe4315 does not escape the pipe4316Knapsack report was generated. Preview:4317{4318 "spec/finders/snippets_finder_spec.rb": 229.05978202819824,4319 "spec/models/gpg_key_spec.rb": 86.73019671440125,4320 "spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb": 52.16759896278381,4321 "spec/services/boards/issues/list_service_spec.rb": 47.45791482925415,4322 "spec/helpers/notes_helper_spec.rb": 36.369778633117676,4323 "spec/lib/gitlab/import_export/project_tree_restorer_spec.rb": 27.280083656311035,4324 "spec/models/project_services/jira_service_spec.rb": 22.466881275177002,4325 "spec/services/merge_requests/squash_service_spec.rb": 19.247113704681396,4326 "spec/serializers/environment_serializer_spec.rb": 17.162492990493774,4327 "spec/services/issues/build_service_spec.rb": 14.075042247772217,4328 "spec/models/sent_notification_spec.rb": 13.883825540542603,4329 "spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb": 9.954494714736938,4330 "spec/lib/gitlab/tree_summary_spec.rb": 10.53581690788269,4331 "spec/models/concerns/deprecated_assignee_spec.rb": 9.387276887893677,4332 "spec/models/ci/legacy_stage_spec.rb": 9.590884923934937,4333 "spec/services/merge_requests/assign_issues_service_spec.rb": 6.836689710617065,4334 "spec/models/concerns/avatarable_spec.rb": 8.993488550186157,4335 "spec/lib/gitlab/background_migration/remove_restricted_todos_spec.rb": 7.7610764503479,4336 "spec/services/projects/after_rename_service_spec.rb": 7.609109401702881,4337 "spec/models/trending_project_spec.rb": 5.7137322425842285,4338 "spec/services/projects/import_export/export_service_spec.rb": 5.617584943771362,4339 "spec/routing/project_routing_spec.rb": 4.563908338546753,4340 "spec/models/concerns/each_batch_spec.rb": 7.266353607177734,4341 "spec/services/discussions/resolve_service_spec.rb": 5.365185260772705,4342 "spec/services/issues/duplicate_service_spec.rb": 4.692344427108765,4343 "spec/workers/stuck_merge_jobs_worker_spec.rb": 3.922057867050171,4344 "spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb": 3.992338180541992,4345 "spec/models/user_interacted_project_spec.rb": 3.195615768432617,4346 "spec/services/clusters/applications/check_ingress_ip_address_service_spec.rb": 3.0296928882598877,4347 "spec/models/fork_network_spec.rb": 4.480137825012207,4348 "spec/models/concerns/deployable_spec.rb": 3.5960376262664795,4349 "spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb": 3.306501865386963,4350 "spec/lib/gitlab/auth/saml/user_spec.rb": 2.7360002994537354,4351 "spec/presenters/clusterable_presenter_spec.rb": 2.6569807529449463,4352 "spec/lib/gitlab/ci/status/factory_spec.rb": 2.211477279663086,4353 "spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb": 1.4598581790924072,4354 "spec/lib/gitlab/background_migration/backfill_hashed_project_repositories_spec.rb": 2.104954957962036,4355 "spec/serializers/stage_serializer_spec.rb": 2.55023193359375,4356 "spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb": 2.195333957672119,4357 "spec/uploaders/file_mover_spec.rb": 2.099623441696167,4358 "spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb": 1.8509902954101562,4359 "spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb": 2.389878988265991,4360 "spec/views/projects/pages_domains/show.html.haml_spec.rb": 1.7184560298919678,4361 "spec/models/project_services/slack_slash_commands_service_spec.rb": 1.1037592887878418,4362 "spec/finders/group_members_finder_spec.rb": 2.3848423957824707,4363 "spec/lib/gitlab/background_migration/schedule_calculate_wiki_sizes_spec.rb": 2.0734152793884277,4364 "spec/finders/autocomplete/project_finder_spec.rb": 1.5437805652618408,4365 "spec/services/members/request_access_service_spec.rb": 2.402674674987793,4366 "spec/lib/gitlab/job_waiter_spec.rb": 1.1013164520263672,4367 "spec/presenters/ci/variable_presenter_spec.rb": 1.4871089458465576,4368 "spec/lib/gitlab/git/patches/commit_patches_spec.rb": 1.4370579719543457,4369 "spec/models/project_custom_attribute_spec.rb": 1.0075523853302002,4370 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 0.642977237701416,4371 "spec/helpers/button_helper_spec.rb": 1.1366004943847656,4372 "spec/finders/users_star_projects_finder_spec.rb": 1.0472562313079834,4373 "spec/views/projects/buttons/_dropdown.html.haml_spec.rb": 0.8872852325439453,4374 "spec/workers/ci/build_schedule_worker_spec.rb": 1.0970005989074707,4375 "spec/models/email_spec.rb": 0.6963388919830322,4376 "spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb": 0.7093348503112793,4377 "spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb": 1.65055513381958,4378 "spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb": 0.7207376956939697,4379 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.2268238067626953,4380 "spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb": 0.5990853309631348,4381 "spec/lib/gitlab/ci/status/build/preparing_spec.rb": 0.651839017868042,4382 "spec/tasks/tokens_spec.rb": 0.42826104164123535,4383 "spec/models/upload_spec.rb": 0.8204190731048584,4384 "spec/lib/gitlab/cycle_analytics/code_event_fetcher_spec.rb": 1.1174225807189941,4385 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 0.6452023983001709,4386 "spec/helpers/profiles_helper_spec.rb": 0.5888848304748535,4387 "spec/lib/gitlab/import/set_async_jid_spec.rb": 0.4505629539489746,4388 "spec/migrations/backfill_releases_name_with_tag_name_spec.rb": 0.3787424564361572,4389 "spec/workers/cluster_provision_worker_spec.rb": 0.5749456882476807,4390 "spec/migrations/enqueue_verify_pages_domain_workers_spec.rb": 0.34012436866760254,4391 "spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb": 0.8902225494384766,4392 "spec/lib/gitlab/search/query_spec.rb": 0.0129182338714599614393}4394Knapsack global time execution for tests: 12m 30s4395Finished in 15 minutes 10 seconds (files took 44.13 seconds to load)43961652 examples, 0 failures4397$ date4398Fri Aug 23 10:58:30 UTC 20194400$ date4401Fri Aug 23 10:58:31 UTC 20194404coverage/: found 5 matching files 4405knapsack/: found 5 matching files 4406rspec_flaky/: found 4 matching files 4407rspec_profiling/: found 1 matching files 4408WARNING: tmp/capybara/: no matching files 4409tmp/memory_test/: found 2 matching files 4410Uploading artifacts to coordinator... ok id=278682861 responseStatus=201 Created token=Ree7n_VP4411Uploading artifacts...4412junit_rspec.xml: found 1 matching files 4413Uploading artifacts to coordinator... ok id=278682861 responseStatus=201 Created token=Ree7n_VP4414Job succeeded