rspec unit pg10 13/20
Passed Started
by
@gtsiolis
George Tsiolis
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ...
01:07
4Starting service postgres:10.9 ...5Pulling docker image postgres:10.9 ...6Using docker image sha256:897b33033d6498ba789d2ad5b305209106c8b45622b37ad135440a584ec885d3 for postgres:10.9 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:6f63d037b592589a96010cb70325c6a36a38d6cd2e66f77a0f99758475f016e1 for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ...13Using docker image sha256:dbf629168bdec73d2831ab68eb01ef26d46254f4561cefe00890b64bbe182e3e for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ... 14 Running on runner-d5ae8d25-project-4581232-concurrent-0 via runner-d5ae8d25-gsrm-1571833743-8e0cfcef...
00:08
16Initialized empty Git repository in /builds/gtsiolis/gitlab-foss/.git/17Created fresh repository.19 * [new ref] refs/pipelines/90921493 -> refs/pipelines/9092149320 * [new branch] master -> origin/master21Checking out 09ffaae1 as master...22Skipping Git submodules setup24Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/4581232/debian-stretch-ruby-2.6.3-node-12.x-7 25Successfully extracted cache27Downloading artifacts from coordinator... ok id=330157250 responseStatus=200 OK token=kawU23eE28Downloading artifacts for retrieve-tests-metadata (330157271)...29Downloading artifacts from coordinator... ok id=330157271 responseStatus=200 OK token=YyFsrTqN30Downloading artifacts for setup-test-env (330157251)...31Downloading artifacts from coordinator... ok id=330157251 responseStatus=200 OK token=kWbyW_2H32WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 34$ date35Wed Oct 23 14:04:57 UTC 201936$ export GOPATH=$CI_PROJECT_DIR/.go37$ mkdir -p $GOPATH38$ source scripts/utils.sh39$ source scripts/prepare_build.sh40Bundler version 1.17.241Warning: 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`.42The Gemfile's dependencies are satisfied43Successfully installed knapsack-1.18.0441 gem installed45CREATE ROLE46GRANT47Dropped database 'gitlabhq_test'48Created database 'gitlabhq_test'49-- enable_extension("pg_trgm")50 -> 0.0355s51-- enable_extension("plpgsql")52 -> 0.0031s53-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})54 -> 0.0072s55-- create_table("alerts_service_data", {:force=>:cascade})56 -> 0.0089s57-- create_table("allowed_email_domains", {:force=>:cascade})58 -> 0.0047s59-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})60 -> 0.0152s61-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})62 -> 0.0149s63-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})64 -> 0.0085s65-- create_table("analytics_repository_file_commits", {:force=>:cascade})66 -> 0.0070s67-- create_table("analytics_repository_file_edits", {:force=>:cascade})68 -> 0.0072s69-- create_table("analytics_repository_files", {:force=>:cascade})70 -> 0.0054s71-- create_table("appearances", {:id=>:serial, :force=>:cascade})72 -> 0.0039s73-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})74 -> 0.0028s75-- create_table("application_settings", {:id=>:serial, :force=>:cascade})76 -> 0.1047s77-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})78 -> 0.0079s79-- create_table("approval_merge_request_rules", {:force=>:cascade})80 -> 0.0181s81-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})82 -> 0.0069s83-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})84 -> 0.0069s85-- create_table("approval_merge_request_rules_users", {:force=>:cascade})86 -> 0.0068s87-- create_table("approval_project_rules", {:force=>:cascade})88 -> 0.0108s89-- create_table("approval_project_rules_groups", {:force=>:cascade})90 -> 0.0071s91-- create_table("approval_project_rules_users", {:force=>:cascade})92 -> 0.0070s93-- create_table("approvals", {:id=>:serial, :force=>:cascade})94 -> 0.0073s95-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})96 -> 0.0086s97-- create_table("approvers", {:id=>:serial, :force=>:cascade})98 -> 0.0079s99-- create_table("audit_events", {:id=>:serial, :force=>:cascade})100 -> 0.0083s101-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})102 -> 0.0082s103-- create_table("aws_roles", {:primary_key=>"user_id", :id=>:integer, :default=>nil, :force=>:cascade})104 -> 0.0073s105-- create_table("badges", {:id=>:serial, :force=>:cascade})106 -> 0.0081s107-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})108 -> 0.0072s109-- create_table("board_group_recent_visits", {:force=>:cascade})110 -> 0.0127s111-- create_table("board_labels", {:id=>:serial, :force=>:cascade})112 -> 0.0076s113-- create_table("board_project_recent_visits", {:force=>:cascade})114 -> 0.0120s115-- create_table("boards", {:id=>:serial, :force=>:cascade})116 -> 0.0112s117-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})118 -> 0.0060s119-- create_table("chat_names", {:id=>:serial, :force=>:cascade})120 -> 0.0089s121-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})122 -> 0.0055s123-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})124 -> 0.0056s125-- create_table("ci_build_trace_chunks", {:force=>:cascade})126 -> 0.0053s127-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})128 -> 0.0053s129-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})130 -> 0.0105s131-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})132 -> 0.0745s133-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})134 -> 0.0132s135-- create_table("ci_builds_runner_session", {:force=>:cascade})136 -> 0.0059s137-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})138 -> 0.0076s139-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})140 -> 0.0156s141-- create_table("ci_job_variables", {:force=>:cascade})142 -> 0.0082s143-- create_table("ci_pipeline_chat_data", {:force=>:cascade})144 -> 0.0076s145-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})146 -> 0.0063s147-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})148 -> 0.0115s149-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})150 -> 0.0062s151-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})152 -> 0.0349s153-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})154 -> 0.0072s155-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})156 -> 0.0071s157-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})158 -> 0.0201s159-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})160 -> 0.0132s161-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})162 -> 0.0131s163-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})164 -> 0.0078s165-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})166 -> 0.0075s167-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})168 -> 0.0073s169-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})170 -> 0.0071s171-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})172 -> 0.0056s173-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})174 -> 0.0069s175-- create_table("cluster_providers_aws", {:force=>:cascade})176 -> 0.0107s177-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})178 -> 0.0087s179-- create_table("clusters", {:id=>:serial, :force=>:cascade})180 -> 0.0119s181-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})182 -> 0.0054s183-- create_table("clusters_applications_elastic_stacks", {:force=>:cascade})184 -> 0.0052s185-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})186 -> 0.0055s187-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})188 -> 0.0052s189-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})190 -> 0.0078s191-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})192 -> 0.0053s193-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})194 -> 0.0053s195-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})196 -> 0.0079s197-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})198 -> 0.0164s199-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})200 -> 0.0074s201-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})202 -> 0.0072s203-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})204 -> 0.0054s205-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})206 -> 0.0052s207-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})208 -> 0.0051s209-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})210 -> 0.0115s211-- create_table("deployments", {:id=>:serial, :force=>:cascade})212 -> 0.0266s213-- create_table("description_versions", {:force=>:cascade})214 -> 0.0172s215-- create_table("design_management_designs", {:force=>:cascade})216 -> 0.0096s217-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})218 -> 0.0110s219-- create_table("design_management_versions", {:force=>:cascade})220 -> 0.0100s221-- create_table("draft_notes", {:force=>:cascade})222 -> 0.0103s223-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})224 -> 0.0034s225-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})226 -> 0.0036s227-- create_table("emails", {:id=>:serial, :force=>:cascade})228 -> 0.0104s229-- create_table("environments", {:id=>:serial, :force=>:cascade})230 -> 0.0129s231-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})232 -> 0.0080s233-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})234 -> 0.0047s235-- create_table("epics", {:id=>:serial, :force=>:cascade})236 -> 0.0302s237-- create_table("events", {:id=>:serial, :force=>:cascade})238 -> 0.0196s239-- create_table("evidences", {:force=>:cascade})240 -> 0.0082s241-- create_table("external_pull_requests", {:force=>:cascade})242 -> 0.0070s243-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})244 -> 0.0055s245-- create_table("features", {:id=>:serial, :force=>:cascade})246 -> 0.0055s247-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})248 -> 0.0094s249-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})250 -> 0.0051s251-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})252 -> 0.0046s253-- create_table("geo_cache_invalidation_events", {:force=>:cascade})254 -> 0.0026s255-- create_table("geo_container_repository_updated_events", {:force=>:cascade})256 -> 0.0045s257-- create_table("geo_event_log", {:force=>:cascade})258 -> 0.0346s259-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})260 -> 0.0057s261-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})262 -> 0.0056s263-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})264 -> 0.0053s265-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})266 -> 0.0053s267-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})268 -> 0.0097s269-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})270 -> 0.0071s271-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})272 -> 0.0146s273-- create_table("geo_repositories_changed_events", {:force=>:cascade})274 -> 0.0051s275-- create_table("geo_repository_created_events", {:force=>:cascade})276 -> 0.0054s277-- create_table("geo_repository_deleted_events", {:force=>:cascade})278 -> 0.0056s279-- create_table("geo_repository_renamed_events", {:force=>:cascade})280 -> 0.0060s281-- create_table("geo_repository_updated_events", {:force=>:cascade})282 -> 0.0095s283-- create_table("geo_reset_checksum_events", {:force=>:cascade})284 -> 0.0050s285-- create_table("geo_upload_deleted_events", {:force=>:cascade})286 -> 0.0054s287-- create_table("gitlab_subscriptions", {:force=>:cascade})288 -> 0.0092s289-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})290 -> 0.0105s291-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})292 -> 0.0105s293-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})294 -> 0.0156s295-- create_table("grafana_integrations", {:force=>:cascade})296 -> 0.0058s297-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})298 -> 0.0081s299-- create_table("historical_data", {:id=>:serial, :force=>:cascade})300 -> 0.0032s301-- create_table("identities", {:id=>:serial, :force=>:cascade})302 -> 0.0102s303-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})304 -> 0.0076s305-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})306 -> 0.0054s307-- create_table("insights", {:id=>:serial, :force=>:cascade})308 -> 0.0067s309-- create_table("internal_ids", {:force=>:cascade})310 -> 0.0120s311-- create_table("ip_restrictions", {:force=>:cascade})312 -> 0.0054s313-- create_table("issue_assignees", {:id=>false, :force=>:cascade})314 -> 0.0063s315-- create_table("issue_links", {:id=>:serial, :force=>:cascade})316 -> 0.0105s317-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})318 -> 0.0074s319-- create_table("issue_tracker_data", {:force=>:cascade})320 -> 0.0060s321-- create_table("issues", {:id=>:serial, :force=>:cascade})322 -> 0.0610s323-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})324 -> 0.0061s325-- create_table("issues_self_managed_prometheus_alert_events", {:id=>false, :force=>:cascade})326 -> 0.0062s327-- create_table("jira_connect_installations", {:force=>:cascade})328 -> 0.0053s329-- create_table("jira_connect_subscriptions", {:force=>:cascade})330 -> 0.0099s331-- create_table("jira_tracker_data", {:force=>:cascade})332 -> 0.0057s333-- create_table("keys", {:id=>:serial, :force=>:cascade})334 -> 0.0121s335-- create_table("label_links", {:id=>:serial, :force=>:cascade})336 -> 0.0087s337-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})338 -> 0.0098s339-- create_table("labels", {:id=>:serial, :force=>:cascade})340 -> 0.0165s341-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})342 -> 0.0032s343-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})344 -> 0.0092s345-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})346 -> 0.0091s347-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})348 -> 0.0079s349-- create_table("licenses", {:id=>:serial, :force=>:cascade})350 -> 0.0029s351-- create_table("list_user_preferences", {:force=>:cascade})352 -> 0.0100s353-- create_table("lists", {:id=>:serial, :force=>:cascade})354 -> 0.0158s355-- create_table("members", {:id=>:serial, :force=>:cascade})356 -> 0.0434s357-- create_table("merge_request_assignees", {:force=>:cascade})358 -> 0.0113s359-- create_table("merge_request_blocks", {:force=>:cascade})360 -> 0.0086s361-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})362 -> 0.0080s363-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})364 -> 0.0053s365-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})366 -> 0.0116s367-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})368 -> 0.0243s369-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})370 -> 0.0815s371-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})372 -> 0.0072s373-- create_table("merge_trains", {:force=>:cascade})374 -> 0.0125s375-- create_table("milestone_releases", {:id=>false, :force=>:cascade})376 -> 0.0070s377-- create_table("milestones", {:id=>:serial, :force=>:cascade})378 -> 0.0179s379-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})380 -> 0.0041s381-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})382 -> 0.0070s383-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})384 -> 0.0057s385-- create_table("namespaces", {:id=>:serial, :force=>:cascade})386 -> 0.0523s387-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})388 -> 0.0058s389-- create_table("notes", {:id=>:serial, :force=>:cascade})390 -> 0.0283s391-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})392 -> 0.0122s393-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})394 -> 0.0064s395-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})396 -> 0.0123s397-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})398 -> 0.0086s399-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})400 -> 0.0049s401-- create_table("operations_feature_flag_scopes", {:force=>:cascade})402 -> 0.0060s403-- create_table("operations_feature_flags", {:force=>:cascade})404 -> 0.0051s405-- create_table("operations_feature_flags_clients", {:force=>:cascade})406 -> 0.0072s407-- create_table("packages_maven_metadata", {:force=>:cascade})408 -> 0.0051s409-- create_table("packages_package_files", {:force=>:cascade})410 -> 0.0057s411-- create_table("packages_package_metadata", {:force=>:cascade})412 -> 0.0050s413-- create_table("packages_package_tags", {:force=>:cascade})414 -> 0.0045s415-- create_table("packages_packages", {:force=>:cascade})416 -> 0.0073s417-- create_table("pages_domain_acme_orders", {:force=>:cascade})418 -> 0.0077s419-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})420 -> 0.0204s421-- create_table("path_locks", {:id=>:serial, :force=>:cascade})422 -> 0.0095s423-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})424 -> 0.0090s425-- create_table("plans", {:id=>:serial, :force=>:cascade})426 -> 0.0058s427-- create_table("pool_repositories", {:force=>:cascade})428 -> 0.0095s429-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})430 -> 0.0052s431-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})432 -> 0.0021s433-- create_table("project_aliases", {:force=>:cascade})434 -> 0.0075s435-- create_table("project_authorizations", {:id=>false, :force=>:cascade})436 -> 0.0058s437-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})438 -> 0.0051s439-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})440 -> 0.0070s441-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})442 -> 0.0080s443-- create_table("project_daily_statistics", {:force=>:cascade})444 -> 0.0049s445-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})446 -> 0.0073s447-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})448 -> 0.0027s449-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})450 -> 0.0125s451-- create_table("project_features", {:id=>:serial, :force=>:cascade})452 -> 0.0059s453-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})454 -> 0.0073s455-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})456 -> 0.0050s457-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})458 -> 0.0038s459-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})460 -> 0.0021s461-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})462 -> 0.0174s463-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})464 -> 0.0065s465-- create_table("project_repositories", {:force=>:cascade})466 -> 0.0099s467-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})468 -> 0.0177s469-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})470 -> 0.1125s471-- create_table("project_tracing_settings", {:force=>:cascade})472 -> 0.0061s473-- create_table("projects", {:id=>:serial, :force=>:cascade})474 -> 0.0843s475-- create_table("prometheus_alert_events", {:force=>:cascade})476 -> 0.0081s477-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})478 -> 0.0099s479-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})480 -> 0.0134s481-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})482 -> 0.0100s483-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})484 -> 0.0101s485-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})486 -> 0.0102s487-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})488 -> 0.0089s489-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})490 -> 0.0101s491-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})492 -> 0.0085s493-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})494 -> 0.0103s495-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})496 -> 0.0082s497-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})498 -> 0.0050s499-- create_table("push_rules", {:id=>:serial, :force=>:cascade})500 -> 0.0107s501-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})502 -> 0.0103s503-- create_table("release_links", {:force=>:cascade})504 -> 0.0079s505-- create_table("releases", {:id=>:serial, :force=>:cascade})506 -> 0.0082s507-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})508 -> 0.0090s509-- create_table("repository_languages", {:id=>false, :force=>:cascade})510 -> 0.0037s511-- create_table("resource_label_events", {:force=>:cascade})512 -> 0.0146s513-- create_table("reviews", {:force=>:cascade})514 -> 0.0095s515-- create_table("routes", {:id=>:serial, :force=>:cascade})516 -> 0.0105s517-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})518 -> 0.0064s519-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})520 -> 0.0057s521-- create_table("self_managed_prometheus_alert_events", {:force=>:cascade})522 -> 0.0082s523-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})524 -> 0.0058s525-- create_table("services", {:id=>:serial, :force=>:cascade})526 -> 0.0177s527-- create_table("shards", {:id=>:serial, :force=>:cascade})528 -> 0.0054s529-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})530 -> 0.0083s531-- create_table("smartcard_identities", {:force=>:cascade})532 -> 0.0083s533-- create_table("snippets", {:id=>:serial, :force=>:cascade})534 -> 0.0225s535-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})536 -> 0.0081s537-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})538 -> 0.0084s539-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})540 -> 0.0043s541-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})542 -> 0.0094s543-- create_table("suggestions", {:force=>:cascade})544 -> 0.0079s545-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})546 -> 0.0085s547-- create_table("taggings", {:id=>:serial, :force=>:cascade})548 -> 0.0140s549-- create_table("tags", {:id=>:serial, :force=>:cascade})550 -> 0.0088s551-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})552 -> 0.0108s553-- create_table("timelogs", {:id=>:serial, :force=>:cascade})554 -> 0.0109s555-- create_table("todos", {:id=>:serial, :force=>:cascade})556 -> 0.0256s557-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})558 -> 0.0050s559-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})560 -> 0.0084s561-- create_table("uploads", {:id=>:serial, :force=>:cascade})562 -> 0.0135s563-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})564 -> 0.0064s565-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})566 -> 0.0074s567-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})568 -> 0.0082s569-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})570 -> 0.0102s571-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})572 -> 0.0110s573-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})574 -> 0.0065s575-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})576 -> 0.0072s577-- create_table("users", {:id=>:serial, :force=>:cascade})578 -> 0.0755s579-- create_table("users_ops_dashboard_projects", {:force=>:cascade})580 -> 0.0071s581-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})582 -> 0.0069s583-- create_table("vulnerabilities", {:force=>:cascade})584 -> 0.0258s585-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})586 -> 0.0177s587-- create_table("vulnerability_identifiers", {:force=>:cascade})588 -> 0.0057s589-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})590 -> 0.0071s591-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})592 -> 0.0074s593-- create_table("vulnerability_occurrences", {:force=>:cascade})594 -> 0.0148s595-- create_table("vulnerability_scanners", {:force=>:cascade})596 -> 0.0055s597-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})598 -> 0.0080s599-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})600 -> 0.0130s601-- create_table("zoom_meetings", {:force=>:cascade})602 -> 0.0103s603-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})604 -> 0.0026s605-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})606 -> 0.0025s607-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})608 -> 0.0022s609-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})610 -> 0.0015s611-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})612 -> 0.0016s613-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})614 -> 0.0018s615-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})616 -> 0.0014s617-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})618 -> 0.0030s619-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})620 -> 0.0047s621-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})622 -> 0.0029s623-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})624 -> 0.0020s625-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})626 -> 0.0019s627-- add_foreign_key("analytics_repository_file_edits", "analytics_repository_files", {:on_delete=>:cascade})628 -> 0.0016s629-- add_foreign_key("analytics_repository_file_edits", "projects", {:on_delete=>:cascade})630 -> 0.0019s631-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})632 -> 0.0018s633-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})634 -> 0.0034s635-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})636 -> 0.0028s637-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})638 -> 0.0028s639-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})640 -> 0.0040s641-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})642 -> 0.0024s643-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})644 -> 0.0019s645-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})646 -> 0.0031s647-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})648 -> 0.0021s649-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})650 -> 0.0020s651-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})652 -> 0.0019s653-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})654 -> 0.0017s655-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})656 -> 0.0018s657-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})658 -> 0.0019s659-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})660 -> 0.0019s661-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})662 -> 0.0017s663-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})664 -> 0.0016s665-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})666 -> 0.0016s667-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})668 -> 0.0018s669-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})670 -> 0.0019s671-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})672 -> 0.0018s673-- add_foreign_key("aws_roles", "users", {:on_delete=>:cascade})674 -> 0.0021s675-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})676 -> 0.0018s677-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})678 -> 0.0020s679-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})680 -> 0.0018s681-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})682 -> 0.0018s683-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})684 -> 0.0016s685-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})686 -> 0.0015s687-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})688 -> 0.0018s689-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})690 -> 0.0016s691-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})692 -> 0.0015s693-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})694 -> 0.0017s695-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})696 -> 0.0019s697-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})698 -> 0.0018s699-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})700 -> 0.0017s701-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})702 -> 0.0019s703-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})704 -> 0.0019s705-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})706 -> 0.0031s707-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})708 -> 0.0020s709-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})710 -> 0.0021s711-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})712 -> 0.0017s713-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})714 -> 0.0016s715-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})716 -> 0.0021s717-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})718 -> 0.0026s719-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})720 -> 0.0019s721-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})722 -> 0.0018s723-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})724 -> 0.0020s725-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})726 -> 0.0022s727-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})728 -> 0.0020s729-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})730 -> 0.0022s731-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})732 -> 0.0019s733-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})734 -> 0.0020s735-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})736 -> 0.0021s737-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})738 -> 0.0021s739-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})740 -> 0.0021s741-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})742 -> 0.0019s743-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})744 -> 0.0016s745-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})746 -> 0.0017s747-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})748 -> 0.0020s749-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})750 -> 0.0019s751-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})752 -> 0.0017s753-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})754 -> 0.0017s755-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})756 -> 0.0015s757-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})758 -> 0.0020s759-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})760 -> 0.0020s761-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})762 -> 0.0022s763-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})764 -> 0.0027s765-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})766 -> 0.0020s767-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})768 -> 0.0022s769-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})770 -> 0.0021s771-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})772 -> 0.0016s773-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})774 -> 0.0016s775-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})776 -> 0.0023s777-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})778 -> 0.0020s779-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})780 -> 0.0016s781-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})782 -> 0.0020s783-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})784 -> 0.0016s785-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})786 -> 0.0020s787-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})788 -> 0.0019s789-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})790 -> 0.0023s791-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})792 -> 0.0020s793-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})794 -> 0.0018s795-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})796 -> 0.0017s797-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})798 -> 0.0016s799-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})800 -> 0.0019s801-- add_foreign_key("cluster_providers_aws", "clusters", {:on_delete=>:cascade})802 -> 0.0018s803-- add_foreign_key("cluster_providers_aws", "users", {:column=>"created_by_user_id", :on_delete=>:nullify})804 -> 0.0018s805-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})806 -> 0.0018s807-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})808 -> 0.0018s809-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})810 -> 0.0019s811-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})812 -> 0.0017s813-- add_foreign_key("clusters_applications_elastic_stacks", "clusters", {:on_delete=>:cascade})814 -> 0.0016s815-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})816 -> 0.0015s817-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})818 -> 0.0017s819-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})820 -> 0.0016s821-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})822 -> 0.0016s823-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})824 -> 0.0017s825-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})826 -> 0.0016s827-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})828 -> 0.0016s829-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})830 -> 0.0015s831-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})832 -> 0.0019s833-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})834 -> 0.0016s835-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})836 -> 0.0017s837-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})838 -> 0.0021s839-- add_foreign_key("container_repositories", "projects")840 -> 0.0022s841-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})842 -> 0.0020s843-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})844 -> 0.0017s845-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})846 -> 0.0022s847-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})848 -> 0.0021s849-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})850 -> 0.0020s851-- add_foreign_key("description_versions", "epics", {:on_delete=>:cascade})852 -> 0.0025s853-- add_foreign_key("description_versions", "issues", {:on_delete=>:cascade})854 -> 0.0031s855-- add_foreign_key("description_versions", "merge_requests", {:on_delete=>:cascade})856 -> 0.0022s857-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})858 -> 0.0021s859-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})860 -> 0.0022s861-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})862 -> 0.0017s863-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})864 -> 0.0017s865-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})866 -> 0.0017s867-- add_foreign_key("design_management_versions", "users", {:column=>"author_id", :name=>"fk_c1440b4896", :on_delete=>:nullify})868 -> 0.0018s869-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})870 -> 0.0021s871-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})872 -> 0.0018s873-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})874 -> 0.0018s875-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})876 -> 0.0027s877-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})878 -> 0.0019s879-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})880 -> 0.0017s881-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})882 -> 0.0016s883-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})884 -> 0.0016s885-- add_foreign_key("epics", "epics", {:column=>"due_date_sourcing_epic_id", :name=>"fk_013c9f36ca", :on_delete=>:nullify})886 -> 0.0014s887-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})888 -> 0.0015s889-- add_foreign_key("epics", "epics", {:column=>"start_date_sourcing_epic_id", :name=>"fk_9d480c64b2", :on_delete=>:nullify})890 -> 0.0014s891-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})892 -> 0.0019s893-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})894 -> 0.0021s895-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})896 -> 0.0020s897-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})898 -> 0.0019s899-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})900 -> 0.0019s901-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})902 -> 0.0021s903-- add_foreign_key("events", "projects", {:on_delete=>:cascade})904 -> 0.0020s905-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})906 -> 0.0017s907-- add_foreign_key("evidences", "releases", {:on_delete=>:cascade})908 -> 0.0018s909-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})910 -> 0.0018s911-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})912 -> 0.0023s913-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})914 -> 0.0018s915-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})916 -> 0.0020s917-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})918 -> 0.0018s919-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})920 -> 0.0020s921-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})922 -> 0.0016s923-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})924 -> 0.0022s925-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})926 -> 0.0014s927-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})928 -> 0.0015s929-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})930 -> 0.0015s931-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})932 -> 0.0015s933-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})934 -> 0.0015s935-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})936 -> 0.0015s937-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})938 -> 0.0014s939-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})940 -> 0.0015s941-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})942 -> 0.0016s943-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})944 -> 0.0014s945-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})946 -> 0.0015s947-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})948 -> 0.0020s949-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})950 -> 0.0019s951-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})952 -> 0.0020s953-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})954 -> 0.0017s955-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})956 -> 0.0019s957-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})958 -> 0.0014s959-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})960 -> 0.0019s961-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})962 -> 0.0019s963-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})964 -> 0.0020s965-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})966 -> 0.0018s967-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})968 -> 0.0020s969-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})970 -> 0.0018s971-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})972 -> 0.0019s973-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})974 -> 0.0020s975-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})976 -> 0.0019s977-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})978 -> 0.0014s979-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})980 -> 0.0026s981-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})982 -> 0.0020s983-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})984 -> 0.0017s985-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})986 -> 0.0017s987-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})988 -> 0.0020s989-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})990 -> 0.0022s991-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})992 -> 0.0018s993-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})994 -> 0.0019s995-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})996 -> 0.0019s997-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})998 -> 0.0020s999-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1000 -> 0.0017s1001-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1002 -> 0.0017s1003-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1004 -> 0.0018s1005-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1006 -> 0.0017s1007-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1008 -> 0.0015s1009-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1010 -> 0.0018s1011-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1012 -> 0.0017s1013-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1014 -> 0.0016s1015-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1016 -> 0.0017s1017-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1018 -> 0.0017s1019-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1020 -> 0.0023s1021-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1022 -> 0.0020s1023-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1024 -> 0.0021s1025-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1026 -> 0.0021s1027-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1028 -> 0.0019s1029-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1030 -> 0.0017s1031-- add_foreign_key("issues_self_managed_prometheus_alert_events", "issues", {:on_delete=>:cascade})1032 -> 0.0019s1033-- add_foreign_key("issues_self_managed_prometheus_alert_events", "self_managed_prometheus_alert_events", {:on_delete=>:cascade})1034 -> 0.0016s1035-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1036 -> 0.0017s1037-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1038 -> 0.0017s1039-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1040 -> 0.0018s1041-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1042 -> 0.0018s1043-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1044 -> 0.0019s1045-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1046 -> 0.0022s1047-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1048 -> 0.0017s1049-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1050 -> 0.0027s1051-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1052 -> 0.0020s1053-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1054 -> 0.0019s1055-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1056 -> 0.0019s1057-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1058 -> 0.0019s1059-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1060 -> 0.0015s1061-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1062 -> 0.0014s1063-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1064 -> 0.0014s1065-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1066 -> 0.0018s1067-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1068 -> 0.0022s1069-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1070 -> 0.0019s1071-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1072 -> 0.0018s1073-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1074 -> 0.0017s1075-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1076 -> 0.0015s1077-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1078 -> 0.0017s1079-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1080 -> 0.0015s1081-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1082 -> 0.0016s1083-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1084 -> 0.0020s1085-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1086 -> 0.0019s1087-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1088 -> 0.0019s1089-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1090 -> 0.0017s1091-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1092 -> 0.0020s1093-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1094 -> 0.0017s1095-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1096 -> 0.0017s1097-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1098 -> 0.0022s1099-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1100 -> 0.0021s1101-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1102 -> 0.0021s1103-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1104 -> 0.0021s1105-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1106 -> 0.0020s1107-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1108 -> 0.0023s1109-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1110 -> 0.0019s1111-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1112 -> 0.0017s1113-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1114 -> 0.0017s1115-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1116 -> 0.0017s1117-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1118 -> 0.0019s1119-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1120 -> 0.0019s1121-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1122 -> 0.0015s1123-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1124 -> 0.0014s1125-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1126 -> 0.0017s1127-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1128 -> 0.0021s1129-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1130 -> 0.0018s1131-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1132 -> 0.0018s1133-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1134 -> 0.0019s1135-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1136 -> 0.0018s1137-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1138 -> 0.0018s1139-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1140 -> 0.0024s1141-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1142 -> 0.0021s1143-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1144 -> 0.0024s1145-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1146 -> 0.0020s1147-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1148 -> 0.0024s1149-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1150 -> 0.0016s1151-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1152 -> 0.0016s1153-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1154 -> 0.0021s1155-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1156 -> 0.0022s1157-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1158 -> 0.0016s1159-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1160 -> 0.0014s1161-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1162 -> 0.0016s1163-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1164 -> 0.0014s1165-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1166 -> 0.0020s1167-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1168 -> 0.0019s1169-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1170 -> 0.0020s1171-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1172 -> 0.0023s1173-- add_foreign_key("path_locks", "users")1174 -> 0.0020s1175-- add_foreign_key("personal_access_tokens", "users")1176 -> 0.0022s1177-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1178 -> 0.0022s1179-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1180 -> 0.0016s1181-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1182 -> 0.0019s1183-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1184 -> 0.0020s1185-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1186 -> 0.0020s1187-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1188 -> 0.0019s1189-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1190 -> 0.0019s1191-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1192 -> 0.0020s1193-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1194 -> 0.0023s1195-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1196 -> 0.0019s1197-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1198 -> 0.0022s1199-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1200 -> 0.0019s1201-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1202 -> 0.0020s1203-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1204 -> 0.0020s1205-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1206 -> 0.0021s1207-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1208 -> 0.0021s1209-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1210 -> 0.0020s1211-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1212 -> 0.0022s1213-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1214 -> 0.0021s1215-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1216 -> 0.0024s1217-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1218 -> 0.0022s1219-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1220 -> 0.0028s1221-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1222 -> 0.0018s1223-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1224 -> 0.0027s1225-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1226 -> 0.0024s1227-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1228 -> 0.0022s1229-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1230 -> 0.0024s1231-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1232 -> 0.0021s1233-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1234 -> 0.0018s1235-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1236 -> 0.0015s1237-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1238 -> 0.0021s1239-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1240 -> 0.0018s1241-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1242 -> 0.0021s1243-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1244 -> 0.0020s1245-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1246 -> 0.0016s1247-- add_foreign_key("protected_branch_merge_access_levels", "users")1248 -> 0.0020s1249-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1250 -> 0.0019s1251-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1252 -> 0.0014s1253-- add_foreign_key("protected_branch_push_access_levels", "users")1254 -> 0.0021s1255-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1256 -> 0.0019s1257-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1258 -> 0.0014s1259-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1260 -> 0.0020s1261-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1262 -> 0.0020s1263-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1264 -> 0.0019s1265-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1266 -> 0.0016s1267-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1268 -> 0.0019s1269-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1270 -> 0.0020s1271-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1272 -> 0.0018s1273-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1274 -> 0.0016s1275-- add_foreign_key("protected_tag_create_access_levels", "users")1276 -> 0.0020s1277-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1278 -> 0.0020s1279-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1280 -> 0.0016s1281-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1282 -> 0.0021s1283-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1284 -> 0.0015s1285-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1286 -> 0.0021s1287-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1288 -> 0.0018s1289-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1290 -> 0.0021s1291-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1292 -> 0.0020s1293-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1294 -> 0.0019s1295-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1296 -> 0.0025s1297-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1298 -> 0.0018s1299-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1300 -> 0.0019s1301-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1302 -> 0.0022s1303-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1304 -> 0.0019s1305-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1306 -> 0.0024s1307-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1308 -> 0.0019s1309-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1310 -> 0.0018s1311-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1312 -> 0.0018s1313-- add_foreign_key("self_managed_prometheus_alert_events", "environments", {:on_delete=>:cascade})1314 -> 0.0062s1315-- add_foreign_key("self_managed_prometheus_alert_events", "projects", {:on_delete=>:cascade})1316 -> 0.0039s1317-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1318 -> 0.0037s1319-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1320 -> 0.0026s1321-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1322 -> 0.0030s1323-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1324 -> 0.0027s1325-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1326 -> 0.0023s1327-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1328 -> 0.0016s1329-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1330 -> 0.0024s1331-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1332 -> 0.0017s1333-- add_foreign_key("system_note_metadata", "description_versions", {:name=>"fk_fbd87415c9", :on_delete=>:nullify})1334 -> 0.0016s1335-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1336 -> 0.0016s1337-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1338 -> 0.0016s1339-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1340 -> 0.0021s1341-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1342 -> 0.0019s1343-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1344 -> 0.0018s1345-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1346 -> 0.0022s1347-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1348 -> 0.0016s1349-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1350 -> 0.0024s1351-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1352 -> 0.0024s1353-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1354 -> 0.0021s1355-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1356 -> 0.0025s1357-- add_foreign_key("u2f_registrations", "users")1358 -> 0.0022s1359-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1360 -> 0.0022s1361-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1362 -> 0.0022s1363-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1364 -> 0.0024s1365-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1366 -> 0.0021s1367-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1368 -> 0.0022s1369-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1370 -> 0.0021s1371-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1372 -> 0.0021s1373-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1374 -> 0.0020s1375-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1376 -> 0.0024s1377-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1378 -> 0.0024s1379-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1380 -> 0.0021s1381-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1382 -> 0.0024s1383-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1384 -> 0.0023s1385-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1386 -> 0.0016s1387-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1388 -> 0.0015s1389-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1390 -> 0.0016s1391-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1392 -> 0.0025s1393-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1394 -> 0.0020s1395-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1396 -> 0.0020s1397-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1398 -> 0.0021s1399-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1400 -> 0.0020s1401-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1402 -> 0.0023s1403-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1404 -> 0.0018s1405-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1406 -> 0.0017s1407-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1408 -> 0.0023s1409-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1410 -> 0.0020s1411-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1412 -> 0.0019s1413-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1414 -> 0.0023s1415-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1416 -> 0.0014s1417-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1418 -> 0.0017s1419-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1420 -> 0.0017s1421-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1422 -> 0.0014s1423-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1424 -> 0.0023s1425-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1426 -> 0.0017s1427-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1428 -> 0.0014s1429-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1430 -> 0.0014s1431-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1432 -> 0.0022s1433-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1434 -> 0.0019s1435-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1436 -> 0.0024s1437-- add_foreign_key("zoom_meetings", "issues", {:on_delete=>:cascade})1438 -> 0.0020s1439-- add_foreign_key("zoom_meetings", "projects", {:on_delete=>:cascade})1440 -> 0.0021s1441$ date1442Wed Oct 23 14:05:43 UTC 20191443$ source scripts/rspec_helpers.sh1444$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1445KNAPSACK_TEST_FILE_PATTERN: spec/{bin,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,migrations,models,policies,presenters,rack_servers,routing,rubocop,serializers,services,sidekiq,tasks,uploaders,validators,views,workers,elastic_integration}{,/**/}*_spec.rb1446Checking gitaly-ruby bundle...1447Warning: 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`.1448The Gemfile's dependencies are satisfied1449Trying to connect to gitaly: ...... OK1450Report specs:1451spec/services/merge_requests/refresh_service_spec.rb1452spec/services/projects/import_service_spec.rb1453spec/models/clusters/applications/knative_spec.rb1454spec/models/cycle_analytics/test_spec.rb1455spec/workers/emails_on_push_worker_spec.rb1456spec/workers/gitlab_usage_ping_worker_spec.rb1457spec/lib/gitlab/project_search_results_spec.rb1458spec/services/deployments/after_create_service_spec.rb1459spec/rack_servers/puma_spec.rb1460spec/services/groups/destroy_service_spec.rb1461spec/presenters/project_presenter_spec.rb1462spec/services/merge_requests/rebase_service_spec.rb1463spec/uploaders/object_storage_spec.rb1464spec/lib/gitlab/cycle_analytics/plan_stage_spec.rb1465spec/models/ci/pipeline_schedule_spec.rb1466spec/lib/gitlab/github_import/user_finder_spec.rb1467spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb1468spec/lib/banzai/filter/issuable_state_filter_spec.rb1469spec/workers/repository_fork_worker_spec.rb1470spec/helpers/events_helper_spec.rb1471spec/services/groups/update_service_spec.rb1472spec/services/milestones/promote_service_spec.rb1473spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb1474spec/lib/banzai/pipeline/gfm_pipeline_spec.rb1475spec/services/award_emojis/destroy_service_spec.rb1476spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb1477spec/lib/gitlab/git/object_pool_spec.rb1478spec/lib/gitlab/multi_collection_paginator_spec.rb1479spec/models/releases/link_spec.rb1480spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb1481spec/lib/gitlab/ci/build/rules_spec.rb1482spec/models/notification_setting_spec.rb1483spec/models/user_interacted_project_spec.rb1484spec/lib/container_registry/path_spec.rb1485spec/services/merge_requests/reload_diffs_service_spec.rb1486spec/lib/gitlab/url_builder_spec.rb1487spec/views/projects/artifacts/_artifact.html.haml_spec.rb1488spec/lib/gitlab/lfs_token_spec.rb1489spec/helpers/auto_devops_helper_spec.rb1490spec/services/issues/reorder_service_spec.rb1491spec/services/projects/move_deploy_keys_projects_service_spec.rb1492spec/services/metrics/dashboard/project_dashboard_service_spec.rb1493spec/lib/gitlab/performance_bar_spec.rb1494spec/serializers/deploy_key_entity_spec.rb1495spec/services/protected_branches/create_service_spec.rb1496spec/graphql/features/authorization_spec.rb1497spec/workers/new_release_worker_spec.rb1498spec/lib/gitlab/ci/templates/templates_spec.rb1499spec/lib/gitlab/ci/yaml_processor_spec.rb1500spec/services/search/group_service_spec.rb1501spec/services/clusters/update_service_spec.rb1502spec/workers/create_gpg_signature_worker_spec.rb1503spec/helpers/merge_requests_helper_spec.rb1504spec/models/pool_repository_spec.rb1505spec/uploaders/file_mover_spec.rb1506spec/lib/gitlab/github_import/milestone_finder_spec.rb1507spec/workers/rebase_worker_spec.rb1508spec/lib/gitlab/diff/file_collection/commit_spec.rb1509spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb1510spec/workers/object_pool/create_worker_spec.rb1511spec/lib/gitlab/background_migration/populate_merge_request_assignees_table_spec.rb1512spec/validators/sha_validator_spec.rb1513spec/services/projects/group_links/create_service_spec.rb1514spec/lib/gitlab/lets_encrypt/order_spec.rb1515spec/workers/migrate_external_diffs_worker_spec.rb1516spec/lib/gitlab/data_builder/wiki_page_spec.rb1517spec/lib/gitlab/github_import/label_finder_spec.rb1518spec/lib/gitlab/fogbugz_import/project_creator_spec.rb1519spec/models/hooks/web_hook_log_spec.rb1520spec/lib/gitlab/ci/status/build/action_spec.rb1521spec/lib/gitlab/ci/status/stage/common_spec.rb1522spec/lib/gitlab/auth/ldap/dn_spec.rb1523spec/services/ci/find_exposed_artifacts_service_spec.rb1524spec/models/fork_network_member_spec.rb1525spec/services/projects/lfs_pointers/lfs_import_service_spec.rb1526spec/policies/application_setting/term_policy_spec.rb1527spec/views/projects/blob/_viewer.html.haml_spec.rb1528spec/helpers/environment_helper_spec.rb1529spec/migrations/enqueue_reset_merge_status_second_run_spec.rb1530spec/workers/hashed_storage/project_migrate_worker_spec.rb1531spec/services/projects/container_repository/cleanup_tags_service_spec.rb1532spec/workers/delete_container_repository_worker_spec.rb1533spec/services/metrics/dashboard/system_dashboard_service_spec.rb1534spec/workers/create_evidence_worker_spec.rb1535spec/lib/gitlab/cycle_analytics/plan_event_fetcher_spec.rb1536spec/models/oauth_access_token_spec.rb1537spec/lib/gitlab/checks/push_check_spec.rb1538spec/services/resource_events/change_labels_service_spec.rb1539spec/services/emails/create_service_spec.rb1540spec/models/ci/bridge_spec.rb1541spec/lib/gitlab/utils/override_spec.rb1542spec/migrations/steal_fill_store_upload_spec.rb1543spec/lib/gitlab/tracing_spec.rb1544spec/lib/gitlab/cycle_analytics/updater_spec.rb1545spec/lib/gitlab/identifier_spec.rb1546spec/lib/gitlab/ci/config/external/file/local_spec.rb1547spec/models/project_services/chat_message/pipeline_message_spec.rb1548spec/lib/gitlab/file_type_detection_spec.rb1549spec/models/lfs_objects_project_spec.rb1550spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb1551spec/rubocop/cop/code_reuse/active_record_spec.rb1552spec/lib/gitlab/ci/variables/collection_spec.rb1553spec/lib/container_registry/client_spec.rb1554spec/workers/ci/build_prepare_worker_spec.rb1555spec/workers/namespaces/schedule_aggregation_worker_spec.rb1556spec/workers/repository_check/clear_worker_spec.rb1557spec/workers/wait_for_cluster_creation_worker_spec.rb1558spec/models/concerns/triggerable_hooks_spec.rb1559spec/presenters/label_presenter_spec.rb1560spec/models/ci/trigger_request_spec.rb1561spec/workers/pages_domain_verification_cron_worker_spec.rb1562spec/lib/gitlab/view/presenter/base_spec.rb1563spec/lib/mattermost/team_spec.rb1564spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb1565spec/lib/gitlab/github_import/representation/issue_spec.rb1566spec/lib/gitlab/github_import_spec.rb1567spec/services/keys/destroy_service_spec.rb1568spec/lib/gitlab/i18n_spec.rb1569spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb1570spec/lib/gitlab/language_data_spec.rb1571spec/lib/gitlab/sql/pattern_spec.rb1572spec/serializers/evidences/project_entity_spec.rb1573spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb1574spec/lib/gitlab/github_import/parallel_scheduling_spec.rb1575spec/lib/gitlab/auth/saml/auth_hash_spec.rb1576spec/lib/gitlab/external_authorization/logger_spec.rb1577spec/lib/banzai/filter/math_filter_spec.rb1578spec/lib/gitlab/etag_caching/middleware_spec.rb1579spec/serializers/test_reports_comparer_serializer_spec.rb1580spec/helpers/recaptcha_experiment_helper_spec.rb1581spec/lib/quality/test_level_spec.rb1582spec/lib/gitlab/kubernetes/helm/install_command_spec.rb1583spec/graphql/types/base_field_spec.rb1584spec/lib/gitlab/checks/force_push_spec.rb1585spec/models/pages/lookup_path_spec.rb1586spec/lib/gitlab/file_detector_spec.rb1587spec/lib/bitbucket/representation/pull_request_spec.rb1588spec/lib/gitlab/query_limiting/transaction_spec.rb1589spec/lib/banzai/filter/inline_metrics_filter_spec.rb1590spec/lib/gitlab/tracking/incident_management_spec.rb1591spec/lib/gitlab/dependency_linker_spec.rb1592spec/serializers/test_suite_comparer_entity_spec.rb1593spec/graphql/resolvers/group_resolver_spec.rb1594spec/lib/gitlab/anonymous_session_spec.rb1595spec/lib/bitbucket/representation/pull_request_comment_spec.rb1596spec/lib/gitlab/phabricator_import/conduit/user_spec.rb1597spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb1598spec/lib/gitlab/request_profiler_spec.rb1599spec/lib/gitlab/git/raw_diff_change_spec.rb1600spec/lib/gitlab/metrics/subscribers/action_view_spec.rb1601spec/helpers/time_helper_spec.rb1602spec/lib/gitlab/cluster/rack_timeout_observer_spec.rb1603spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1604spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb1605spec/lib/gitlab/checks/timed_logger_spec.rb1606spec/rubocop/cop/safe_params_spec.rb1607spec/lib/gitlab/kubernetes/helm/base_command_spec.rb1608spec/lib/gitlab/view/presenter/simple_spec.rb1609spec/lib/gitlab/ci/config/entry/paths_spec.rb1610spec/lib/gitlab/ci/mask_secret_spec.rb1611spec/config/object_store_settings_spec.rb1612spec/lib/gitlab/ci/ansi2json/parser_spec.rb1613spec/lib/json_web_token/token_spec.rb1614spec/serializers/test_case_entity_spec.rb1615spec/models/license_template_spec.rb1616spec/lib/gitlab/tcp_checker_spec.rb1617spec/graphql/types/ci/detailed_status_type_spec.rb1618spec/lib/gitlab/quick_actions/dsl_spec.rb1619spec/services/notes/render_service_spec.rb1620spec/workers/todos_destroyer/entity_leave_worker_spec.rb1621spec/workers/todos_destroyer/project_private_worker_spec.rbRun options:1622 include {:focus=>true}1623 exclude {:quarantine=>true, :geo=>true}1624All examples were filtered out; ignoring {:focus=>true}1625==> Setting up Gitaly...1626 Gitaly set up in 0.076468881 seconds...1627MergeRequests::RefreshService1628 #execute1629 push to origin repo source branch1630 executes hooks with update action1631 reloads source branch MRs memoization1632 outdates MR suggestions1633 when source branch ref does not exists1634 closes MRs without source branch ref1635 does not change the merge request diff1636 when pipeline exists for the source branch1637 updates the head_pipeline_id for @merge_request1638 does not update the head_pipeline_id for @fork_merge_request1639 Pipelines for merge requests1640 when .gitlab-ci.yml has merge_requests keywords1641 create detached merge request pipeline with commits1642 does not create detached merge request pipeline for forked project1643 create detached merge request pipeline for non-fork merge request1644 when service is hooked by target branch1645 does not create detached merge request pipeline1646 when service runs on forked project1647 creates legacy detached merge request pipeline for fork merge request1648 when ci_use_merge_request_ref feature flag is false1649 create legacy detached merge request pipeline for non-fork merge request1650 when branch pipeline was created before a detaced merge request pipeline has been created1651 sets the latest detached merge request pipeline as a head pipeline1652 returns pipelines in correct order1653 when MergeRequestUpdateWorker is retried by an exception1654 does not re-create a duplicate detached merge request pipeline1655 when .gitlab-ci.yml does not have merge_requests keywords1656 does not create a detached merge request pipeline1657 push to origin repo source branch1658 executes hooks with update action1659 push to origin repo target branch1660 when all MRs to the target branch had diffs1661 updates the merge state1662 when an MR to be closed was empty already1663 only updates the non-empty MRs1664 manual merge of source branch1665 updates the merge state1666 push to fork repo source branch1667 open fork merge request1668 executes hooks with update action1669 outdates opened forked MR suggestions1670 closed fork merge request1671 do not execute hooks with update action1672 updates merge request to closed state1673 push to fork repo target branch1674 changes to merge requests1675 updates the merge request state1676 merge request diff1677 does not reload the diff of the merge request made from fork1678 forked projects with the same source branch name as target branch1679 reloads a new diff for a push to the forked project1680 reloads a new diff for a force push to the source branch1681 reloads a new diff for a force push to the target branch1682 reloads a new diff for a push to the target project that contains a commit in the MR1683 does not increase the diff count for a new push to target branch1684 push to origin repo target branch after fork project was removed1685 updates the merge request state1686 push new branch that exists in a merge request1687 refreshes the merge request1688 merge request metrics1689 when the merge request is sourced from the same project1690 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit1691 when the merge request is sourced from a different project1692 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit1693 marking the merge request as work in progress1694 marks the merge request as work in progress from fixup commits1695 references the commit that caused the Work in Progress status1696 does not mark as WIP based on commits that do not belong to an MR1697 updating merge_commit1698 feature enabled1699 updates merge requests' merge_commits1700 when feature is disabled1701 does not trigger analysis1702 #abort_ff_merge_requests_with_when_pipeline_succeeds1703 when Project#merge_method is set to FF1704 behaves like aborted MWPS1705 aborts auto_merge1706 removes merge_user1707 does not add todos for merge user1708 adds todos for merge author1709 with forked project1710 behaves like aborted MWPS1711 aborts auto_merge1712 removes merge_user1713 does not add todos for merge user1714 adds todos for merge author1715 when Project#merge_method is set to rebase_merge1716 behaves like aborted MWPS1717 aborts auto_merge1718 removes merge_user1719 does not add todos for merge user1720 adds todos for merge author1721 with forked project1722 behaves like aborted MWPS1723 aborts auto_merge1724 removes merge_user1725 does not add todos for merge user1726 adds todos for merge author1727 when Project#merge_method is set to merge1728 behaves like maintained MWPS1729 does not cancel auto merge1730 does not change merge_user1731 does not add todos1732 with forked project1733 behaves like maintained MWPS1734 does not cancel auto merge1735 does not change merge_user1736 does not add todos1737Projects::ImportService1738 #async?1739 returns true for an asynchronous importer1740 returns false for a regular importer1741 returns false when the importer does not define #async?1742 returns false when the importer does not exist1743 #execute1744 with unknown url1745 succeeds if repository is created successfully1746 fails if repository creation fails1747 when repository creation succeeds1748 does not download lfs files1749 with known url1750 with a Github repository1751 succeeds if repository import was scheduled1752 fails if repository import was not scheduled1753 when repository import scheduled1754 does not download lfs objects1755 with a non Github repository1756 succeeds if repository import is successful1757 fails if repository import fails1758 when lfs import fails1759 logs the error1760 when repository import scheduled1761 downloads lfs objects if lfs_enabled is enabled for project1762 does not download lfs objects if lfs_enabled is not enabled for project1763 with valid importer1764 succeeds if importer succeeds1765 fails if importer fails1766 when importer1767 has a custom repository importer it does not download lfs objects1768 does not have a custom repository importer downloads lfs objects1769 when lfs import fails1770 logs the error1771 with blocked import_URL1772 fails with localhost1773 fails with port 251774Clusters::Applications::Knative1775 should belong to cluster required:1776 should validate that :cluster cannot be empty/falsy1777 #can_uninstall?1778 calls allowed_to_uninstall?1779 #name1780 is .application_name1781 is recorded in Clusters::Cluster::APPLICATIONS1782 .association_name1783 should eq :application_knative1784 #status1785 sets a default status1786 #status_states1787 returns a hash of state values1788 returns an integer for installed state value1789 .available1790 should contain exactly #<Clusters::Applications::Knative id: 1, cluster_id: 15, created_at: "2019-10-23 14:09:16", updated_a...ion: "0.7.0", hostname: "example.com", status_reason: nil, external_ip: nil, external_hostname: nil> and #<Clusters::Applications::Knative id: 2, cluster_id: 21, created_at: "2019-10-23 14:09:16", updated_a...ion: "0.7.0", hostname: "example.com", status_reason: nil, external_ip: nil, external_hostname: nil>1791 status state machine1792 #make_installing1793 is installing1794 #make_installed1795 is installed1796 updates helm version1797 sets the correct version of the application1798 application is updating1799 is updated1800 updates helm version1801 updates the version of the application1802 #make_errored1803 is errored1804 application is updating1805 is update_errored1806 application is uninstalling1807 is uninstall_errored1808 #make_scheduled1809 is scheduled1810 when installed1811 is scheduled1812 when was errored1813 clears #status_reason1814 when was updated_errored1815 clears #status_reason1816 when was uninstall_errored1817 clears #status_reason1818 #make_uninstalling1819 is uninstalling1820 #available?1821 trait: :not_installable, available: false1822 should not be available1823 trait: :installable, available: false1824 should not be available1825 trait: :scheduled, available: false1826 should not be available1827 trait: :installing, available: false1828 should not be available1829 trait: :installed, available: true1830 should be available1831 trait: :updating, available: false1832 should not be available1833 trait: :updated, available: true1834 should be available1835 trait: :errored, available: false1836 should not be available1837 trait: :update_errored, available: false1838 should not be available1839 trait: :uninstalling, available: false1840 should not be available1841 trait: :uninstall_errored, available: false1842 should not be available1843 trait: :timed_out, available: false1844 should not be available1845 #uninstall_command1846 should be an instance of Gitlab::Kubernetes::Helm::DeleteCommand1847 has files1848 is rbac1849 on a non rbac enabled cluster1850 should not be rbac1851 #files1852 includes cert files when there is a ca_cert entry1853 when the helm application does not have a ca_cert1854 does not include cert files when there is no ca_cert entry1855 update_available?1856 version is not the same as VERSION1857 should be truthy1858 version is the same as VERSION1859 should be falsey1860 #status1861 when application helm is scheduled1862 defaults to :not_installable1863 when application is scheduled1864 sets a default status1865 when cloud run is enabled1866 should be not installable1867 when rbac is not enabled1868 should be not installable1869 make_installed with external_ip1870 schedules a ClusterWaitForIngressIpAddressWorker1871 #can_uninstall?1872 should be truthy1873 #schedule_status_update with external_ip1874 schedules a ClusterWaitForIngressIpAddressWorker1875 when the application is not installed1876 does not schedule a ClusterWaitForIngressIpAddressWorker1877 when there is already an external_ip1878 does not schedule a ClusterWaitForIngressIpAddressWorker1879 when there is already an external_hostname1880 does not schedule a ClusterWaitForIngressIpAddressWorker1881 #install_command1882 is initialized with latest version1883 behaves like a command1884 is an instance of Helm::InstallCommand1885 is initialized with knative arguments1886 does not install metrics for prometheus1887 with prometheus installed1888 installs metrics1889 #update_command1890 is initialized with current version1891 behaves like a command1892 is an instance of Helm::InstallCommand1893 is initialized with knative arguments1894 does not install metrics for prometheus1895 with prometheus installed1896 installs metrics1897 #uninstall_command1898 should be an instance of Gitlab::Kubernetes::Helm::DeleteCommand1899 removes knative deployed services before uninstallation1900 initializes command with all necessary postdelete script1901 #files1902 includes knative specific keys in the values.yaml file1903 validations1904 should validate that :hostname cannot be empty/falsy1905CycleAnalytics#test1906 start condition: pipeline is started1907 end condition: pipeline is finished1908 finds the median of available durations between the two conditions1909 when the data belongs to another project1910 returns nil1911 when the end condition happens before the start condition1912 returns nil1913 start condition NOT PRESENT: pipeline is started1914 end condition: pipeline is finished1915 returns nil1916 start condition: pipeline is started1917 end condition NOT PRESENT: pipeline is finished1918 returns nil1919 when none of the start / end conditions are matched1920 returns nil1921 when the pipeline is for a regular merge request (that doesn't close an issue)1922 returns nil1923 when the pipeline is not for a merge request1924 returns nil1925 when the pipeline is dropped (failed)1926 returns nil1927 when the pipeline is cancelled1928 returns nil1929EmailsOnPushWorker1930 #perform1931 when push is a new branch1932 sends a mail with the correct subject1933 sends the mail to the correct recipient1934 when push is a deleted branch1935 sends a mail with the correct subject1936 sends the mail to the correct recipient1937 when push is a force push to delete commits1938 sends a mail with the correct subject1939 mentions force pushing in the body1940 sends the mail to the correct recipient1941 when there are no errors in sending1942 sends a mail with the correct subject1943 does not mention force pushing in the body1944 sends the mail to the correct recipient1945 when there is an SMTP error1946 gracefully handles an input SMTP error1947 when there are multiple recipients1948 when the recipient addresses are a list of email addresses1949 sends the mail to each of the recipients1950 only generates the mail once1951 when the recipient addresses contains angle brackets and are separated by spaces1952 accepts emails separated by whitespace1953 when the recipient addresses contain a mix of emails with and without angle brackets1954 accepts both kind of emails1955 when the recipient addresses contains angle brackets and are separated by newlines1956 accepts emails separated by newlines1957GitlabUsagePingWorker1958 delegates to SubmitUsagePingService1959Gitlab::ProjectSearchResults1960 does not list issues on private projects1961 initialize with empty ref1962 should eq #<Project id:142 namespace62/project101>1963 should eq "hello world"1964 initialize with ref1965 should eq #<Project id:144 namespace64/project103>1966 should eq "refs/heads/test"1967 should eq "hello world"1968 #formatted_count1969 scope: "blobs", count_method: :blobs_count, expected: "1234"1970 returns the expected formatted count1971 scope: "notes", count_method: :limited_notes_count, expected: "99+"1972 returns the expected formatted count1973 scope: "wiki_blobs", count_method: :wiki_blobs_count, expected: "1234"1974 returns the expected formatted count1975 scope: "commits", count_method: :commits_count, expected: "1234"1976 returns the expected formatted count1977 scope: "projects", count_method: :limited_projects_count, expected: "99+"1978 returns the expected formatted count1979 scope: "unknown", count_method: nil, expected: nil1980 returns the expected formatted count1981 blob search1982 behaves like general blob search1983 finds by name1984 loads all blobs for filename matches in single batch1985 finds by content1986 when repository is disabled1987 hides blobs from members1988 hides blobs from non-members1989 when repository is internal1990 finds blobs for members1991 hides blobs from non-members1992 behaves like blob search repository ref1993 when repository_ref exists1994 uses it1995 when repository_ref is not present1996 uses project repository default reference1997 when repository_ref is blank1998 uses project repository default reference1999 wiki search2000 behaves like general blob search2001 finds by name2002 loads all blobs for filename matches in single batch2003 finds by content2004 when wiki is disabled2005 hides wiki blobs from members2006 hides wiki blobs from non-members2007 when wiki is internal2008 finds wiki blobs for members2009 hides wiki blobs from non-members2010 behaves like blob search repository ref2011 when repository_ref exists2012 uses it2013 when repository_ref is not present2014 uses wiki repository default reference2015 when repository_ref is blank2016 uses wiki repository default reference2017 confidential issues2018 does not list project confidential issues for non project members2019 does not list project confidential issues for project members with guest role2020 lists project confidential issues for author2021 lists project confidential issues for assignee2022 lists project confidential issues for project members2023 lists all project issues for admin2024 notes search2025 lists notes2026 doesn't list issue notes when access is restricted2027 doesn't list merge_request notes when access is restricted2028 #limited_notes_count2029 when count_limit is lower than total amount2030 calls note finder once to get the limited amount of notes2031 when count_limit is higher than total amount2032 calls note finder multiple times to get the limited amount of notes2033 commit search2034 by commit message2035 finds commit by message2036 handles when no commit match2037 behaves like access restricted commits2038 when project is internal2039 does not search if user is not authenticated2040 searches if user is authenticated2041 when project is private2042 does not show commit to stranger2043 team access2044 shows commit to creator2045 shows commit to master2046 shows commit to reporter2047 by commit hash2048 shows commit by short hash id2049 shows commit by full hash id2050 handles not existing commit hash correctly2051 behaves like access restricted commits2052 when project is internal2053 does not search if user is not authenticated2054 searches if user is authenticated2055 when project is private2056 does not show commit to stranger2057 team access2058 shows commit to creator2059 shows commit to master2060 shows commit to reporter2061 user search2062 returns the user belonging to the project matching the search query2063 returns the user belonging to the group matching the search query2064Deployments::AfterCreateService2065 #execute2066 invalidates the environment etag cache2067 creates ref2068 updates merge request metrics2069 returns the deployment2070 returns the deployment when could not save the environment2071 returns the deployment when environment is stopped2072 when start action is defined2073 and environment is stopped2074 makes environment available2075 when variables are used2076 does not create a new environment2077 updates external url2078 #expanded_environment_url2079 when yaml environment uses $CI_COMMIT_REF_NAME2080 should eq "http://review/master"2081 when yaml environment uses $CI_ENVIRONMENT_SLUG2082 should eq "http://review/prod-slug"2083 when yaml environment uses yaml_variables containing symbol keys2084 should eq "http://review/host"2085 when yaml environment does not have url2086 returns the external_url from persisted environment2087 merge request metrics2088 while updating the 'first_deployed_to_production_at' time2089 for merge requests merged before the current deploy2090 sets the time if the deploy's environment is 'production'2091 does not raise errors if the merge request does not have a metrics record2092 when job deploys to staging2093 doesn't set the time if the deploy's environment is not 'production'2094 for merge requests merged before the previous deploy2095 if the 'first_deployed_to_production_at' time is already set2096 does not overwrite the older 'first_deployed_to_production_at' time2097 if the 'first_deployed_to_production_at' time is not already set2098 does not overwrite the older 'first_deployed_to_production_at' time2099Puma2100[6993] Puma starting in cluster mode...2101[6993] * Version 3.12.0 (ruby 2.6.3-p62), codename: Llamas in Pajamas2102[6993] * Min threads: 1, max threads: 42103[6993] * Environment: test2104[6993] * Process workers: 12105[6993] * Preloading application2106[6993] * Listening on unix:///builds/gtsiolis/gitlab-foss/tmp/tests/puma.socket2107[6993] Use Ctrl-C to stop2108 has a worker that self-terminates on signal SIGQUIT2109 has a worker that self-terminates on signal SIGTERM2110 has a worker that self-terminates on signal SIGKILL2111Groups::DestroyService2112 asynchronous delete2113 behaves like group destruction2114 database records2115 should not include #<Group id:809 @group82>2116 should not include #<Group id:815 @group84/group85>2117 should not include #<Project id:247 group86/project206>2118 should not include #<NotificationSetting id: 331, user_id: 738, source_id: 824, source_type: "Namespace", level: "global...ush_to_merge_request: nil, issue_due: nil, new_epic: nil, notification_email: nil, new_release: nil>2119 mattermost team2120 destroys the team too2121 file system2122 Sidekiq inline2123 verifies that paths have been deleted2124 Sidekiq fake2125 verifies original paths and projects still exist2126 synchronous delete2127 behaves like group destruction2128 database records2129 should not include #<Group id:844 @group96>2130 should not include #<Group id:850 @group98/group99>2131 should not include #<Project id:254 group100/project213>2132 should not include #<NotificationSetting id: 352, user_id: 759, source_id: 859, source_type: "Namespace", level: "global...ush_to_merge_request: nil, issue_due: nil, new_epic: nil, notification_email: nil, new_release: nil>2133 mattermost team2134 destroys the team too2135 file system2136 Sidekiq inline2137 verifies that paths have been deleted2138 projects in pending_delete2139 behaves like group destruction2140 database records2141 should not include #<Group id:874 @group108>2142 should not include #<Group id:880 @group110/group111>2143 should not include #<Project id:260 group112/project219>2144 should not include #<NotificationSetting id: 370, user_id: 777, source_id: 889, source_type: "Namespace", level: "global...ush_to_merge_request: nil, issue_due: nil, new_epic: nil, notification_email: nil, new_release: nil>2145 mattermost team2146 destroys the team too2147 file system2148 Sidekiq inline2149 verifies that paths have been deleted2150 repository removal status is taken into account2151 raises exception2152 repository removal2153 legacy storage2154 removes repository2155 hashed storage2156 removes repository2157ProjectPresenter2158 #license_short_name2159 when project.repository has a license_key2160 returns the nickname of the license if present2161 returns the name of the license if nickname is not present2162 when project.repository has no license_key but a license_blob2163 returns LICENSE2164 #default_view2165 user not signed in2166 when repository is empty2167 returns activity if user has repository access2168 returns activity if user does not have repository access2169 when repository is not empty2170 returns files and readme if user has repository access2171 returns activity if user does not have repository access2172 user signed in2173 when the user is allowed to see the code2174 returns the project view2175 with wikis enabled and the right policy for the user2176 returns wiki if the user has the right policy2177 returns customize_workflow if the user does not have the right policy2178 with issues as a feature available2179 return issues2180 with no activity, no wikies and no issues2181 returns customize_workflow as default2182 #can_current_user_push_code?2183 empty repo2184 returns true if user can push_code2185 returns false if user cannot push_code2186 not empty repo2187 returns true if user can push to default branch2188 returns false if default branch is protected2189 statistics anchors (empty repo)2190 #files_anchor_data2191 returns files data2192 #commits_anchor_data2193 returns commits data2194 #branches_anchor_data2195 returns branches data2196 #tags_anchor_data2197 returns tags data2198 statistics anchors2199 #files_anchor_data2200 returns files data2201 #commits_anchor_data2202 returns commits data2203 #branches_anchor_data2204 returns branches data2205 #tags_anchor_data2206 returns tags data2207 #new_file_anchor_data2208 returns new file data if user can push2209 returns nil if user cannot push2210 when the project is empty2211 is empty for a developer2212 #readme_anchor_data2213 when user can push and README does not exists2214 returns anchor data2215 when README exists2216 returns anchor data2217 #changelog_anchor_data2218 when user can push and CHANGELOG does not exist2219 returns anchor data2220 when CHANGELOG exists2221 returns anchor data2222 #license_anchor_data2223 when user can push and LICENSE does not exist2224 returns anchor data2225 when LICENSE exists2226 returns anchor data2227 #contribution_guide_anchor_data2228 when user can push and CONTRIBUTING does not exist2229 returns anchor data2230 when CONTRIBUTING exists2231 returns anchor data2232 #autodevops_anchor_data2233 when Auto Devops is enabled2234 returns anchor data2235 when user can admin pipeline and CI yml does not exist2236 returns anchor data2237 #kubernetes_cluster_anchor_data2238 when user can create Kubernetes cluster2239 returns link to cluster if only one exists2240 returns link to clusters page if more than one exists2241 returns link to create a cluster if no cluster exists2242 when user cannot create Kubernetes cluster2243 returns nil2244 #statistics_buttons2245 orders the items correctly2246 #empty_repo_statistics_buttons2247 orders the items correctly in an empty project2248MergeRequests::RebaseService2249 #execute2250 when another rebase is already in progress2251 saves the error message2252 returns an error2253 clears rebase_jid2254 behaves like sequence of failure and success2255 properly clears the error message2256 with deprecated step rebase feature2257 behaves like sequence of failure and success2258 properly clears the error message2259 when unexpected error occurs2260 saves a generic error message2261 returns an error2262 with git command failure2263 saves a generic error message2264 returns an error2265 valid params2266 when the two_step_rebase feature is enabled2267 behaves like a service that can execute a successful rebase2268 rebases source branch2269 records the new SHA on the merge request2270 logs correct author and committer2271 when the two_step_rebase feature is disabled2272 behaves like a service that can execute a successful rebase2273 rebases source branch2274 records the new SHA on the merge request2275 logs correct author and committer2276 fork2277 successful fork rebase2278 rebases source branch2279ObjectStorage2280 #object_store=2281 reload the local storage2282 reload the REMOTE storage2283 object_store is Store::LOCAL2284 #store_dir2285 is the composition of (base_dir, dynamic_segment)2286 object_store is Store::REMOTE2287 #store_dir2288 is the composition of (dynamic_segment)2289 #object_store2290 delegates to <mount>_store on model2291 when store is null2292 uses Store::LOCAL2293 when value is set2294 returns the given value2295 #file_cache_storage?2296 when file storage is used2297 should be file cache storage2298 when is remote storage2299 should not be file cache storage2300 when persist_object_store? is false2301 should be a kind of Avatarable2302 should be falsey2303 delegates the object_store logic to the `Upload` model2304 sets @upload to the found `upload`2305 sets @object_store to the `Upload` value2306 #migrate!2307 persist @object_store to the recorded upload2308 fails2309 is handled gracefully2310 persist_object_store? is true2311 when using JobArtifactsUploader2312 checking described_class2313 uploader include described_class::Concern2314 #use_file2315 when file is stored locally2316 calls a regular path2317 when file is stored remotely2318 calls a cache path2319 cleans up the cached file2320 #migrate!2321 when using the same storage2322 to not migrate the storage2323 when migrating to local storage2324 should eq 12325 local file does not exist2326 remote file exist2327 does migrate the file2328 when migrating to remote storage2329 file does exist2330 when storage is disabled2331 to raise an error2332 when credentials are set2333 should eq 22334 does migrate the file2335 does delete original file2336 when subject save fails2337 original file is not removed2338 #fog_directory2339 should eq "directory"2340 when file is in use2341 cannot migrate2342 cannot use_file2343 can still migrate other files of the same model2344 #fog_credentials2345 should eq {:provider=>"AWS"}2346 #fog_public2347 should eq nil2348 .workhorse_authorize2349 when object storage is disabled2350 behaves like uses local storage2351 returns temporary path2352 when object storage is enabled2353 when direct upload is enabled2354 uses AWS2355 for known length2356 behaves like uses remote storage without multipart uploads2357 returns links for S32358 behaves like uses remote storage2359 returns remote store2360 does not return multipart upload2361 for unknown length2362 behaves like uses remote storage with multipart uploads2363 returns links for S32364 behaves like uses remote storage2365 returns remote store2366 returns multipart upload2367 uses Google2368 for known length2369 behaves like uses remote storage without multipart uploads2370[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2371 returns links for Google Cloud2372 behaves like uses remote storage2373[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2374 returns remote store2375[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2376 does not return multipart upload2377 for unknown length2378 behaves like uses remote storage without multipart uploads2379[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2380 returns links for Google Cloud2381 behaves like uses remote storage2382[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2383 returns remote store2384[fog][DEPRECATION] Fog::Storage::Google => #get_object_url is deprecated, use #get_object_https_url instead (/builds/gtsiolis/gitlab-foss/lib/object_storage/direct_upload.rb:69:in `get_url')2385 does not return multipart upload2386 uses GDK/minio2387 for known length2388 behaves like uses remote storage without multipart uploads2389 returns links for S32390 behaves like uses remote storage2391 returns remote store2392 does not return multipart upload2393 for unknown length2394 behaves like uses remote storage with multipart uploads2395 returns links for S32396 behaves like uses remote storage2397 returns remote store2398 returns multipart upload2399 when direct upload is disabled2400 behaves like uses local storage2401 returns temporary path2402 #cache!2403 when local file is used2404 when valid file is used2405 properly caches the file2406 when local file is used2407 when valid file is used2408 when valid file is specified2409 when object storage and direct upload is specified2410 when file is stored2411 file to be remotely stored in permament location2412 when object storage and direct upload is not used2413 when file is stored2414 file to be remotely stored in permament location2415 when remote file is used2416 when valid file is used2417 when invalid file is specified2418 raises an error2419 when non existing file is specified2420 raises an error2421 when valid file is specified2422 file to be cached and remote stored2423 when file is stored2424 file to be remotely stored in permament location2425 #retrieve_from_store!2426 for groups2427 batches fetching uploads from the database2428 does not attempt to replace methods2429 fetches a unique upload for each model2430 for projects2431 batches fetching uploads from the database2432 does not attempt to replace methods2433 fetches a unique upload for each model2434 for users2435 batches fetching uploads from the database2436 does not attempt to replace methods2437 fetches a unique upload for each model2438Gitlab::CycleAnalytics::PlanStage2439 behaves like base stage2440 has the median data value2441 has the median data stage2442 has the median data description2443 has the title2444 has the events2445 when using the new query backend2446 provides the same results as the old implementation2447 for the median2448 for the list of event records2449 #project_median2450 counts median from issues with metrics2451 when valid date range is given2452 should eq 18002453 when records are out of the date range2454 should eq nil2455 #events2456 exposes issues with metrics2457 when group is given2458 #group_median2459 counts median from issues with metrics2460 #events2461 exposes merge requests that close issues2462 when subgroup is given2463 #events2464 exposes merge requests that close issues2465 exposes merge requests that close issues with full path for subgroup2466Ci::PipelineSchedule2467 should belong to project required:2468 should belong to owner required:2469 should have many pipelines2470 should have many variables2471 should respond to #ref2472 should respond to #cron2473 should respond to #cron_timezone2474 should respond to #description2475 should respond to #next_run_at2476 validations2477 does not allow invalid cron patters2478 does not allow invalid cron patters2479 when active is false2480 does not allow nullified ref2481 when cron contains trailing whitespaces2482 strips the attribute2483 .runnable_schedules2484 returns the runnable schedule2485 when there are no runnable schedules2486 returns an empty array2487 .preloaded2488 preloads the associations2489 #set_next_run_at2490 when PipelineScheduleWorker runs at a specific interval2491 updates next_run_at to the sidekiq worker's execution time2492 when pipeline schedule runs every minute2493 updates next_run_at to the sidekiq worker's execution time2494 when there are two different pipeline schedules in different time zones2495 sets different next_run_at2496 when there are two different pipeline schedules in the same time zones2497 sets the sames next_run_at2498 when updates cron of exsisted pipeline schedule2499 updates next_run_at automatically2500 #schedule_next_run!2501 updates next_run_at2502 when record is invalid2503 nullifies the next run at2504 #job_variables2505 should contain exactly {:file=>false, :key=>"VARIABLE_1", :public=>false, :value=>"VARIABLE_VALUE"} and {:file=>false, :key=>"VARIABLE_2", :public=>false, :value=>"VARIABLE_VALUE"}2506Gitlab::GithubImport::UserFinder2507 #author_id_for2508 returns the user ID for the author of an object2509 returns the ID of the project creator if no user ID could be found2510 returns the ID of the ghost user when the object has no user2511 returns the ID of the ghost user when the given object is nil2512 #assignee_id_for2513 returns the user ID for the assignee of an issuable2514 returns nil if the issuable does not have an assignee2515 #user_id_for2516 returns the user ID for the given user2517 #find2518 without a cache2519 finds a GitLab user for a GitHub user ID2520 finds a GitLab user for a GitHub Email address2521 with a cache2522 returns the cached user ID2523 does not query the database if the cache key exists but is empty2524 #find_from_cache2525 retrieves a GitLab user ID for a GitHub user ID2526 retrieves a GitLab user ID for a GitHub Email address2527 does not query the cache for an Email address when none is given2528 #find_id_from_database2529 returns the GitLab user ID for a GitHub user ID2530 returns the GitLab user ID for a GitHub Email address2531 #email_for_github_username2532 when an Email address is cached2533 reads the Email address from the cache2534 when an Email address is not cached2535 retrieves the Email address from the GitHub API2536 caches the Email address when an Email address is available2537 returns nil if the user does not exist2538 #cached_id_for_github_id2539 reads a user ID from the cache2540 reads a non existing cache key2541 #cached_id_for_github_email2542 reads a user ID from the cache2543 reads a non existing cache key2544 #id_for_github_id2545 queries and caches the user ID for a given GitHub ID2546 caches a nil value if no ID could be found2547 #id_for_github_email2548 queries and caches the user ID for a given Email address2549 caches a nil value if no ID could be found2550 #query_id_for_github_id2551 returns the ID of the user for the given GitHub user ID2552 returns nil when no user ID could be found2553 #query_id_for_github_email2554 returns the ID of the user for the given Email address2555 returns nil if no user ID could be found2556 #read_id_from_cache2557 reads an ID from the cache2558 reads a cache key with an empty value2559 reads a cache key that does not exist2560Gitlab::Cache::Ci::ProjectPipelineStatus2561 .load_for_project2562 loads the status2563 loading in batches2564 .load_in_batch_for_projects2565 loads pipeline_status on projects2566 loads 10 projects without hitting Gitaly call limit2567 .update_for_pipeline2568 refreshes the cache if nescessary2569 #has_status?2570 is false when the status wasn't loaded yet2571 is true when all status information was loaded2572 #load_status2573 loads the status from the cache when there is one2574 loads the status from the project commit when there is no cache2575 stores the status in the cache when it loading it from the project2576 sets the state to loaded2577 only loads the status once2578 #load_from_project2579 reads the status from the pipeline for the commit2580 doesn't fail for an empty project2581 #store_in_cache2582 sets the object in caching2583 #store_in_cache_if_needed2584 stores the state in the cache when the sha is the HEAD of the project2585 doesn't store the status in redis_cache when the sha is not the head of the project2586 deletes the cache if the repository doesn't have a head commit2587 with a status in caching2588 #load_from_cache2589 reads the status from redis_cache2590 when status is empty string2591 reads the status as nil2592 #has_cache?2593 knows the status is cached2594 #delete_from_cache2595 deletes values from redis_cache2596Banzai::Filter::IssuableStateFilter2597 ignores non-GFM links2598 ignores non-issuable links2599 ignores issuable links with empty content2600 ignores issuable links with custom anchor2601 ignores issuable links to specific comments2602 ignores merge request links to diffs tab2603 handles cross project references2604 handles references from group scopes2605 skips cross project references if the user cannot read cross project2606 does not append state when filter is not enabled2607 when project is in pending delete2608 does not append issue state2609 for issue references2610 ignores open issue references2611 appends state to closed issue references2612 appends state to moved issue references2613 for merge request references2614 ignores open merge request references2615 ignores reopened merge request references2616 ignores locked merge request references2617 appends state to closed merge request references2618 appends state to merged merge request references2619RepositoryForkWorker2620 modules2621 includes ProjectImportOptions2622 #perform2623 only project ID passed2624 behaves like RepositoryForkWorker performing2625 creates a new repository from a fork2626 protects the default branch2627 flushes various caches2628 handles bad fork2629 when a worker was reset without cleanup2630 creates a new repository from a fork2631 project ID, storage and repo paths passed2632 behaves like RepositoryForkWorker performing2633 creates a new repository from a fork2634 protects the default branch2635 flushes various caches2636 handles bad fork2637 when a worker was reset without cleanup2638 creates a new repository from a fork2639EventsHelper2640 #event_commit_title2641 returns the first line, truncated to 70 chars2642 is not html-safe2643 handles empty strings2644 handles nil values2645 does not escape HTML entities2646 #event_feed_url2647 returns project commit url2648 returns event note target url2649 returns project url2650 returns push event feed url2651 issue2652 returns the project issue url2653 contains the project issue IID link2654 merge request2655 returns the project merge request url2656 contains the project merge request IID link2657 #event_note_target_url2658 returns a commit note url2659 returns a project snippet note url2660 returns a project issue url2661 returns a merge request url2662Groups::UpdateService2663 #execute2664 project visibility_level validation2665 public group with public projects2666 does not change permission level2667 returns false if save failed2668 internal group with internal project2669 does not change permission level2670 internal group with private project2671 changes permission level to private2672 with parent_id user doesn't have permissions for2673 does not update parent_id2674 unauthorized visibility_level validation2675 does not change permission level2676 when updating #emails_disabled2677 updates the attribute2678 does not update when not group owner2679 rename group2680 returns true2681 error moving group2682 does not raise an error2683 returns false2684 has the right error2685 hasn't changed the path2686 projects in group have container images2687 does not allow path to be changed2688 allows other settings to be changed2689 for a subgroup2690 when the parent group share_with_group_lock is enabled2691 for the parent group owner2692 allows disabling share_with_group_lock2693 for a subgroup owner (who does not own the parent)2694 does not allow disabling share_with_group_lock2695Milestones::PromoteService2696 #execute2697 validations2698 raises error if milestone does not belong to a project2699 raises error if project does not belong to a group2700 does not promote milestone and update issuables if promoted milestone is not valid2701 without duplicated milestone titles across projects2702 promotes project milestone to group milestone2703 does not update issuables without milestone with the new promoted milestone2704 sets issuables with new promoted milestone2705 with duplicated milestone titles across projects2706 deletes project milestones with the same title2707 does not update issuables without milestone with the new promoted milestone2708 sets all issuables with new promoted milestone2709Gitlab::Diff::PositionTracer::ImageStrategy2710 #trace2711 diff scenarios2712 when the file was created in the old diff2713 when the file is unchanged between the old and the new diff2714 returns the new position2715 when the file was updated between the old and the new diff2716 returns the position of the change2717 when the file was renamed in between the old and the new diff2718 returns the position of the change2719 when the file was removed in between the old and the new diff2720 returns the position of the change2721 when the file is unchanged in the new diff2722 returns the position of the change2723 when the file was changed in the old diff2724 when the file is unchanged in between the old and the new diff2725 returns the new position2726 when the file was updated in between the old and the new diff2727 returns the position of the change2728 when the file was renamed in between the old and the new diff2729 returns the position of the change2730 when the file was removed in between the old and the new diff2731 returns the position of the change2732 when the file is unchanged in the new diff2733 returns the position of the change2734Banzai::Pipeline::GfmPipeline2735 integration between parsing regular and external issue references2736 when internal issue tracker is enabled2737 allows to use long external reference syntax for Redmine2738 parses cross-project references to regular issues2739 when shorthand pattern #ISSUE_ID is used2740 links an internal issue if it exists2741 does not link any issue if it does not exist on GitLab2742 when internal issue tracker is disabled2743 allows to use shorthand external reference syntax for Redmine2744 allows to use long external reference syntax for Redmine2745 parses cross-project references to regular issues2746 markdown link or image urls having spaces2747 rewrites links with spaces in url2748 rewrites images with spaces in url2749 sanitizes the fixed link2750 emoji in references2751 renders a label reference with emoji inside2752 renders a milestone reference with emoji inside2753 asset proxy2754 replaces a lazy loaded img src2755 autolinks images to the proxy2756 properly adds tooltips to link for IDN images2757AwardEmojis::DestroyService2758 #execute2759 when user is not authorized2760 behaves like a service that does not authorize the user2761 does not remove the emoji2762 returns an error state2763 returns a nil award2764 returns the error2765 when the user is authorized2766 when user has not awarded an emoji to the awardable2767 behaves like a service that does not authorize the user2768 does not remove the emoji2769 returns an error state2770 returns a nil award2771 returns the error2772 when user has awarded an emoji to the awardable2773 removes the emoji2774 returns a success status2775 returns no errors2776 returns the destroyed award2777Clusters::Kubernetes::CreateOrUpdateNamespaceService#execute2778 group clusters2779 when kubernetes namespace is not persisted2780 behaves like successful creation of kubernetes namespace2781 creates a Clusters::KubernetesNamespace2782 creates project service account2783 configures kubernetes token2784 project clusters2785 when kubernetes namespace is not persisted2786 behaves like successful creation of kubernetes namespace2787 creates a Clusters::KubernetesNamespace2788 creates project service account2789 configures kubernetes token2790 when there is a Kubernetes Namespace associated2791 does not create any Clusters::KubernetesNamespace2792 creates project service account2793 updates Clusters::KubernetesNamespace2794Gitlab::Git::ObjectPool2795 #storage2796 equals the pool repository's shard name2797 #create2798 when the pool doesn't exist yet2799 creates the pool2800 when the pool already exists2801 raises an FailedPrecondition2802 #exists?2803 when the object pool doesn't exist2804 returns false2805 when the object pool exists2806 returns true2807 #link2808 when linked for the first time2809 sets a remote2810 when the remote is already set2811 doesn't raise an error2812 #fetch2813 when the object's pool repository exists2814 does not raise an error2815 when the object's pool repository does not exist2816 re-creates the object pool's repository2817 does not raise an error2818 fetches objects from the source repository2819Gitlab::MultiCollectionPaginator2820 combines both collections2821 includes elements second collection if first collection is empty2822 with a full first page2823 knows the total count of the collection2824 fills the first page with elements of the first collection2825 fils the second page with a mixture of the first & second collection2826 fils the last page with elements from the second collection2827Releases::Link2828 associations2829 should belong to release required:2830 validation2831 should validate that :url cannot be empty/falsy2832 should validate that :name cannot be empty/falsy2833 when url is invalid2834 will be invalid2835 when duplicate name is added to a release2836 raises an error2837 when duplicate url is added to a release2838 raises an error2839 .sorted2840 returns a list of links by created_at order2841 #internal?2842 should be truthy2843 when link does not include project web url2844 should be falsy2845 #external?2846 should be truthy2847 supported protocols2848 protocol: "http"2849 will be valid2850 protocol: "https"2851 will be valid2852 protocol: "ftp"2853 will be valid2854 unsupported protocol2855 for torrent2856 will be invalid2857Gitlab::Diff::FileCollection::MergeRequestDiff2858 uses a different cache key if diff line keys change2859 returns a valid instance of a DiffCollection2860 #diff_files2861 does not highlight binary files2862 does not highlight files marked as undiffable in .gitattributes2863 behaves like unfoldable diff2864 calls Gitlab::Diff::File#unfold_diff_lines with correct position2865 behaves like diff statistics2866 when should request diff stats2867 Repository#diff_stats is called2868 Gitlab::Diff::File is initialized with diff stats2869 when should not request diff stats2870 Repository#diff_stats is not called2871Gitlab::Ci::Build::Rules2872 .new2873 with no rules2874 sets @rule_list to an empty array2875 sets @default_when to "on_success"2876 with one rule2877 sets @rule_list to an array of a single rule2878 sets @default_when to "on_success"2879 with multiple rules2880 sets @rule_list to an array of a single rule2881 sets @default_when to "on_success"2882 with a specified default when:2883 sets @rule_list to an array of a single rule2884 sets @default_when to "manual"2885 #evaluate2886 with nil rules2887 should eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil>2888 and when:manual set as the default2889 should eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil>2890 with no rules2891 should eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil>2892 and when:manual set as the default2893 should eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil>2894 with one rule without any clauses2895 should eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil>2896 with one matching rule2897 should eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil>2898 with two matching rules2899 returns the value of the first matched rule in the list2900 with a non-matching and matching rule2901 should eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil>2902 with a matching and non-matching rule2903 should eq #<struct Gitlab::Ci::Build::Rules::Result when="delayed", start_in="1 day">2904 with non-matching rules2905 should eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil>2906 and when:manual set as the default2907 does not return the default when:2908NotificationSetting2909 behaves like having unique enum values2910 has unique values in "level"2911 Associations2912 should belong to user required:2913 should belong to source required:2914 Validation2915 should validate that :user cannot be empty/falsy2916 should validate that :level cannot be empty/falsy2917 user_id2918 should validate that :user_id is case-sensitively unique within the scope of :source_type and :source_id, producing a custom validation error on failure2919 events2920 parses boolean before saving2921 #for_projects2922 excludes projects pending delete2923 #event_enabled?2924 for an event with a matching column name2925 returns the value of the column2926 when the column has a nil value2927 returns false2928 for an event without a matching column name2929 returns false2930 .email_events2931 returns email events2932 includes EXCLUDED_WATCHER_EVENTS2933 #email_events2934 calls email_events2935UserInteractedProject2936 should validate that :project_id cannot be empty/falsy2937 should validate that :user_id cannot be empty/falsy2938 .track2939 sets project accordingly2940 sets user accordingly2941 only creates a record once per user/project2942 for all actions (event types)2943 creates a record2944 for all actions (event types)2945 creates a record2946 for all actions (event types)2947 creates a record2948 for all actions (event types)2949 creates a record2950 for all actions (event types)2951 creates a record2952 for all actions (event types)2953 creates a record2954 for all actions (event types)2955 creates a record2956 for all actions (event types)2957 creates a record2958 for all actions (event types)2959 creates a record2960 for all actions (event types)2961 creates a record2962 for all actions (event types)2963 creates a record2964 with an event without a project2965 ignores the event2966 .available?2967 checks schema version and properly caches positive result2968ContainerRegistry::Path2969 #components2970 splits components by a forward slash2971 #nodes2972 when repository path is valid2973 return all project path like node in reverse order2974 when repository path is invalid2975 rasises en error2976 #to_s2977 when path does not have uppercase characters2978 return a string with a repository path2979 when path has uppercase characters2980 return a string with a repository path2981 #valid?2982 when path has less than two components2983 should not be valid2984 when path has more than allowed number of components2985 should not be valid2986 when path has invalid characters2987 should not be valid2988 when path has two or more components2989 should be valid2990 when path is related to multi-level image2991 should be valid2992 when path contains uppercase letters2993 should be valid2994 when path contains double underscore2995 should be valid2996 when path contains invalid separator with dot2997 should not be valid2998 when path contains invalid separator with underscore2999 should not be valid3000 #has_repository?3001 when project exists3002 when path already has matching repository3003 should have repository3004 should have project3005 when path does not have matching repository3006 should not have repository3007 should have project3008 when project does not exist3009 should not have repository3010 should not have project3011 #repository_project3012 when project for given path exists3013 returns a correct project3014 when project for given path does not exist3015 returns nil3016 when matching multi-level path3017 when using the zero-level path3018 supports zero-level path3019 when using first-level path3020 supports first-level path3021 when using second-level path3022 supports second-level path3023 when using too deep nesting in the path3024 does not support three-levels of nesting3025 #repository_name3026 when project does not exist3027 returns nil3028 when project exists3029 when project path equal repository path3030 returns an empty string3031 when repository path has one additional level3032 returns a correct repository name3033 when repository path has two additional levels3034 returns a correct repository name3035 #project_path3036 when project does not exist3037 returns nil3038 when project with uppercase characters in path exists3039 returns downcased project path3040MergeRequests::ReloadDiffsService3041 #execute3042 creates new merge request diff3043 calls update_diff_discussion_positions with correct params3044 does not change existing merge request diff3045 cache clearing3046 clears the cache for older diffs on the merge request3047 avoids N+1 queries3048Gitlab::UrlBuilder3049 .build3050 when passing a Commit3051 returns a proper URL3052 when passing an Issue3053 returns a proper URL3054 when passing a Milestone3055 belonging to a project3056 returns a proper URL3057 belonging to a group3058 returns a proper URL3059 when passing a MergeRequest3060 returns a proper URL3061 when passing a Note3062 on a Commit3063 returns a proper URL3064 on a Commit Diff3065 returns a proper URL3066 on an Issue3067 returns a proper URL3068 on a MergeRequest3069 returns a proper URL3070 on a MergeRequest Diff3071 returns a proper URL3072 on a ProjectSnippet3073 returns a proper URL3074 on a PersonalSnippet3075 returns a proper URL3076 on another object3077 returns a proper URL3078 when passing a WikiPage3079 returns a proper URL3080projects/artifacts/_artifact.html.haml3081 delete button3082 with admin3083 has a delete button3084 with owner3085 has a delete button3086 with master3087 has a delete button3088 with developer3089 has no delete button3090 with reporter3091 has no delete button3092Gitlab::LfsToken3093 #token3094 when the actor is a user3095 returns the correct username3096 returns the correct token type3097 behaves like a valid LFS token3098 returns a computed token3099 when the actor is a key3100 returns the correct username3101 returns the correct token type3102 behaves like a valid LFS token3103 returns a computed token3104 when the actor is a deploy key3105 returns the correct username3106 returns the correct token type3107 behaves like a valid LFS token3108 returns a computed token3109 when the actor is invalid3110 raises an exception3111 #token_valid?3112 where the token is invalid3113 because it's junk3114 returns false3115 because it's been fiddled with3116 returns false3117 because it was generated with a different secret3118 returns false3119 because it's expired3120 returns false3121 where the token is valid3122 returns true3123 when the actor is a regular user3124 when the user is blocked3125 returns false3126 when the user password is expired3127 returns false3128 when the actor is an ldap user3129 when the user is blocked3130 returns false3131 when the user password is expired3132 returns true3133 #deploy_key_pushable?3134 when actor is not a DeployKey3135 returns false3136 when actor is a DeployKey3137 but the DeployKey cannot push to the project3138 returns false3139 and the DeployKey can push to the project3140 returns true3141 #type3142 when actor is not a User3143 returns false3144 when actor is a User3145 returns false3146 #authentication_payload3147 returns a Hash designed for gitlab-shell3148AutoDevopsHelper3149 .show_auto_devops_callout?3150 when auto devops is implicitly enabled3151 should eq false3152 when auto devops is not implicitly enabled3153 should eq true3154 when the banner is disabled by feature flag3155 should be falsy3156 when dismissed3157 should eq false3158 when user cannot admin project3159 should eq false3160 when auto devops is enabled system-wide3161 should eq false3162 when auto devops is explicitly enabled for project3163 should eq false3164 when auto devops is explicitly disabled for project3165 should eq false3166 when master contains a .gitlab-ci.yml file3167 should eq false3168 when another service is enabled3169 should eq false3170 #badge_for_auto_devops_scope3171 when receiver is a group3172 when explicitly enabled3173 should eq "group enabled"3174 when explicitly disabled3175 should be nil3176 when auto devops is implicitly enabled3177 by instance3178 should eq "instance enabled"3179 with groups3180 when auto devops is enabled on parent3181 should eq "group enabled"3182 when auto devops is enabled on parent group3183 should eq "group enabled"3184 when auto devops disabled set on parent group3185 should be nil3186 when receiver is a project3187 when auto devops is enabled at project level3188 should be nil3189 when auto devops is disabled at project level3190 should be nil3191 when auto devops is implicitly enabled3192 by instance3193 should eq "instance enabled"3194 with groups3195 when auto devops is enabled on group level3196 should eq "group enabled"3197 when auto devops is enabled on root group3198 should eq "group enabled"3199 when auto devops is implicitly disabled3200 by instance3201 should be nil3202 with groups3203 when auto devops is disabled on group level3204 should be nil3205 when root group is enabled and parent disabled3206 should be nil3207Issues::ReorderService3208 #execute3209 when ordering issues in a project3210 behaves like issues reorder service3211 when reordering issues3212 returns false with no params3213 returns false with both invalid params3214 sorts issues3215 when ordering issues in a group3216 behaves like issues reorder service3217 when reordering issues3218 returns false with no params3219 returns false with both invalid params3220 sorts issues3221 when ordering in a group issue list3222 sends the board_group_id parameter3223 sorts issues3224Projects::MoveDeployKeysProjectsService3225 #execute3226 moves the user's deploy keys from one project to another3227 does not link existent deploy_keys in the current project3228 rollbacks changes if transaction fails3229 when remove_remaining_elements is false3230 does not remove remaining deploy keys projects3231Metrics::Dashboard::ProjectDashboardService3232 get_dashboard3233 when the dashboard does not exist3234 behaves like misconfigured dashboard service response3235 returns an appropriate message and status code3236 behaves like raises error for users with insufficient permissions3237 when the user does not have sufficient access3238 behaves like misconfigured dashboard service response3239 returns an appropriate message and status code3240 when the dashboard exists3241 caches the unprocessed dashboard for subsequent calls3242 behaves like valid dashboard service response3243 behaves like valid dashboard service response for schema3244 returns a json representation of the dashboard3245 and the dashboard is then deleted3246 does not return the previously cached dashboard3247 when the dashboard is configured incorrectly3248 behaves like misconfigured dashboard service response3249 returns an appropriate message and status code3250 ::all_dashboard_paths3251 when there are no project dashboards3252 returns an empty array3253 when there are project dashboards available3254 returns the dashboard attributes3255Gitlab::PerformanceBar3256 should eq <#ActiveSupport::Cache::MemoryStore entries=0, size=0, options={}>3257 should eq <ActiveSupport::Cache::NullStore>3258 .enabled_for_user?3259 returns false when given user is nil3260 returns true when given user is an admin3261 returns false when allowed_group_id is nil3262 when allowed group ID does not exist3263 returns false3264 when allowed group exists3265 when user is not a member of the allowed group3266 returns false3267 behaves like allowed user IDs are cached3268 caches the allowed user IDs in cache3269 caches the allowed user IDs in L1 cache for 1 minute3270 caches the allowed user IDs in L2 cache for 5 minutes3271 when user is a member of the allowed group3272 returns true3273 behaves like allowed user IDs are cached3274 caches the allowed user IDs in cache3275 caches the allowed user IDs in L1 cache for 1 minute3276 caches the allowed user IDs in L2 cache for 5 minutes3277 when allowed group is nested3278 returns the nested group3279 when a nested group has the same path3280 returns false3281DeployKeyEntity3282 returns deploy keys with projects a user can read3283 should eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2019-10-23 14:16:12.492267924 +0000, :deploy...", :id=>18, :title=>"My title 378", :updated_at=>2019-10-23 14:16:12.492267924 +0000, :user_id=>nil}3284 user is an admin3285 should include {:can_edit => true}3286 user is a project maintainer3287 project deploy key3288 should include {:can_edit => true}3289 public deploy key3290 should include {:can_edit => true}3291ProtectedBranches::CreateService3292 #execute3293 creates a new protected branch3294 when user does not have permission3295 creates a new protected branch if we skip authorization step3296 raises Gitlab::Access:AccessDeniedError3297 when a policy restricts rule creation3298 prevents creation of the protected branch rule3299Gitlab::Graphql::Authorization3300 Field authorizations3301 with a single permission3302 returns the protected field when user has permission3303 returns nil when user is not authorized3304 with a collection of permissions3305 returns the protected field when user has all permissions3306 returns nil when user only has one of the permissions3307 returns nil when user only has none of the permissions3308 Field authorizations when field is a built in type3309 with a single permission3310 returns the protected field when user has permission3311 returns nil when user is not authorized3312 with a collection of permissions3313 returns the protected field when user has all permissions3314 returns nil when user only has one of the permissions3315 returns nil when user only has none of the permissions3316 Type authorizations3317 with a single permission3318 returns the protected field when user has permission3319 returns nil when user is not authorized3320 with a collection of permissions3321 returns the protected field when user has all permissions3322 returns nil when user only has one of the permissions3323 returns nil when user only has none of the permissions3324 type and field authorizations together3325 returns the protected field when user has all permissions3326 returns nil when user only has one of the permissions3327 returns nil when user only has none of the permissions3328 type authorizations when applied to a relay connection3329 returns only the elements visible to the user3330 returns nil when user is not authorized3331 limiting connections with multiple objects3332 only checks permissions for the first object3333 type authorizations when applied to a basic connection3334 returns the protected field when user has permission3335 returns nil when user is not authorized3336 Authorizations on active record relations3337 renders the issues the user has access to3338 does not check access on fields that will not be rendered3339NewReleaseWorker3340 sends a new release notification3341CI YML Templates3342 template_name: "Android.gitlab-ci.yml"3343 is valid3344 require default stages to be included3345 template_name: "Android-Fastlane.gitlab-ci.yml"3346 is valid3347 require default stages to be included3348 template_name: "Auto-DevOps.gitlab-ci.yml"3349 is valid3350 require default stages to be included3351 template_name: "Bash.gitlab-ci.yml"3352 is valid3353 require default stages to be included3354 template_name: "C++.gitlab-ci.yml"3355 is valid3356 require default stages to be included3357 template_name: "Chef.gitlab-ci.yml"3358 is valid3359 require default stages to be included3360 template_name: "Clojure.gitlab-ci.yml"3361 is valid3362 require default stages to be included3363 template_name: "Code-Quality.gitlab-ci.yml"3364 is valid3365 require default stages to be included3366 template_name: "Crystal.gitlab-ci.yml"3367 is valid3368 require default stages to be included3369 template_name: "Django.gitlab-ci.yml"3370 is valid3371 require default stages to be included3372 template_name: "Docker.gitlab-ci.yml"3373 is valid3374 require default stages to be included3375 template_name: "Elixir.gitlab-ci.yml"3376 is valid3377 require default stages to be included3378 template_name: "Go.gitlab-ci.yml"3379 is valid3380 require default stages to be included3381 template_name: "Gradle.gitlab-ci.yml"3382 is valid3383 require default stages to be included3384 template_name: "Grails.gitlab-ci.yml"3385 is valid3386 require default stages to be included3387 template_name: "Julia.gitlab-ci.yml"3388 is valid3389 require default stages to be included3390 template_name: "LaTeX.gitlab-ci.yml"3391 is valid3392 require default stages to be included3393 template_name: "Laravel.gitlab-ci.yml"3394 is valid3395 require default stages to be included3396 template_name: "Maven.gitlab-ci.yml"3397 is valid3398 require default stages to be included3399 template_name: "Mono.gitlab-ci.yml"3400 is valid3401 require default stages to be included3402 template_name: "Nodejs.gitlab-ci.yml"3403 is valid3404 require default stages to be included3405 template_name: "OpenShift.gitlab-ci.yml"3406 is valid3407 require default stages to be included3408 template_name: "PHP.gitlab-ci.yml"3409 is valid3410 require default stages to be included3411 template_name: "Packer.gitlab-ci.yml"3412 is valid3413 require default stages to be included3414 template_name: "Python.gitlab-ci.yml"3415 is valid3416 require default stages to be included3417 template_name: "Ruby.gitlab-ci.yml"3418 is valid3419 require default stages to be included3420 template_name: "Rust.gitlab-ci.yml"3421 is valid3422 require default stages to be included3423 template_name: "Scala.gitlab-ci.yml"3424 is valid3425 require default stages to be included3426 template_name: "Serverless.gitlab-ci.yml"3427 is valid3428 require default stages to be included3429 template_name: "Swift.gitlab-ci.yml"3430 is valid3431 require default stages to be included3432 template_name: "Terraform.gitlab-ci.yml"3433 is valid3434 require default stages to be included3435 template_name: "dotNET.gitlab-ci.yml"3436 is valid3437 require default stages to be included3438 template_name: "iOS-Fastlane.gitlab-ci.yml"3439 is valid3440 require default stages to be included3441 template_name: "Pages/Brunch.gitlab-ci.yml"3442 is valid3443 require default stages to be included3444 template_name: "Pages/Doxygen.gitlab-ci.yml"3445 is valid3446 require default stages to be included3447 template_name: "Pages/Gatsby.gitlab-ci.yml"3448 is valid3449 require default stages to be included3450 template_name: "Pages/HTML.gitlab-ci.yml"3451 is valid3452 require default stages to be included3453 template_name: "Pages/Harp.gitlab-ci.yml"3454 is valid3455 require default stages to be included3456 template_name: "Pages/Hexo.gitlab-ci.yml"3457 is valid3458 require default stages to be included3459 template_name: "Pages/Hugo.gitlab-ci.yml"3460 is valid3461 require default stages to be included3462 template_name: "Pages/Hyde.gitlab-ci.yml"3463 is valid3464 require default stages to be included3465 template_name: "Pages/JBake.gitlab-ci.yml"3466 is valid3467 require default stages to be included3468 template_name: "Pages/Jekyll.gitlab-ci.yml"3469 is valid3470 require default stages to be included3471 template_name: "Pages/Jigsaw.gitlab-ci.yml"3472 is valid3473 require default stages to be included3474 template_name: "Pages/Lektor.gitlab-ci.yml"3475 is valid3476 require default stages to be included3477 template_name: "Pages/Metalsmith.gitlab-ci.yml"3478 is valid3479 require default stages to be included3480 template_name: "Pages/Middleman.gitlab-ci.yml"3481 is valid3482 require default stages to be included3483 template_name: "Pages/Nanoc.gitlab-ci.yml"3484 is valid3485 require default stages to be included3486 template_name: "Pages/Octopress.gitlab-ci.yml"3487 is valid3488 require default stages to be included3489 template_name: "Pages/Pelican.gitlab-ci.yml"3490 is valid3491 require default stages to be included3492 template_name: "Pages/SwaggerUI.gitlab-ci.yml"3493 is valid3494 require default stages to be included3495Gitlab::Ci::YamlProcessor3496 #build_attributes3497 attributes list3498 returns valid build attributes3499 with job rules3500 returns valid build attributes3501 coverage entry3502 code coverage regexp3503 includes coverage regexp in build attributes3504 interruptible entry3505 interruptible job3506 should be truthy3507 interruptible job with default value3508 should not have key :interruptible3509 uninterruptible job3510 should be falsy3511 retry entry3512 when retry count is specified3513 includes retry count in build options attribute3514 when retry count is not specified3515 does not persist retry count in the database3516 allow failure entry3517 when job is a manual action3518 when allow_failure is defined3519 is not allowed to fail3520 when allow_failure is not defined3521 is allowed to fail3522 when job is not a manual action3523 when allow_failure is defined3524 is not allowed to fail3525 when allow_failure is not defined3526 is not allowed to fail3527 delayed job entry3528 when delayed is defined3529 has the attributes3530 #stages_attributes3531 returns stages seed attributes3532 only / except policies validations3533 when `only` has an invalid value3534 when it is integer3535 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:only has to be either an array of conditions or a hash"3536 when it is an array of integers3537 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:only config should be an array of strings or regexps"3538 when it is invalid regex3539 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:only config should be an array of strings or regexps"3540 when `except` has an invalid value3541 when it is integer3542 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:except has to be either an array of conditions or a hash"3543 when it is an array of integers3544 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:except config should be an array of strings or regexps"3545 when it is invalid regex3546 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:rspec:except config should be an array of strings or regexps"3547 Scripts handling3548 before_script3549 in global context3550 return commands with scripts concencaced3551 in default context3552 return commands with scripts concencaced3553 overwritten in local context3554 return commands with scripts concencaced3555 script3556 return commands with scripts concencaced3557 after_script3558 in global context3559 return after_script in options3560 in default context3561 return after_script in options3562 overwritten in local context3563 return after_script in options3564 Image and service handling3565 when extended docker configuration is used3566 returns image and service when defined3567 returns image and service when overridden for job3568 when etended docker configuration is not used3569 returns image and service when defined3570 returns image and service when overridden for job3571 Variables3572 when global variables are defined3573 returns global variables3574 when job and global variables are defined3575 returns all unique variables3576 when job variables are defined3577 when syntax is correct3578 returns job variables3579 when syntax is incorrect3580 when variables defined but invalid3581 raises error3582 when variables key defined but value not specified3583 returns empty array3584 when job variables are not defined3585 returns empty array3586 when using `extends`3587 when using simple `extends`3588 correctly extends rspec job3589 when using recursive `extends`3590 correctly extends rspec job3591 Include3592 when validating a ci config file with no project context3593 when a single string is provided3594 returns a validation error3595 when an array is provided3596 returns a validation error3597 when an array of wrong keyed object is provided3598 returns a validation error3599 when an array of mixed typed objects is provided3600 does not return any error3601 when the include type is incorrect3602 returns an invalid configuration error3603 when validating a ci config file within a project3604 when the included internal file is present3605 does not return an error3606 when the included internal file is not present3607 returns an error with missing file details3608 when:3609 on_success creates one build and sets when:3610 on_failure creates one build and sets when:3611 always creates one build and sets when:3612 manual creates one build and sets when:3613 delayed3614 with start_in3615 creates one build and sets when:3616 without start_in3617 raises an error3618 Parallel3619 when job is parallelized3620 returns parallelized jobs3621 does not have the original job3622 cache3623 returns cache when defined globally3624 returns cache when defined in default context3625 returns cache when defined in a job3626 overwrite cache when defined for a job and globally3627 when cache definition has unknown keys3628 raises relevant validation error3629 Artifacts3630 returns artifacts when defined3631 returns artifacts for when on_success defined3632 returns artifacts for when on_failure defined3633 returns artifacts for when always defined3634 #environment3635 when a production environment is specified3636 does return production3637 when hash is specified3638 does return production and URL3639 the url has a port as variable3640 allows a variable for the port3641 when no environment is specified3642 does return nil environment3643 is not a string3644 raises error3645 is not a valid string3646 raises error3647 when on_stop is specified3648 with matching job3649 does return a list of builds3650 without matching job3651 raises error3652 with close job without environment3653 raises error3654 with close job for different environment3655 raises error3656 with close job without stop action3657 raises error3658 Timeout3659 when no timeout was provided3660 does not include job_timeout3661 when an invalid timeout was provided3662 raises an error for invalid number3663 when some valid timeout was provided3664 returns provided timeout value3665 Dependencies3666 no dependencies3667 should not raise Exception3668 dependencies to builds3669 should not raise Exception3670 dependencies to builds defined as symbols3671 should not raise Exception3672 undefined dependency3673 should raise Gitlab::Ci::YamlProcessor::ValidationError with "test1 job: undefined dependency: undefined"3674 dependencies to deploy3675 should raise Gitlab::Ci::YamlProcessor::ValidationError with "test1 job: dependency deploy is not defined in prior stages"3676 when a job depends on another job that references a not-yet defined stage3677 should raise Gitlab::Ci::YamlProcessor::ValidationError with message matching /is not defined in prior stages/3678 Needs3679 no needs3680 should not raise Exception3681 needs two builds3682 does create jobs with valid specification3683 needs two builds defined as symbols3684 should not raise Exception3685 undefined need3686 should raise Gitlab::Ci::YamlProcessor::ValidationError with "test1 job: undefined need: undefined"3687 needs to deploy3688 should raise Gitlab::Ci::YamlProcessor::ValidationError with "test1 job: need deploy is not defined in prior stages"3689 needs and dependencies that are mismatching3690 should raise Gitlab::Ci::YamlProcessor::ValidationError with "jobs:test1 dependencies the build2 should be part of needs"3691 with when/rules conflict3692 raises no exceptions3693 returns all jobs regardless of their inclusion3694 used with job-level when3695 raises a ValidationError3696 used with job-level when:delayed3697 raises a ValidationError3698 Hidden jobs3699 when hidden job have a script definition3700 behaves like hidden_job_handling3701 doesn't create jobs that start with dot3702 when hidden job doesn't have a script definition3703 behaves like hidden_job_handling3704 doesn't create jobs that start with dot3705 YAML Alias/Anchor3706 when template is a job3707 behaves like job_templates_handling3708 is correctly supported for jobs3709 when template is a hidden job3710 behaves like job_templates_handling3711 is correctly supported for jobs3712 when job adds its own keys to a template definition3713 behaves like job_templates_handling3714 is correctly supported for jobs3715 Error handling3716 fails to parse YAML3717 indicates that object is invalid3718 returns errors if tags parameter is invalid3719 returns errors if before_script parameter is invalid3720 returns errors if job before_script parameter is not an array of strings3721 returns errors if after_script parameter is invalid3722 returns errors if job after_script parameter is not an array of strings3723 returns errors if image parameter is invalid3724 returns errors if job name is blank3725 returns errors if job name is non-string3726 returns errors if job image parameter is invalid3727 returns errors if services parameter is not an array3728 returns errors if services parameter is not an array of strings3729 returns errors if job services parameter is not an array3730 returns errors if job services parameter is not an array of strings3731 returns error if job configuration is invalid3732 returns errors if services configuration is not correct3733 returns errors if there are no jobs defined3734 returns errors if there are no visible jobs defined3735 returns errors if job allow_failure parameter is not an boolean3736 returns errors if job stage is not a string3737 returns errors if job stage is not a pre-defined stage3738 returns errors if job stage is not a defined stage3739 returns errors if stages is not an array3740 returns errors if stages is not an array of strings3741 returns errors if variables is not a map3742 returns errors if variables is not a map of key-value strings3743 returns errors if job when is not on_success, on_failure or always3744 returns errors if job artifacts:name is not an a string3745 returns errors if job artifacts:when is not an a predefined value3746 returns errors if job artifacts:expire_in is not an a string3747 returns errors if job artifacts:expire_in is not an a valid duration3748 returns errors if job artifacts:untracked is not an array of strings3749 returns errors if job artifacts:paths is not an array of strings3750 returns errors if cache:untracked is not an array of strings3751 returns errors if cache:paths is not an array of strings3752 returns errors if cache:key is not a string3753 returns errors if job cache:key is not an a string3754 returns errors if job cache:untracked is not an array of strings3755 returns errors if job cache:paths is not an array of strings3756 returns errors if job dependencies is not an array of strings3757 returns errors if pipeline variables expression policy is invalid3758 returns errors if pipeline changes policy is invalid3759 returns errors if extended hash configuration is invalid3760 #validation_message3761 when the YAML could not be parsed3762 should eq "Invalid configuration format"3763 when the tags parameter is invalid3764 should eq "jobs:rspec tags should be an array of strings"3765 when YAML content is empty3766 should eq "Please provide content of .gitlab-ci.yml"3767 when the YAML contains an unknown alias3768 should eq "Unknown alias: bad_alias"3769 when the YAML is valid3770 should be nil3771Search::GroupService3772 basic search3773 finding projects by name3774 in parent group3775 should contain exactly #<Project id:785 group280/group279/inner_project_name_1>, #<Project id:786 group280/group279/inner_project_name_2>, and #<Project id:787 group280/outer_project_name>3776 in subgroup3777 should contain exactly #<Project id:791 group282/group281/inner_project_name_1> and #<Project id:792 group282/group281/inner_project_name_2>3778Clusters::UpdateService3779 #execute3780 when correct params3781 when enabled is true3782 enables cluster3783 when enabled is false3784 disables cluster3785 when namespace is specified3786 updates namespace3787 when invalid params3788 returns false3789 when cluster is provided by GCP3790 does not change cluster name3791 when cluster is being created3792 rejects changes3793CreateGpgSignatureWorker3794 when GpgKey is found3795 calls Gitlab::Gpg::Commit#signature3796 can recover from exception and continue the signature process3797 handles when a string is passed in for the commit SHA3798 creates a signature once3799 when Commit is not found3800 does not raise errors3801 when Project is not found3802 does not raise errors3803 does not call Gitlab::Gpg::Commit#signature3804MergeRequestsHelper3805 ci_build_details_path3806 does not include api credentials in a link3807 #format_mr_branch_names3808 within the same project3809 should eq ["master", "feature"]3810 within different projects3811 should eq ["group283/project755:master", "namespace665/project755:feature"]3812 #tab_link_for3813 supports the :force_link option3814 removes the data-toggle attributes3815PoolRepository3816 associations3817 should belong to shard required:3818 should belong to source_project required:3819 should have many member_projects3820 validations3821 should validate that :shard cannot be empty/falsy3822 should validate that :source_project cannot be empty/falsy3823 #disk_path3824 sets the hashed disk_path3825 #mark_obsolete_if_last3826 when the last member leaves3827 schedules pool removal3828 when the second member leaves3829 does not schedule pool removal3830FileMover3831 #execute3832 local storage3833 when move and field update successful3834 updates the description correctly3835 updates existing upload record3836 schedules a background migration3837 when update_markdown fails3838 does not update the description3839 does not change the upload record3840 when tmp uploader is not local storage3841 when move and field update successful3842 updates the description correctly3843 creates new target upload record an delete the old upload3844 when update_markdown fails3845 does not update the description3846 does not change the upload record3847 security3848 when relative path is involved3849 does not trigger move if path is outside designated directory3850 when symlink is involved3851 does not trigger move if path is outside designated directory3852Gitlab::GithubImport::MilestoneFinder3853 #id_for3854 with a cache in place3855 returns the milestone ID of the given issuable3856 returns nil for an empty cache key3857 returns nil for an issuable with a non-existing milestone3858 without a cache in place3859 returns nil3860 #build_cache3861 builds the cache of all project milestones3862 #cache_key_for3863 returns the cache key for an IID3864RebaseWorker#perform3865 when rebasing an MR from a fork where upstream has protected branches3866 sets the correct project for running hooks3867Gitlab::Diff::FileCollection::Commit3868 behaves like diff statistics3869 when should request diff stats3870 Repository#diff_stats is called3871 Gitlab::Diff::File is initialized with diff stats3872 when should not request diff stats3873 Repository#diff_stats is not called3874 behaves like unfoldable diff3875 calls Gitlab::Diff::File#unfold_diff_lines with correct position3876ScheduleSyncIssuablesStateIdWhereNil3877NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3878NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3879NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3880NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3881 #up3882 issues3883 behaves like scheduling migrations3884== 20190506135400 ScheduleSyncIssuablesStateIdWhereNil: migrating =============3885-- transaction_open?()3886 -> 0.0001s3887-- select_one("SELECT current_setting('server_version_num') AS v")3888 -> 0.0008s3889-- indexes(:issues)3890 -> 0.0266s3891-- transaction_open?()3892 -> 0.0000s3893-- select_one("SELECT current_setting('server_version_num') AS v")3894 -> 0.0006s3895-- indexes(:merge_requests)3896 -> 0.0316s3897== 20190506135400 ScheduleSyncIssuablesStateIdWhereNil: migrated (0.1992s) ====3898 correctly schedules issuable sync background migration3899 merge requests3900 behaves like scheduling migrations3901== 20190506135400 ScheduleSyncIssuablesStateIdWhereNil: migrating =============3902-- transaction_open?()3903 -> 0.0004s3904-- select_one("SELECT current_setting('server_version_num') AS v")3905 -> 0.0008s3906-- indexes(:issues)3907 -> 0.0130s3908-- transaction_open?()3909 -> 0.0003s3910-- select_one("SELECT current_setting('server_version_num') AS v")3911 -> 0.0008s3912-- indexes(:merge_requests)3913 -> 0.0155s3914== 20190506135400 ScheduleSyncIssuablesStateIdWhereNil: migrated (0.1265s) ====3915 correctly schedules issuable sync background migration3916NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3917NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3918NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3919NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3920NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3921ObjectPool::CreateWorker3922 #perform3923 when the pool creation is successful3924 marks the pool as ready3925 when a the pool already exists3926 cleans up the pool3927 when the server raises an unknown error3928 marks the pool as failed3929 when the pool creation failed before3930 deletes the pool first3931Gitlab::BackgroundMigration::PopulateMergeRequestAssigneesTable3932NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3933NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3934NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3935NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3936 #perform3937 creates merge_request_assignees rows according to merge_requests3938 #perform_all_sync3939DEPRECATION 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 perform_all_sync at /builds/gtsiolis/gitlab-foss/lib/gitlab/background_migration/populate_merge_request_assignees_table.rb:23)3940DEPRECATION 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 perform_all_sync at /builds/gtsiolis/gitlab-foss/lib/gitlab/background_migration/populate_merge_request_assignees_table.rb:23)3941 executes peform for all merge requests in batches3942NOTICE: table "design_management_designs" does not exist, skipping3943NOTICE: table "design_management_designs_versions" does not exist, skipping3944NOTICE: table "design_management_versions" does not exist, skipping3945NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3946NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3947NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3948NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3949NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3950ShaValidator3951 with empty value3952 does not add any error if value is empty3953 with valid sha3954 does not add any error3955 with invalid sha3956 adds error to the record3957Projects::GroupLinks::CreateService#execute3958 adds group to project3959 returns false if group is blank3960 returns error if user is not allowed to share with a group3961Gitlab::LetsEncrypt::Order3962 #url3963 delegates to Acme::Client::Resources::Order3964 #status3965 delegates to Acme::Client::Resources::Order3966 #expires3967 delegates to Acme::Client::Resources::Order3968 #new_challenge3969 returns challenge3970 #request_certificate3971 generates csr and finalizes order3972MigrateExternalDiffsWorker3973 #perform3974 migrates the listed diff3975 does nothing if the diff is missing3976Gitlab::DataBuilder::WikiPage3977 .build3978 should be a kind of Hash3979 should eq "wiki_page"3980 should eq {:avatar_url=>"https://www.gravatar.com/avatar/60ccbc7b79218471758c80f8e0c98184?s=80&d=identicon", :name=>"John Doe1738", :username=>"user1710"}3981 should eq {:avatar_url=>nil, :ci_config_path=>nil, :default_branch=>"master", :description=>nil, :git_http_url=...pace696/project786.git", :visibility_level=>0, :web_url=>"http://localhost/namespace696/project786"}3982 should eq {:default_branch=>"master", :git_http_url=>"http://localhost/namespace696/project786.wiki.git", :git_...mespace696/project786.wiki", :web_url=>"http://localhost/namespace696/project786/-/wiki_pages/home"}3983 should include {"title" => "Title.with.dot", "content" => "Content for wiki page", "format" => "markdown"}3984 should include {:url => "http://localhost/namespace696/project786/-/wiki_pages/Title.with.dot"}3985 should include {:action => "create"}3986Gitlab::GithubImport::LabelFinder3987 #id_for3988 with a cache in place3989 returns the ID of the given label3990 returns nil for an empty cache key3991 returns nil for a non existing label name3992 without a cache in place3993 returns nil for a label3994 #build_cache3995 builds the cache of all project labels3996 #cache_key_for3997 returns the cache key for a label name3998Gitlab::FogbugzImport::ProjectCreator3999 creates project with private visibility level4000WebHookLog4001 should belong to web_hook required:4002 should serialize :request_headers class_name => Hash4003 should serialize :request_data class_name => Hash4004 should serialize :response_headers class_name => Hash4005 should validate that :web_hook cannot be empty/falsy4006 .recent4007 does not return web hook logs that are too old4008 returns the web hook logs in descending order4009 #success?4010 2xx4011 should be truthy4012 not 2xx4013 should be falsey4014 internal erorr4015 should be falsey4016Gitlab::Ci::Status::Build::Action4017 #label4018 when status has action4019 does not append text4020 when status does not have action4021 appends text about action not allowed4022 .matches?4023 when build is playable action4024 is a correct match4025 when build is not playable action4026 does not match4027 #badge_tooltip4028 returns the status4029Gitlab::Ci::Status::Stage::Common4030 does not have action4031 links to the pipeline details page4032 when user has permission to read pipeline4033 has details4034 when user does not have permission to read pipeline4035 does not have details4036Gitlab::Auth::LDAP::DN4037 #normalize_value4038 behaves like normalizes a DN attribute value4039 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"4040 normalizes the DN attribute value4041 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"4042 normalizes the DN attribute value4043 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"4044 normalizes the DN attribute value4045 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"4046 normalizes the DN attribute value4047 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "4048 normalizes the DN attribute value4049 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"4050 normalizes the DN attribute value4051 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"4052 normalizes the DN attribute value4053 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"4054 normalizes the DN attribute value4055 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"4056 normalizes the DN attribute value4057 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"4058 normalizes the DN attribute value4059 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"4060 normalizes the DN attribute value4061 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"4062 normalizes the DN attribute value4063 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"4064 normalizes the DN attribute value4065 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"4066 normalizes the DN attribute value4067 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"4068 normalizes the DN attribute value4069 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"4070 normalizes the DN attribute value4071 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"4072 normalizes the DN attribute value4073 when the given DN is malformed4074 when ending with a comma4075 raises MalformedError4076 when given a BER encoded attribute value with a space in it4077 raises MalformedError4078 when given a BER encoded attribute value with a non-hex character in it4079 raises MalformedError4080 when given a BER encoded attribute value with a non-hex character in it4081 raises MalformedError4082 when given a hex pair with a non-hex character in it, inside double quotes4083 raises MalformedError4084 with an open (as opposed to closed) double quote4085 raises MalformedError4086 with an invalid escaped hex code4087 raises MalformedError4088 with a value ending with the escape character4089 raises MalformedError4090 #to_normalized_s4091 behaves like normalizes a DN4092 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"4093 normalizes the DN4094 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"4095 normalizes the DN4096 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"4097 normalizes the DN4098 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4099 normalizes the DN4100 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""4101 normalizes the DN4102 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"4103 normalizes the DN4104 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"4105 normalizes the DN4106 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"4107 normalizes the DN4108 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"4109 normalizes the DN4110 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "4111 normalizes the DN4112 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"4113 normalizes the DN4114 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4115 normalizes the DN4116 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4117 normalizes the DN4118 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"4119 normalizes the DN4120 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"4121 normalizes the DN4122 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"4123 normalizes the DN4124 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4125 normalizes the DN4126 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"4127 normalizes the DN4128 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"4129 normalizes the DN4130 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"4131 normalizes the DN4132 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"4133 normalizes the DN4134 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"4135 normalizes the DN4136 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"4137 normalizes the DN4138 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"4139 normalizes the DN4140 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"4141 normalizes the DN4142 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"4143 normalizes the DN4144 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"4145 normalizes the DN4146 when we do not support the given DN format4147 multivalued RDNs4148 without extraneous whitespace4149 raises UnsupportedError4150 with extraneous whitespace4151 around the phone number plus sign4152 raises UnsupportedError4153 not around the phone number plus sign4154 raises UnsupportedError4155 when the given DN is malformed4156 when ending with a comma4157 raises MalformedError4158 when given a BER encoded attribute value with a space in it4159 raises MalformedError4160 when given a BER encoded attribute value with a non-hex character in it4161 raises MalformedError4162 when given a BER encoded attribute value with a non-hex character in it4163 raises MalformedError4164 when given a hex pair with a non-hex character in it, inside double quotes4165 raises MalformedError4166 without a name value pair4167 raises MalformedError4168 with an open (as opposed to closed) double quote4169 raises MalformedError4170 with an invalid escaped hex code4171 raises MalformedError4172 with a value ending with the escape character4173 raises MalformedError4174 with an invalid OID attribute type name4175 raises MalformedError4176 with a period in a non-OID attribute type name4177 raises MalformedError4178 when starting with non-space, non-alphanumeric character4179 raises MalformedError4180 when given a UID with an escaped equal sign4181 raises MalformedError4182Ci::FindExposedArtifactsService4183 #for_pipeline4184 with jobs having at most 1 matching exposed artifact4185 behaves like finds a single match4186 returns the artifact with exact location4187 with jobs having more than 1 matching exposed artifacts4188 behaves like finds multiple matches4189 returns the path to the artifacts browser4190 with jobs having more than 1 matching exposed artifacts inside a directory4191 behaves like finds multiple matches4192 returns the path to the artifacts browser4193 with jobs having paths with glob expression4194 behaves like finds a single match4195 returns the artifact with exact location4196 limiting results4197 returns first 2 results4198ForkNetworkMember4199 validations4200 should validate that :project cannot be empty/falsy4201 should validate that :fork_network cannot be empty/falsy4202 destroying a ForkNetworkMember4203 removes the fork network if it was the last member4204 does not destroy the fork network if there are members left4205Projects::LfsPointers::LfsImportService4206 when lfs is enabled for the project4207 downloads lfs objects4208 when no downloadable lfs object links4209 does not call LfsDownloadService4210 when an exception is raised4211 returns error4212 when lfs is not enabled for the project4213 does not download lfs objects4214ApplicationSetting::TermPolicy4215 has the correct permissions4216 for anonymous users4217 has the correct permissions4218 when the terms are not current4219 has the correct permissions4220 when the user already accepted the terms4221 has the correct permissions4222projects/blob/_viewer.html.haml4223 when the viewer is loaded asynchronously4224 when there is no render error4225 adds a URL to the blob viewer element4226 renders the loading indicator4227 when there is a render error4228 renders the error4229 when the viewer is loaded synchronously4230 when there is no render error4231 prepares the viewer4232 renders the viewer4233 when there is a render error4234 renders the error4235EnvironmentHelper4236 #render_deployment_status4237 when using a manual deployment4238 renders a span tag4239 when using a deployment from a build4240 renders a link tag4241EnqueueResetMergeStatusSecondRun4242NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4243NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4244NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4245NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4246== 20190620112608 EnqueueResetMergeStatusSecondRun: migrating =================4247-- Scheduling `ResetMergeStatus` jobs4248== 20190620112608 EnqueueResetMergeStatusSecondRun: migrated (0.0740s) ========4249 correctly schedules background migrations4250NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4251NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4252NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4253NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4254HashedStorage::ProjectMigrateWorker4255 #perform4256 skips when project no longer exists4257 skips when project is pending delete4258 delegates migration to service class when we have exclusive lease4259 skips when it cant acquire the exclusive lease4260Projects::ContainerRepository::CleanupTagsService4261 #execute4262 when no params are specified4263 does not remove anything4264 when regex matching everything is specified4265 does remove B* and C4266 when regex matching specific tags is used4267 does remove C and D4268 when removing a tagged image that is used by another tag4269 does not remove the tag4270 when removing keeping only 34271 does remove C as it is oldest4272 when removing older than 1 day4273 does remove B* and C as they are older than 1 day4274 when combining all parameters4275 does remove B* and C4276DeleteContainerRepositoryWorker4277 #perform4278 executes the destroy service4279 does not raise error when user could not be found4280 does not raise error when registry could not be found4281Metrics::Dashboard::SystemDashboardService4282 get_dashboard4283 caches the unprocessed dashboard for subsequent calls4284 behaves like valid dashboard service response4285 behaves like valid dashboard service response for schema4286 returns a json representation of the dashboard4287 behaves like raises error for users with insufficient permissions4288 when the user does not have sufficient access4289 behaves like misconfigured dashboard service response4290 returns an appropriate message and status code4291 when called with a non-system dashboard4292 behaves like valid dashboard service response4293 behaves like valid dashboard service response for schema4294 returns a json representation of the dashboard4295 ::all_dashboard_paths4296 returns the dashboard attributes4297CreateEvidenceWorker4298 creates a new Evidence4299Gitlab::CycleAnalytics::PlanEventFetcher4300 behaves like default query config4301 has the stage attribute4302 has the projection attributes4303 no commits4304 does not blow up if there are no commits4305OauthAccessToken4306 returns unique owners4307Gitlab::Checks::PushCheck4308 #validate!4309 does not raise any error4310 when the user is not allowed to push to the repo4311 raises an error4312ResourceEvents::ChangeLabelsService4313 .change_labels4314 expires resource note etag cache4315 when adding a label4316 creates new label event4317 when removing a label4318 creates new label event4319 when both adding and removing labels4320 creates all label events in a single query4321Emails::CreateService4322 #execute4323 creates an email with valid attributes4324 creates an email with additional attributes4325 has the right user association4326Ci::Bridge4327 should includes the Ci::PipelineDelegator module4328 #tags4329 only has a bridge tag4330 #detailed_status4331 returns detailed status object4332 #scoped_variables_hash4333 returns a hash representing variables4334Gitlab::Utils::Override4335 #override4336 when instance is klass.new(0)4337 when STATIC_VERIFICATION is set4338 when subject is a class4339 behaves like checking as intended4340 checks ok for overriding method4341 checks ok for overriding method using negative arity4342 raises NotImplementedError when it is not overriding anything4343 raises NotImplementedError when overriding a method with different arity4344 when subject is a module, and class is prepending it4345 behaves like checking as intended4346 checks ok for overriding method4347 checks ok for overriding method using negative arity4348 raises NotImplementedError when it is not overriding anything4349 raises NotImplementedError when overriding a method with different arity4350 when subject is a module, and class is including it4351 behaves like checking as intended, nothing was overridden4352 raises NotImplementedError because it is not overriding it4353 raises NotImplementedError when it is not overriding anything4354 when STATIC_VERIFICATION is not set4355 when subject is a class4356 behaves like nothing happened4357 does not complain when it is overriding something4358 does not complain when it is not overriding anything4359 when subject is a module, and class is prepending it4360 behaves like nothing happened4361 does not complain when it is overriding something4362 does not complain when it is not overriding anything4363 when subject is a module, and class is including it4364 does not complain when it is overriding something4365 does not complain when it is not overriding anything4366 when instance is klass4367 when STATIC_VERIFICATION is set4368 when subject is a module, and class is prepending it4369 behaves like checking as intended4370 checks ok for overriding method4371 checks ok for overriding method using negative arity4372 raises NotImplementedError when it is not overriding anything4373 raises NotImplementedError when overriding a method with different arity4374 when subject is a module, and class is extending it4375 behaves like checking as intended, nothing was overridden4376 raises NotImplementedError because it is not overriding it4377 raises NotImplementedError when it is not overriding anything4378StealFillStoreUpload4379NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4380NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4381NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4382NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4383 #up4384== 20181105201455 StealFillStoreUpload: migrating =============================4385== 20181105201455 StealFillStoreUpload: migrated (0.0205s) ====================4386 steals the FillStoreUpload background migration4387== 20181105201455 StealFillStoreUpload: migrating =============================4388== 20181105201455 StealFillStoreUpload: migrated (0.0046s) ====================4389 does not run migration if not needed4390== 20181105201455 StealFillStoreUpload: migrating =============================4391DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gtsiolis/gitlab-foss/db/post_migrate/20181105201455_steal_fill_store_upload.rb:22)4392== 20181105201455 StealFillStoreUpload: migrated (0.0407s) ====================4393 ensures all rows are migrated4394NOTICE: table "design_management_designs" does not exist, skipping4395NOTICE: table "design_management_designs_versions" does not exist, skipping4396NOTICE: table "design_management_versions" does not exist, skipping4397NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4398NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4399NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4400NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4401NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4402Gitlab::Tracing4403 .enabled?4404 connection_string: nil, enabled_state: false4405 returns the correct state for .enabled?4406 connection_string: "", enabled_state: false4407 returns the correct state for .enabled?4408 connection_string: "opentracing://jaeger", enabled_state: true4409 returns the correct state for .enabled?4410 .tracing_url_enabled?4411 enabled?: false, tracing_url_template: nil, tracing_url_enabled_state: false4412 returns the correct state for .tracing_url_enabled?4413 enabled?: false, tracing_url_template: "", tracing_url_enabled_state: false4414 returns the correct state for .tracing_url_enabled?4415 enabled?: false, tracing_url_template: "http://localhost", tracing_url_enabled_state: false4416 returns the correct state for .tracing_url_enabled?4417 enabled?: true, tracing_url_template: nil, tracing_url_enabled_state: false4418 returns the correct state for .tracing_url_enabled?4419 enabled?: true, tracing_url_template: "", tracing_url_enabled_state: false4420 returns the correct state for .tracing_url_enabled?4421 enabled?: true, tracing_url_template: "http://localhost", tracing_url_enabled_state: true4422 returns the correct state for .tracing_url_enabled?4423 .tracing_url4424 tracing_url_enabled?: false, tracing_url_template: "https://localhost", correlation_id: "123", process_name: "web", tracing_url: nil4425 returns the correct state for .tracing_url4426 tracing_url_enabled?: true, tracing_url_template: "https://localhost", correlation_id: "123", process_name: "web", tracing_url: "https://localhost"4427 returns the correct state for .tracing_url4428 tracing_url_enabled?: true, tracing_url_template: "https://localhost?service={{ service }}", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?service=web"4429 returns the correct state for .tracing_url4430 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{ correlation_id }}", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?c=123"4431 returns the correct state for .tracing_url4432 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{ correlation_id }}&s={{ service }}", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?c=123&s=web"4433 returns the correct state for .tracing_url4434 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{ correlation_id }}", correlation_id: nil, process_name: "web", tracing_url: "https://localhost?c="4435 returns the correct state for .tracing_url4436 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{ correlation_id }}&s=%22{{ service }}%22", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?c=123&s=%22web%22"4437 returns the correct state for .tracing_url4438 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{correlation_id}}&s={{service}}", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?c=123&s=web"4439 returns the correct state for .tracing_url4440 tracing_url_enabled?: true, tracing_url_template: "https://localhost?c={{correlation_id }}&s={{ service}}", correlation_id: "123", process_name: "web", tracing_url: "https://localhost?c=123&s=web"4441 returns the correct state for .tracing_url4442Gitlab::CycleAnalytics::Updater4443 updates authors4444 maps the correct user4445 updates builds4446 maps the correct build4447Gitlab::Identifier4448 #identify4449 without an identifier4450 returns nil4451 with a user identifier4452 identifies the user using a user ID4453 with an SSH key identifier4454 identifies the user using an SSH key ID4455 #identify_using_user4456 returns the User for an existing ID in the identifier4457 returns nil for a non existing user ID4458 caches the found users per ID4459 #identify_using_ssh_key4460 returns the User for an existing SSH key4461 returns nil for an invalid SSH key4462 caches the found users per key4463Gitlab::Ci::Config::External::File::Local4464 #matching?4465 when a local is specified4466 returns true4467 with a missing local4468 returns false4469 with a missing local key4470 returns false4471 #valid?4472 when is a valid local path4473 returns true4474 when is not a valid local path4475 returns false4476 when is not a yaml file4477 returns false4478 #content4479 with a valid file4480 returns the content of the file4481 with an invalid file4482 is nil4483 #error_message4484 returns an error message4485 #expand_context4486 inherits project, user and sha4487 #to_hash4488 properly includes another local file in the same repository4489 does expand hash to include the template4490ChatMessage::PipelineMessage4491 when the fancy_pipeline_slack_notifications feature flag is disabled4492 returns an empty pretext4493 returns the pipeline summary in the activity's title4494 returns a link to the project in the activity's subtitle4495 returns the build duration in the activity's text property4496 returns the user's avatar image URL in the activity's image property4497 returns the pipeline summary as the attachment's text property4498 returns 'good' as the attachment's color property4499 when the pipeline failed4500 returns the summary with a 'failed' status4501 when no user is provided because the pipeline was triggered by the API4502 returns the summary with 'API' as the username4503 when the user does not have an avatar4504 returns an empty string in the activity's image property4505 when the pipeline failed4506 returns 'danger' as the attachment's color property4507 when rendering markdown4508 returns the pipeline summary as the attachments in markdown format4509 when ref type is tag4510 returns the pipeline summary in the activity's title4511 returns the pipeline summary as the attachment's text property4512 when rendering markdown4513 returns the pipeline summary as the attachments in markdown format4514 when the fancy_pipeline_slack_notifications feature flag is enabled4515 returns an empty pretext4516 returns the pipeline summary in the activity's title4517 returns a link to the project in the activity's subtitle4518 returns the build duration in the activity's text property4519 returns the user's avatar image URL in the activity's image property4520 returns the pipeline summary as the attachment's fallback property4521 returns 'good' as the attachment's color property4522 returns the committer's name and username as the attachment's author_name property4523 returns the committer's avatar URL as the attachment's author_icon property4524 returns the committer's GitLab profile URL as the attachment's author_link property4525 returns the pipeline ID, status, and duration as the attachment's title property4526 returns the pipeline URL as the attachment's title_link property4527 returns two attachment fields4528 returns the commit message as the attachment's second field property4529 returns the ref name and link as the attachment's second field property4530 returns the stage name and link as the attachment's second field property4531 returns the project's name as the attachment's footer property4532 returns the project's avatar URL as the attachment's footer_icon property4533 returns the pipeline's timestamp as the attachment's ts property4534 when the pipeline failed4535 returns the summary with a 'failed' status4536 when the pipeline passed with warnings4537 returns the summary with a 'passed with warnings' status4538 when no user is provided because the pipeline was triggered by the API4539 returns the summary with 'API' as the username4540 when the user does not have an avatar4541 returns an empty string in the activity's image property4542 when the pipeline failed4543 returns 'danger' as the attachment's color property4544 when the pipeline passed with warnings4545 returns 'warning' as the attachment's color property4546 when no user is provided because the pipeline was triggered by the API4547 returns the committer's name and username as the attachment's author_name property4548 returns nil as the attachment's author_icon property4549 returns nil as the attachment's author_link property4550 when a job in the pipeline fails4551 returns four attachment fields4552 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4553 returns the job name and link as the attachment's fourth field property4554 when lots of jobs across multiple stages fail4555 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property4556 returns the job names and links as the attachment's fourth field property4557 when the CI config file contains a YAML error4558 returns three attachment fields4559 returns the YAML error deatils as the attachment's third field property4560 when rendering markdown4561 returns the pipeline summary as the attachments in markdown format4562Gitlab::FileTypeDetection4563 when class is an uploader4564 #image?4565 returns true for an image file4566 returns false if filename has a dangerous image extension4567 returns false for a video file4568 returns false for an audio file4569 returns false if filename is blank4570 #video?4571 returns true for a video file4572 returns false for an image file4573 returns false for an audio file4574 returns false if file has a dangerous image extension4575 returns false if filename is blank4576 #audio?4577 returns true for an audio file4578 returns false for an image file4579 returns false for a video file4580 returns false if file has a dangerous image extension4581 returns false if filename is blank4582 #embeddable?4583 returns true for an image file4584 returns true for a video file4585 returns true for an audio file4586 returns false if not an embeddable file4587 returns false if filename has a dangerous image extension4588 returns false if filename is blank4589 #dangerous_image?4590 returns true if filename has a dangerous extension4591 returns false for an image file4592 returns false for a video file4593 returns false for an audio file4594 returns false if filename is blank4595 #dangerous_video?4596 returns false for a safe video file4597 returns false if filename is a dangerous image extension4598 returns false for an image file4599 returns false for an audio file4600 returns false if filename is blank4601 #dangerous_audio?4602 returns false for a safe audio file4603 returns false if filename is a dangerous image extension4604 returns false for an image file4605 returns false for an video file4606 returns false if filename is blank4607 #dangerous_embeddable?4608 returns true if filename has a dangerous image extension4609 returns false for an image file4610 returns false for a video file4611 returns false for an audio file4612 returns false for a non-embeddable file4613 returns false if filename is blank4614 when class is a regular class4615 #image?4616 returns true for an image file4617 returns false if file has a dangerous image extension4618 returns false for a video file4619 returns false for an audio file4620 returns false if filename is blank4621 #video?4622 returns true for a video file4623 returns false for an image file4624 returns false for an audio file4625 returns false if file has a dangerous image extension4626 returns false if filename is blank4627 #audio?4628 returns true for an audio file4629 returns false for an image file4630 returns false for a video file4631 returns false if file has a dangerous image extension4632 returns false if filename is blank4633 #embeddable?4634 returns true for an image file4635 returns true for a video file4636 returns true for an audio file4637 returns false if not an embeddable file4638 returns false if filename has a dangerous image extension4639 returns false if filename is blank4640 #dangerous_image?4641 returns true if file has a dangerous image extension4642 returns false for an image file4643 returns false for a video file4644 returns false for an audio file4645 returns false if filename is blank4646 #dangerous_video?4647 returns false for a safe video file4648 returns false for an image file4649 returns false for an audio file4650 returns false if file has a dangerous image extension4651 returns false if filename is blank4652 #dangerous_audio?4653 returns false for a safe audio file4654 returns false for an image file4655 returns false for a video file4656 returns false if file has a dangerous image extension4657 returns false if filename is blank4658 #dangerous_embeddable?4659 returns true if file has a dangerous image extension4660 returns false for an image file4661 returns false for a video file4662 returns false for an audio file4663 returns false for a non-embeddable file4664 returns false if filename is blank4665LfsObjectsProject4666 associations4667 should belong to project required:4668 should belong to lfs_object required:4669 validation4670 should validate that :lfs_object_id cannot be empty/falsy4671 should validate that :project_id cannot be empty/falsy4672 validates object id4673 #update_project_statistics4674 updates project statistics when the object is added4675 updates project statistics when the object is removed4676Gitlab::DependencyLinker::PackageJsonLinker4677 .support?4678 supports package.json4679 does not support other files4680 #link4681 does not link the module name4682 links the homepage4683 links the repository URL4684 links the license4685 links dependencies4686 links dependencies to URL detected on value4687 does not link to NPM when invalid git URL4688 links GitHub repos4689 links Git repos4690 does not link scripts with the same key as a package4691RuboCop::Cop::CodeReuse::ActiveRecord4692 flags the use of "where" without any arguments4693 flags the use of "where" with arguments4694 does not flag the use of "group" without any arguments4695 flags the use of "group" with arguments4696 does not flag the use of ActiveRecord models in a model4697 does not flag the use of ActiveRecord models in a spec4698 does not flag the use of ActiveRecord models in a background migration4699 does not flag the use of ActiveRecord models in lib/gitlab/database4700 autocorrects offenses in instance methods by whitelisting them4701 autocorrects offenses in class methods by whitelisting them4702 autocorrects offenses in blocks by whitelisting them4703Gitlab::Ci::Variables::Collection4704 .new4705 can be initialized with an array4706 can be initialized without an argument4707 #append4708 appends a hash4709 appends a Ci::Variable4710 appends an internal resource4711 returns self4712 #concat4713 appends all elements from an array4714 appends all elements from other collection4715 does not concatenate resource if it undefined4716 returns self4717 #+4718 makes it possible to combine with an array4719 makes it possible to combine with another collection4720 #to_runner_variables4721 creates an array of hashes in a runner-compatible format4722 #to_hash4723 returns regular hash in valid order without duplicates4724ContainerRegistry::Client4725 behaves like #repository_manifest4726 GET /v2/:name/manifests/mytag4727 behaves like #repository_manifest4728 GET /v2/:name/manifests/mytag4729 #blob4730 GET /v2/:name/blobs/:digest4731 follows 307 redirect for GET /v2/:name/blobs/:digest4732 #upload_blob4733 with successful uploads4734 starts the upload and posts the blob4735 with a failed upload4736 returns nil4737 #generate_empty_manifest4738 uploads a random image and returns the manifest4739 #put_tag4740 uploads the manifest and returns the digest4741Ci::BuildPrepareWorker4742 build exists4743 calls the prepare build service4744 build does not exist4745 does not attempt to prepare the build4746Namespaces::ScheduleAggregationWorker#perform4747 when group is the root ancestor4748 when aggregation schedule exists4749 does not create a new one4750 when aggregation schedule does not exist4751 creates one4752 when group is not the root ancestor4753 creates an aggregation schedule for the root4754 when namespace does not exist4755 logs the error4756RepositoryCheck::ClearWorker4757 clears repository check columns4758WaitForClusterCreationWorker4759 #perform4760 when provider type is gcp4761 provision a cluster4762 when provider type is user4763 does not provision a cluster4764 when cluster does not exist4765 does not provision a cluster4766TriggerableHooks4767 scopes4768 defines a scope for each of the requested triggers4769 .hooks_for4770 the model has the required trigger scope4771 returns the record4772 the model does not have the required trigger scope4773 returns an empty relation4774 the stock scope ".all" is accepted4775 returns the record4776 .select_active4777 returns hooks that match the active filter4778 returns empty list if no hooks match the active filter4779LabelPresenter4780 #edit_path4781 with group label4782 should eq "/groups/group293/-/labels/1067/edit"4783 with project label4784 should eq "/group293/project845/-/labels/1068/edit"4785 #destroy_path4786 with group label4787 should eq "/groups/group293/-/labels/1069"4788 with project label4789 should eq "/group293/project845/-/labels/1070"4790 #filter_path4791 with group as context subject4792 should eq "/groups/group293/-/issues?label_name%5B%5D=label26"4793 with project as context subject4794 should eq "/group293/project845/issues?label_name%5B%5D=label27"4795 #can_subscribe_to_label_in_different_levels?4796 returns true for group labels in project context4797 returns false for project labels in project context4798 #project_label?4799 with group label4800 should be falsey4801 with project label4802 should be truthy4803 #subject_name4804 with group label4805 should eq "group293"4806 with project label4807 should eq "project845"4808Ci::TriggerRequest4809 validation4810 be invalid if saving a variable4811 be valid if not saving a variable4812PagesDomainVerificationCronWorker4813 #perform4814 does nothing if the database is read-only4815 enqueues a PagesDomainVerificationWorker for domains needing verification4816Gitlab::View::Presenter::Base4817 .presenter?4818 returns true4819 .presents4820 exposes #subject with the given keyword4821 #can?4822 user is not allowed4823 returns false4824 user is allowed4825 returns true4826 subject is overridden4827 returns true4828 #present4829 returns self4830Mattermost::Team4831 #all4832 for valid request4833 returns teams4834 for error message4835 raises an error with message4836 #create4837 for a new team4838 returns the new team4839 for existing team4840 raises an error with message4841 #delete4842 for an existing team4843 returns team status4844 for an unknown team4845 raises an error with message4846Gitlab::Ci::Config::Entry::Rules::Rule4847 .new4848 with a when: value but no clauses4849 should be valid4850 when specifying an if: clause4851 should be valid4852 #when4853 should eq "manual"4854 using a list of multiple expressions4855 should not be valid4856 reports an error about invalid format4857 when specifying an invalid if: clause expression4858 should not be valid4859 reports an error about invalid statement4860 when specifying an if: clause expression with an invalid token4861 should not be valid4862 reports an error about invalid statement4863 when using invalid regex in an if: clause4864 reports an error about invalid expression4865 when using an if: clause with lookahead regex character "?"4866 when allow_unsafe_ruby_regexp is disabled4867 should not be valid4868 reports an error about invalid expression syntax4869 when using a changes: clause4870 should be valid4871 when using a string as an invalid changes: clause4872 should not be valid4873 reports an error about invalid policy4874 when using a list as an invalid changes: clause4875 should not be valid4876 returns errors4877 when using a long list as an invalid changes: clause4878 should not be valid4879 returns errors4880 when using a exists: clause4881 should be valid4882 when using a string as an invalid exists: clause4883 should not be valid4884 reports an error about invalid policy4885 when using a list as an invalid exists: clause4886 should not be valid4887 returns errors4888 when using a long list as an invalid exists: clause4889 should not be valid4890 returns errors4891 specifying a delayed job4892 should be valid4893 sets attributes for the job delay4894 without a when: key4895 should not be valid4896 returns an error about the disallowed key4897 without a start_in: key4898 should not be valid4899 returns an error about tstart_in being blank4900 when specifying unknown policy4901 should not be valid4902 returns error about invalid key4903 when clause is empty4904 should not be valid4905 is not a valid configuration4906 when policy strategy does not match4907 should not be valid4908 returns information about errors4909 #value4910 when specifying an if: clause4911 stores the expression as "if"4912 when using a changes: clause4913 should eq {:changes=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}4914 when default value has been provided4915 does not set a default value4916 does not add to provided configuration4917 when using a exists: clause4918 should eq {:exists=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}4919 .default4920 does not have default value4921Gitlab::GithubImport::Representation::Issue4922 .from_api_response4923 does not set the user if the response did not include a user4924 behaves like an Issue4925 returns an instance of Issue4926 the returned Issue4927 includes the issue number4928 includes the issue title4929 includes the issue description4930 includes the milestone number4931 includes the issue state4932 includes the issue assignees4933 includes the label names4934 includes the author details4935 includes the created timestamp4936 includes the updated timestamp4937 is not a pull request4938 .from_json_hash4939 does not convert the author if it was not specified4940 behaves like an Issue4941 returns an instance of Issue4942 the returned Issue4943 includes the issue number4944 includes the issue title4945 includes the issue description4946 includes the milestone number4947 includes the issue state4948 includes the issue assignees4949 includes the label names4950 includes the author details4951 includes the created timestamp4952 includes the updated timestamp4953 is not a pull request4954 #labels?4955 returns true when the issue has labels assigned4956 returns false when the issue has no labels assigned4957 #pull_request?4958 returns false for an issue4959 returns true for a pull request4960 #truncated_title4961 truncates the title to 255 characters4962 does not truncate the title if it is shorter than 255 characters4963Gitlab::GithubImport4964 .new_client_for4965 returns a new Client with a custom token4966 returns a new Client with a token stored in the import data4967 .ghost_user_id4968 returns the ID of the ghost user4969 caches the ghost user ID4970Keys::DestroyService4971 destroys a key4972Gitlab::I18n4973 .locale=4974 sets the locale based on current user preferred language4975 .use_default_locale4976 resets the locale to the default language4977Gitlab::Ci::Build::Artifacts::Metadata::Entry4978 /file/with/absolute_path4979 should be file4980 should have parent4981 #basename4982 should eq "absolute_path"4983 path/dir_1/4984 should have parent4985 should be directory4986 #basename4987 should eq "dir_1/"4988 #name4989 should eq "dir_1"4990 #parent4991 should eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/4992 #children4993 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4994 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1, Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b, and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/4995 #files4996 should all be file4997 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4998 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1 and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b4999 #directories5000 without options5001 should all be directory5002 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5003 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/5004 with option parent: true5005 should all be directory5006 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5007 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/5008 #nodes5009 should eq 25010 #exists?5011 should equal true5012 #empty?5013 should equal false5014 #total_size5015 should eq 305016 empty path5017 should not have parent5018 #children5019 should eq 35020 path/dir_1/subdir/subfile5021 #nodes5022 should eq 45023 #blob5024 returns a blob representing the entry data5025 non-existent/5026 #empty?5027 should equal true5028 #exists?5029 should equal false5030 another_directory/5031 #empty?5032 should equal true5033 #metadata5034 should eq "/path/file1"5035Gitlab::LanguageData5036 #extensions5037 loads the extensions once5038Gitlab::SQL::Pattern5039 .to_pattern5040 when a query is shorter than 3 chars5041 returns exact matching pattern5042 and ignore_minimum_char_limit is true5043 returns partial matching pattern5044 when a query with a escape character is shorter than 3 chars5045 returns sanitized exact matching pattern5046 and ignore_minimum_char_limit is true5047 returns sanitized partial matching pattern5048 when a query is equal to 3 chars5049 returns partial matching pattern5050 when a query with a escape character is equal to 3 chars5051 returns partial matching pattern5052 when a query is longer than 3 chars5053 returns partial matching pattern5054 when a query with a escape character is longer than 3 chars5055 returns sanitized partial matching pattern5056 .select_fuzzy_words5057 with a word equal to 3 chars5058 returns array cotaining a word5059 with a word shorter than 3 chars5060 returns empty array5061 with two words both equal to 3 chars5062 returns array containing two words5063 with two words divided by two spaces both equal to 3 chars5064 returns array containing two words5065 with two words equal to 3 chars and shorter than 3 chars5066 returns array containing a word5067 with a multi-word surrounded by double quote5068 returns array containing a multi-word5069 with a multi-word surrounded by double quote and two words5070 returns array containing a multi-word and tow words5071 with a multi-word surrounded by double quote missing a spece before the first double quote5072 returns array containing two words with double quote5073 with a multi-word surrounded by double quote missing a spece after the second double quote5074 returns array containing two words with double quote5075 with two multi-word surrounded by double quote and two words5076 returns array containing two multi-words and tow words5077 .fuzzy_arel_match5078 with a word equal to 3 chars5079 returns a single ILIKE condition5080 with a word shorter than 3 chars5081 returns a single equality condition5082 uses LOWER instead of ILIKE when LOWER is enabled5083 with two words both equal to 3 chars5084 returns a joining LIKE condition using a AND5085 with two words both shorter than 3 chars5086 returns a single ILIKE condition5087 with two words, one shorter 3 chars5088 returns a single ILIKE condition using the longer word5089 with a multi-word surrounded by double quote and two words5090 returns a joining LIKE condition using a AND5091Evidences::ProjectEntity5092 exposes the expected fields5093Gitlab::DependencyLinker::GemspecLinker5094 .support?5095 supports *.gemspec5096 does not support other files5097 #link5098 does not link the gem name5099 links the license5100 links the homepage5101 links dependencies5102Gitlab::GithubImport::ParallelScheduling5103 #parallel?5104 returns true when running in parallel mode5105 returns false when running in sequential mode5106 #execute5107 imports data in parallel when running in parallel mode5108 imports data in parallel when running in sequential mode5109 expires the cache used for tracking already imported objects5110 #sequential_import5111 imports data in sequence5112 #parallel_import5113 imports data in parallel5114 #each_object_to_import5115 yields every object to import5116 resumes from the last page5117 does not yield any objects if the page number was not set5118 does not yield the object if it was already imported5119 #already_imported?5120 returns false when an object has not yet been imported5121 returns true when an object has already been imported5122 #mark_as_imported5123 marks an object as already imported5124Gitlab::Auth::Saml::AuthHash5125 #groups5126 returns array of groups5127 raw info hash attributes empty5128 returns an empty array5129 #authn_context5130 with response_object5131 can extract authn_context5132 with SAML 2.0 response_object5133 can extract authn_context5134 without response_object5135 returns an empty string5136Gitlab::ExternalAuthorization::Logger5137 .log_access5138 logs a nice message for an access request5139 does not trip without a project path5140 adds the load time for cached accesses5141Banzai::Filter::MathFilter5142 leaves regular inline code unchanged5143 removes surrounding dollar signs and adds class code, math and js-render-math5144 only removes surrounding dollar signs5145 only removes surrounding single dollar sign5146 adds data-math-style inline attribute to inline math5147 adds class code and math to inline math5148 adds js-render-math class to inline math5149 ignores cases with missing dolar sign at the end5150 ignores cases with missing dolar sign at the beginning5151 ignores dollar signs if it is not adjacent5152 ignores dollar signs if they are inside another element5153 adds data-math-style display attribute to display math5154 adds js-render-math class to display math5155 ignores code blocks that are not math5156 requires the pre to contain both code and math5157 dollar signs around to display math5158Gitlab::EtagCaching::Middleware5159 when ETag caching is not enabled for current route5160 does not add ETag header5161 passes status code from app5162 when there is no ETag in store for given resource5163 generates ETag5164 when If-None-Match header was specified5165 tracks "etag_caching_key_not_found" event5166 when there is ETag in store for given resource5167 returns this value as header5168 when If-None-Match header matches ETag in store5169 does not call app5170 returns status code 3045171 returns empty body5172 tracks "etag_caching_cache_hit" event5173 when polling is disabled5174 returns status code 4295175 when If-None-Match header does not match ETag in store5176 calls app5177 tracks "etag_caching_resource_changed" event5178 when If-None-Match header is not specified5179 tracks "etag_caching_header_missing" event5180 when GitLab instance is using a relative URL5181 uses full path as cache key5182TestReportsComparerSerializer5183 #to_json5184 when head and base reports include two test suites5185 when the status of head report is success5186 matches the schema5187 when the status of head report is failed5188 matches the schema5189 when the status of head report is resolved5190 matches the schema5191RecaptchaExperimentHelper5192 .show_recaptcha_sign_up?5193 when reCAPTCHA is disabled5194 returns false5195 when reCAPTCHA is enabled5196 returns true5197Quality::TestLevel5198 #pattern5199 when level is all5200 returns a pattern5201 when level is geo5202 returns a pattern5203 when level is unit5204 returns a pattern5205 when level is integration5206 returns a pattern5207 when level is system5208 returns a pattern5209 with a prefix5210 returns a pattern5211 performance5212 memoizes the pattern for a given level5213 freezes the pattern for a given level5214 #regexp5215 when level is all5216 returns a regexp5217 when level is geo5218 returns a regexp5219 when level is unit5220 returns a regexp5221 when level is integration5222 returns a regexp5223 when level is system5224 returns a regexp5225 with a prefix5226 returns a regexp5227 performance5228 memoizes the regexp for a given level5229 freezes the regexp for a given level5230 #level_for5231 returns the correct level for a unit test5232 returns the correct level for an integration test5233 returns the correct level for a system test5234 raises an error for an unknown level5235Gitlab::Kubernetes::Helm::InstallCommand5236 behaves like helm commands5237 #generate_script5238 returns appropriate command5239 when rbac is true5240 behaves like helm commands5241 #generate_script5242 returns appropriate command5243 when there is a pre-install script5244 behaves like helm commands5245 #generate_script5246 returns appropriate command5247 when there is a post-install script5248 behaves like helm commands5249 #generate_script5250 returns appropriate command5251 when there is no ca.pem file5252 behaves like helm commands5253 #generate_script5254 returns appropriate command5255 when there is no version5256 behaves like helm commands5257 #generate_script5258 returns appropriate command5259 #rbac?5260 rbac is enabled5261 should be truthy5262 rbac is not enabled5263 should be falsey5264 #pod_resource5265 rbac is enabled5266 generates a pod that uses the tiller serviceAccountName5267 rbac is not enabled5268 generates a pod that uses the default serviceAccountName5269 #config_map_resource5270 returns a KubeClient resource with config map content for the application5271 #service_account_resource5272 returns nothing5273 #cluster_role_binding_resource5274 returns nothing5275Types::BaseField5276 when considering complexity5277 defaults to 15278 has specified value5279 #base_complexity5280 with no gitaly calls5281 defaults to 15282 with a gitaly call5283 adds 1 to the default value5284 when field has a resolver proc5285 and is a connection5286 sets complexity depending on arguments for resolvers5287 sets complexity depending on number load limits for resolvers5288 and is not a connection5289 sets complexity as normal5290 calls_gitaly5291 defaults to false5292 for fields with a resolver5293 adds 1 if true5294 for fields without a resolver5295 adds 1 if true5296 with declared constant complexity value5297 has complexity set to that constant5298 does not raise an error even with Gitaly calls5299Gitlab::Checks::ForcePush5300 .force_push?5301 returns false if the repo is empty5302 checks if old rev is an anchestor5303Pages::LookupPath5304 #project_id5305 delegates to Project#id5306 #access_control5307 delegates to Project#private_pages?5308 #https_only5309 when no domain provided5310 delegates to Project#pages_https_only?5311 when there is domain provided5312 takes into account the https setting of the domain5313 #source5314 sets the source type to "file"5315 sets the source path to the project full path suffixed with "public/5316 #prefix5317 returns "/" for pages group root projects5318 returns the project full path with the provided prefix removed5319Gitlab::FileDetector5320 .types_in_paths5321 returns the file types for the given paths5322 does not include unrecognized file paths5323 .type_of5324 returns the type of a README file5325 returns nil for a README.rb file5326 returns nil for a README file in a directory5327 returns the type of a changelog file5328 returns the type of a license file5329 returns nil for an UNCOPYING file5330 returns the type of a version file5331 returns the type of a .gitignore file5332 returns the type of a GitLab CI config file5333 returns the type of an avatar5334 returns the type of an issue template5335 returns the type of a merge request template5336 returns nil for an unknown file5337Bitbucket::Representation::PullRequest5338 #iid5339 should eq 15340 #author5341 should eq "Ben"5342 should be nil5343 #description5344 should eq "Text"5345 should be nil5346 #state5347 should eq "merged"5348 should eq "closed"5349 should eq "opened"5350 #title5351 should eq "Issue"5352 #source_branch_name5353 should eq "feature"5354 should be nil5355 #source_branch_sha5356 should eq "abcd123"5357 should be nil5358 #target_branch_name5359 should eq "master"5360 should be nil5361 #target_branch_sha5362 should eq "abcd123"5363 should be nil5364Gitlab::QueryLimiting::Transaction5365 .current5366 returns nil when there is no transaction5367 returns the transaction when present5368 .run5369 runs a transaction and returns it and its return value5370 removes the transaction from the current thread upon completion5371 #act_upon_results5372 when the query threshold is not exceeded5373 does nothing5374 when the query threshold is exceeded5375 raises an error when this is enabled5376 #increment5377 increments the number of executed queries5378 #raise_error?5379 returns true in a test environment5380 returns false in a production environment5381 #threshold_exceeded?5382 returns false when the threshold is not exceeded5383 returns true when the threshold is exceeded5384 #error_message5385 returns the error message to display when the threshold is exceeded5386 includes the action name in the error message when present5387Banzai::Filter::InlineMetricsFilter5388 when the document has an external link5389 leaves regular non-metrics links unchanged5390 when the document has a metrics dashboard link5391 leaves the original link unchanged5392 appends a metrics charts placeholder with dashboard url after metrics links5393 when the metrics dashboard link is part of a paragraph5394 appends the charts placeholder after the enclosing paragraph5395 with dashboard params specified5396 appends a metrics charts placeholder with dashboard url after metrics links5397Gitlab::Tracking::IncidentManagement5398 .track_from_params5399 known params5400 param create_issue5401 behaves like a tracked event5402 creates the tracking event with the correct details5403 param issue_template_key5404 behaves like a tracked event5405 creates the tracking event with the correct details5406 param send_email5407 behaves like a tracked event5408 creates the tracking event with the correct details5409 different input values5410 behaves like the correct prefixed event name5411 matches5412 behaves like the correct prefixed event name5413 matches5414 behaves like the correct prefixed event name5415 matches5416 behaves like the correct prefixed event name5417 matches5418 behaves like the correct prefixed event name5419 matches5420 param with label5421 behaves like a tracked event5422 creates the tracking event with the correct details5423 param without label5424 behaves like a tracked event5425 creates the tracking event with the correct details5426 unknown params5427 does not create the tracking event5428Gitlab::DependencyLinker5429 .link5430 links using GemfileLinker5431 links using GemspecLinker5432 links using PackageJsonLinker5433 links using ComposerJsonLinker5434 links using PodfileLinker5435 links using PodspecLinker5436 links using PodspecJsonLinker5437 links using CartfileLinker5438 links using GodepsJsonLinker5439 links using RequirementsTxtLinker5440TestSuiteComparerEntity5441 #as_json5442 when head suite has a newly failed test case which does not exist in base5443 contains correct compared test suite details5444 when head suite still has a failed test case which failed in base5445 contains correct compared test suite details5446 when head suite has a success test case which failed in base5447 contains correct compared test suite details5448 limits amount of tests returned5449 prefers new over existing and resolved5450 returns 2 new failures, and 1 of resolved and existing5451 prefers existing over resolved5452 returns 2 existing failures, and 1 resolved5453 limits amount of resolved5454 returns 2 resolved failures5455Resolvers::GroupResolver5456 #resolve5457 batch-resolves groups by full path5458 resolves an unknown full_path to nil5459Gitlab::AnonymousSession5460 removes obsolete lookup through ip entries5461 #store_session_id_per_ip5462 adds session id to proper key5463 adds expiration time to key5464 adds id only once5465 when there is already one session5466 adds session id to proper key5467 #stored_sessions5468 returns all anonymous sessions per ip5469Bitbucket::Representation::PullRequestComment5470 #iid5471 should eq 15472 #file_path5473 should eq "/path"5474 #old_pos5475 should eq 35476 #new_pos5477 should eq 35478 #parent_id5479 should eq 25480 should be nil5481 #inline?5482 should be truthy5483 should be falsey5484 #has_parent?5485 should be truthy5486 should be falsey5487Gitlab::PhabricatorImport::Conduit::User5488 #users5489 calls the api with the correct params5490 returns an array of parsed responses5491 performs multiple requests if more phids than the maximum page size are passed5492RuboCop::Cop::AvoidRouteRedirectLeadingSlash5493 registers an offense when redirect has a leading slash5494 does not register an offense when redirect does not have a leading slash5495 autocorrect `/-/route` to `-/route`5496Gitlab::RequestProfiler5497 .profile_token5498 returns a token5499 caches the token5500 with temporary PROFILES_DIR5501 .remove_all_profiles5502 removes Gitlab::RequestProfiler::PROFILES_DIR directory5503 .all5504 returns all profiles5505 .find5506 returns all profiles5507Gitlab::Git::RawDiffChange5508 bad input5509 does not set most of the attrs5510 adding a file5511 initialize the proper attrs5512 renaming a file5513 initialize the proper attrs5514 modifying a file5515 initialize the proper attrs5516 deleting a file5517 initialize the proper attrs5518Gitlab::Metrics::Subscribers::ActionView5519 #render_template5520 tracks rendering of a template5521 observes view rendering time5522TimeHelper5523 #time_interval_in_words5524 returns minutes and seconds5525 #duration_in_numbers5526 duration: 0, formatted_string: "00:00"5527 should eq "00:00"5528 duration: 1 second, formatted_string: "00:01"5529 should eq "00:01"5530 duration: 42 seconds, formatted_string: "00:42"5531 should eq "00:42"5532 duration: 2 minutes and 1 second, formatted_string: "02:01"5533 should eq "02:01"5534 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"5535 should eq "03:02:01"5536 duration: 30 hours, formatted_string: "30:00:00"5537 should eq "30:00:00"5538Gitlab::Cluster::RackTimeoutObserver5539 #callback5540 when request times out5541 increments counter5542 when request expires5543 increments counter5544 when request is being processed5545 does not increment counter5546RuboCop::Cop::Gitlab::FinderWithFindBy5547 when calling execute.find5548 registers an offence5549 can autocorrect the source5550 when called within the `FinderMethods` module5551 does not register an offence5552Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated5553 behaves like cycle analytics event5554 should be a kind of String5555 should be a kind of Symbol5556 should include ApplicationRecord(abstract)5557 should respond to #timestamp_projection5558 #apply_query_customization5559 expects an ActiveRecord::Relation object as argument and returns a modified version of it5560Gitlab::Checks::TimedLogger5561 #log_timed5562 logs message5563 when time limit was reached5564 cancels action5565 cancels action with time elapsed if work was performed5566RuboCop::Cop::SafeParams5567 flags the params as an argument of url_for5568 flags the merged params as an argument of url_for5569 flags the merged params arg as an argument of url_for5570 does not flag other argument of url_for5571Gitlab::Kubernetes::Helm::BaseCommand5572 behaves like helm commands5573 #generate_script5574 returns appropriate command5575 #pod_resource5576 returns a kubeclient resoure with pod content for application5577 when rbac is true5578 also returns a kubeclient resource5579 #pod_name5580 should eq "install-test-class-name"5581Gitlab::View::Presenter::Simple5582 includes Gitlab::View::Presenter::Base5583 #initialize5584 takes arbitrary key/values and exposes them5585 override the presentee attributes5586 delegation5587 does not forward missing methods to subject5588Gitlab::Ci::Config::Entry::Paths5589 validations5590 when entry config value is valid5591 #value5592 returns key value5593 #valid?5594 is valid5595 when entry value is not valid5596 #errors5597 saves errors5598Gitlab::Ci::MaskSecret5599 #mask5600 masks exact number of characters5601 masks multiple occurrences5602 does not mask if not found5603 does support null token5604ObjectStoreSettings5605 .parse5606 sets correct default values5607 respects original values5608Gitlab::Ci::Ansi2json::Parser5609 bold?5610 returns true if style mask matches bold format5611 returns false if style mask does not match bold format5612 matching_formats5613 returns matching formats given a style mask5614 returns an empty array if no formats match the style mask5615JSONWebToken::Token5616 custom parameters5617 should eq "value"5618 should include {:key => "value"}5619 embeds default payload5620 should include {:jti => "16774bf4-64a7-45f1-807c-5b39ad2c306b", :iat => 1571840372, :nbf => 1571840367, :exp => 1571840432}5621TestCaseEntity5622 #as_json5623 when test case is success5624 contains correct test case details5625 when test case is failed5626 contains correct test case details5627LicenseTemplate5628 #content5629 calls a proc exactly once if provided5630 returns a string if provided5631 #resolve!5632 updates placeholders in a copy of the template content5633Gitlab::TcpChecker5634 #check5635 can connect to an open port5636 fails to connect to a closed port5637Types::Ci::DetailedStatusType5638 should eq "DetailedStatus"5639 has all fields5640Gitlab::QuickActions::Dsl5641 .command_definitions5642 returns an array with commands definitions5643Notes::RenderService5644 #execute5645 renders a Note5646TodosDestroyer::EntityLeaveWorker5647 calls the Todos::Destroy::EntityLeaveService with the params it was given5648TodosDestroyer::ProjectPrivateWorker5649 calls the Todos::Destroy::ProjectPrivateService with the params it was given5650Gitlab::Git::GitmodulesParser5651 parses a .gitmodules file correctly5652DiffPosition5653 exposes the expected fields5654Finished in 13 minutes 10 seconds (files took 37.82 seconds to load)56552113 examples, 0 failures5656! Generating reports is disabled. To enable it, please set the `FLAKY_RSPEC_GENERATE_REPORT=1` !5657Wed Oct 23 14:19:43 UTC 20195659$ date5660Wed Oct 23 14:19:44 UTC 20195663coverage/: found 5 matching files 5664knapsack/: found 3 matching files 5665rspec_flaky/: found 2 matching files 5666rspec_profiling/: found 1 matching files 5667WARNING: tmp/capybara/: no matching files 5668tmp/memory_test/: found 2 matching files 5669Uploading artifacts to coordinator... ok id=330157903 responseStatus=201 Created token=cH22pobT5670Uploading artifacts...5671junit_rspec.xml: found 1 matching files 5672Uploading artifacts to coordinator... ok id=330157903 responseStatus=201 Created token=cH22pobT5673Job succeeded