There was an error fetching the job.
rspec unit pg9-foss 8/20
Passed Started
by
@nick.thomas

Nick Thomas
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-9.6-graphicsmagick-1.3.33 ...
02:47
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:61c59b9a763f02dd11635b20ef117812dad973b95a68bd125f3a1767f9159cf9 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:f9d774eafe0d9aa813860e94490efffec6041d63a786133749974c15c055663e for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...13Using docker image sha256:a94eba80a84b7c7dacf920a5a92cf2e3bde001dce105a743a16950b506e477ef for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 14 Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1571245160-c66c44cd...
00:35
16Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/17Created fresh repository.19 * [new ref] refs/pipelines/89282327 -> refs/pipelines/8928232720 * [new branch] master -> origin/master21Checking out 6f5714dc as master...22Skipping Git submodules setup24Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 25Successfully extracted cache27Downloading artifacts from coordinator... ok id=322922802 responseStatus=200 OK token=h6ZzpyQL28Downloading artifacts for retrieve-tests-metadata (322922809)...29Downloading artifacts from coordinator... ok id=322922809 responseStatus=200 OK token=vWkPg6d_30Downloading artifacts for setup-test-env (322922804)...31Downloading artifacts from coordinator... ok id=322922804 responseStatus=200 OK token=2YUWrMkH32WARNING: 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 16 17:07:42 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.0373s51-- enable_extension("plpgsql")52 -> 0.0035s53-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})54 -> 0.0047s55-- create_table("alerts_service_data", {:force=>:cascade})56 -> 0.0073s57-- create_table("allowed_email_domains", {:force=>:cascade})58 -> 0.0050s59-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})60 -> 0.0166s61-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})62 -> 0.0163s63-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})64 -> 0.0087s65-- create_table("analytics_repository_file_commits", {:force=>:cascade})66 -> 0.0075s67-- create_table("analytics_repository_file_edits", {:force=>:cascade})68 -> 0.0080s69-- create_table("analytics_repository_files", {:force=>:cascade})70 -> 0.0053s71-- create_table("appearances", {:id=>:serial, :force=>:cascade})72 -> 0.0040s73-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})74 -> 0.0029s75-- create_table("application_settings", {:id=>:serial, :force=>:cascade})76 -> 0.1062s77-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})78 -> 0.0075s79-- create_table("approval_merge_request_rules", {:force=>:cascade})80 -> 0.0180s81-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})82 -> 0.0075s83-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})84 -> 0.0076s85-- create_table("approval_merge_request_rules_users", {:force=>:cascade})86 -> 0.0075s87-- create_table("approval_project_rules", {:force=>:cascade})88 -> 0.0121s89-- create_table("approval_project_rules_groups", {:force=>:cascade})90 -> 0.0078s91-- create_table("approval_project_rules_users", {:force=>:cascade})92 -> 0.0079s93-- create_table("approvals", {:id=>:serial, :force=>:cascade})94 -> 0.0079s95-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})96 -> 0.0082s97-- create_table("approvers", {:id=>:serial, :force=>:cascade})98 -> 0.0085s99-- create_table("audit_events", {:id=>:serial, :force=>:cascade})100 -> 0.0085s101-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})102 -> 0.0092s103-- create_table("badges", {:id=>:serial, :force=>:cascade})104 -> 0.0083s105-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})106 -> 0.0077s107-- create_table("board_group_recent_visits", {:force=>:cascade})108 -> 0.0124s109-- create_table("board_labels", {:id=>:serial, :force=>:cascade})110 -> 0.0077s111-- create_table("board_project_recent_visits", {:force=>:cascade})112 -> 0.0139s113-- create_table("boards", {:id=>:serial, :force=>:cascade})114 -> 0.0124s115-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})116 -> 0.0068s117-- create_table("chat_names", {:id=>:serial, :force=>:cascade})118 -> 0.0095s119-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})120 -> 0.0063s121-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})122 -> 0.0063s123-- create_table("ci_build_trace_chunks", {:force=>:cascade})124 -> 0.0060s125-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})126 -> 0.0064s127-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})128 -> 0.0111s129-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})130 -> 0.0773s131-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})132 -> 0.0123s133-- create_table("ci_builds_runner_session", {:force=>:cascade})134 -> 0.0061s135-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})136 -> 0.0082s137-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})138 -> 0.0174s139-- create_table("ci_job_variables", {:force=>:cascade})140 -> 0.0087s141-- create_table("ci_pipeline_chat_data", {:force=>:cascade})142 -> 0.0078s143-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})144 -> 0.0066s145-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})146 -> 0.0267s147-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})148 -> 0.0064s149-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})150 -> 0.0357s151-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})152 -> 0.0074s153-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})154 -> 0.0073s155-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})156 -> 0.0203s157-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})158 -> 0.0152s159-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})160 -> 0.0127s161-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})162 -> 0.0080s163-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})164 -> 0.0079s165-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})166 -> 0.0077s167-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})168 -> 0.0074s169-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})170 -> 0.0058s171-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})172 -> 0.0073s173-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})174 -> 0.0092s175-- create_table("clusters", {:id=>:serial, :force=>:cascade})176 -> 0.0131s177-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})178 -> 0.0058s179-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})180 -> 0.0056s181-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})182 -> 0.0067s183-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})184 -> 0.0085s185-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})186 -> 0.0056s187-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})188 -> 0.0064s189-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})190 -> 0.0086s191-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})192 -> 0.0182s193-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})194 -> 0.0080s195-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})196 -> 0.0082s197-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})198 -> 0.0063s199-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})200 -> 0.0058s201-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})202 -> 0.0058s203-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})204 -> 0.0129s205-- create_table("deployments", {:id=>:serial, :force=>:cascade})206 -> 0.0290s207-- create_table("design_management_designs", {:force=>:cascade})208 -> 0.0081s209-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})210 -> 0.0114s211-- create_table("design_management_versions", {:force=>:cascade})212 -> 0.0105s213-- create_table("draft_notes", {:force=>:cascade})214 -> 0.0109s215-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})216 -> 0.0038s217-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})218 -> 0.0038s219-- create_table("emails", {:id=>:serial, :force=>:cascade})220 -> 0.0109s221-- create_table("environments", {:id=>:serial, :force=>:cascade})222 -> 0.0134s223-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})224 -> 0.0074s225-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})226 -> 0.0048s227-- create_table("epics", {:id=>:serial, :force=>:cascade})228 -> 0.0253s229-- create_table("events", {:id=>:serial, :force=>:cascade})230 -> 0.0198s231-- create_table("external_pull_requests", {:force=>:cascade})232 -> 0.0058s233-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})234 -> 0.0054s235-- create_table("features", {:id=>:serial, :force=>:cascade})236 -> 0.0052s237-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})238 -> 0.0091s239-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})240 -> 0.0053s241-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})242 -> 0.0060s243-- create_table("geo_cache_invalidation_events", {:force=>:cascade})244 -> 0.0027s245-- create_table("geo_container_repository_updated_events", {:force=>:cascade})246 -> 0.0047s247-- create_table("geo_event_log", {:force=>:cascade})248 -> 0.0308s249-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})250 -> 0.0051s251-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})252 -> 0.0061s253-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})254 -> 0.0074s255-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})256 -> 0.0069s257-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})258 -> 0.0140s259-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})260 -> 0.0140s261-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})262 -> 0.0194s263-- create_table("geo_repositories_changed_events", {:force=>:cascade})264 -> 0.0075s265-- create_table("geo_repository_created_events", {:force=>:cascade})266 -> 0.0089s267-- create_table("geo_repository_deleted_events", {:force=>:cascade})268 -> 0.0089s269-- create_table("geo_repository_renamed_events", {:force=>:cascade})270 -> 0.0083s271-- create_table("geo_repository_updated_events", {:force=>:cascade})272 -> 0.0125s273-- create_table("geo_reset_checksum_events", {:force=>:cascade})274 -> 0.0063s275-- create_table("geo_upload_deleted_events", {:force=>:cascade})276 -> 0.0088s277-- create_table("gitlab_subscriptions", {:force=>:cascade})278 -> 0.0112s279-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})280 -> 0.0126s281-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})282 -> 0.0131s283-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})284 -> 0.0192s285-- create_table("grafana_integrations", {:force=>:cascade})286 -> 0.0071s287-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})288 -> 0.0104s289-- create_table("historical_data", {:id=>:serial, :force=>:cascade})290 -> 0.0033s291-- create_table("identities", {:id=>:serial, :force=>:cascade})292 -> 0.0134s293-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})294 -> 0.0103s295-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})296 -> 0.0075s297-- create_table("insights", {:id=>:serial, :force=>:cascade})298 -> 0.0090s299-- create_table("internal_ids", {:force=>:cascade})300 -> 0.0148s301-- create_table("ip_restrictions", {:force=>:cascade})302 -> 0.0072s303-- create_table("issue_assignees", {:id=>false, :force=>:cascade})304 -> 0.0073s305-- create_table("issue_links", {:id=>:serial, :force=>:cascade})306 -> 0.0119s307-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})308 -> 0.0098s309-- create_table("issue_tracker_data", {:force=>:cascade})310 -> 0.0076s311-- create_table("issues", {:id=>:serial, :force=>:cascade})312 -> 0.0616s313-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})314 -> 0.0056s315-- create_table("jira_connect_installations", {:force=>:cascade})316 -> 0.0050s317-- create_table("jira_connect_subscriptions", {:force=>:cascade})318 -> 0.0084s319-- create_table("jira_tracker_data", {:force=>:cascade})320 -> 0.0051s321-- create_table("keys", {:id=>:serial, :force=>:cascade})322 -> 0.0096s323-- create_table("label_links", {:id=>:serial, :force=>:cascade})324 -> 0.0075s325-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})326 -> 0.0088s327-- create_table("labels", {:id=>:serial, :force=>:cascade})328 -> 0.0138s329-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})330 -> 0.0028s331-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})332 -> 0.0071s333-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})334 -> 0.0069s335-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})336 -> 0.0063s337-- create_table("licenses", {:id=>:serial, :force=>:cascade})338 -> 0.0025s339-- create_table("list_user_preferences", {:force=>:cascade})340 -> 0.0086s341-- create_table("lists", {:id=>:serial, :force=>:cascade})342 -> 0.0134s343-- create_table("members", {:id=>:serial, :force=>:cascade})344 -> 0.0184s345-- create_table("merge_request_assignees", {:force=>:cascade})346 -> 0.0085s347-- create_table("merge_request_blocks", {:force=>:cascade})348 -> 0.0064s349-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})350 -> 0.0062s351-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})352 -> 0.0045s353-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})354 -> 0.0076s355-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})356 -> 0.0195s357-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})358 -> 0.0515s359-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})360 -> 0.0066s361-- create_table("merge_trains", {:force=>:cascade})362 -> 0.0115s363-- create_table("milestone_releases", {:id=>false, :force=>:cascade})364 -> 0.0054s365-- create_table("milestones", {:id=>:serial, :force=>:cascade})366 -> 0.0159s367-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})368 -> 0.0036s369-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})370 -> 0.0066s371-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})372 -> 0.0047s373-- create_table("namespaces", {:id=>:serial, :force=>:cascade})374 -> 0.0468s375-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})376 -> 0.0051s377-- create_table("notes", {:id=>:serial, :force=>:cascade})378 -> 0.0251s379-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})380 -> 0.0104s381-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})382 -> 0.0052s383-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})384 -> 0.0116s385-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})386 -> 0.0085s387-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})388 -> 0.0050s389-- create_table("operations_feature_flag_scopes", {:force=>:cascade})390 -> 0.0079s391-- create_table("operations_feature_flags", {:force=>:cascade})392 -> 0.0051s393-- create_table("operations_feature_flags_clients", {:force=>:cascade})394 -> 0.0068s395-- create_table("packages_maven_metadata", {:force=>:cascade})396 -> 0.0049s397-- create_table("packages_package_files", {:force=>:cascade})398 -> 0.0054s399-- create_table("packages_package_metadata", {:force=>:cascade})400 -> 0.0050s401-- create_table("packages_package_tags", {:force=>:cascade})402 -> 0.0044s403-- create_table("packages_packages", {:force=>:cascade})404 -> 0.0073s405-- create_table("pages_domain_acme_orders", {:force=>:cascade})406 -> 0.0076s407-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})408 -> 0.0198s409-- create_table("path_locks", {:id=>:serial, :force=>:cascade})410 -> 0.0088s411-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})412 -> 0.0085s413-- create_table("plans", {:id=>:serial, :force=>:cascade})414 -> 0.0054s415-- create_table("pool_repositories", {:force=>:cascade})416 -> 0.0091s417-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})418 -> 0.0051s419-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})420 -> 0.0019s421-- create_table("project_aliases", {:force=>:cascade})422 -> 0.0070s423-- create_table("project_authorizations", {:id=>false, :force=>:cascade})424 -> 0.0052s425-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})426 -> 0.0047s427-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})428 -> 0.0053s429-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})430 -> 0.0072s431-- create_table("project_daily_statistics", {:force=>:cascade})432 -> 0.0043s433-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})434 -> 0.0071s435-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})436 -> 0.0027s437-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})438 -> 0.0093s439-- create_table("project_features", {:id=>:serial, :force=>:cascade})440 -> 0.0056s441-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})442 -> 0.0073s443-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})444 -> 0.0049s445-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})446 -> 0.0038s447-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})448 -> 0.0020s449-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})450 -> 0.0173s451-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})452 -> 0.0061s453-- create_table("project_repositories", {:force=>:cascade})454 -> 0.0095s455-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})456 -> 0.0168s457-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})458 -> 0.0100s459-- create_table("project_tracing_settings", {:force=>:cascade})460 -> 0.0053s461-- create_table("projects", {:id=>:serial, :force=>:cascade})462 -> 0.0763s463-- create_table("prometheus_alert_events", {:force=>:cascade})464 -> 0.0075s465-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})466 -> 0.0093s467-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})468 -> 0.0125s469-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})470 -> 0.0097s471-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})472 -> 0.0095s473-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})474 -> 0.0105s475-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})476 -> 0.0081s477-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})478 -> 0.0102s479-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})480 -> 0.0076s481-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})482 -> 0.0096s483-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})484 -> 0.0076s485-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})486 -> 0.0043s487-- create_table("push_rules", {:id=>:serial, :force=>:cascade})488 -> 0.0102s489-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})490 -> 0.0099s491-- create_table("release_links", {:force=>:cascade})492 -> 0.0075s493-- create_table("releases", {:id=>:serial, :force=>:cascade})494 -> 0.0078s495-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})496 -> 0.0088s497-- create_table("repository_languages", {:id=>false, :force=>:cascade})498 -> 0.0041s499-- create_table("resource_label_events", {:force=>:cascade})500 -> 0.0142s501-- create_table("reviews", {:force=>:cascade})502 -> 0.0089s503-- create_table("routes", {:id=>:serial, :force=>:cascade})504 -> 0.0097s505-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})506 -> 0.0061s507-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})508 -> 0.0051s509-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})510 -> 0.0053s511-- create_table("services", {:id=>:serial, :force=>:cascade})512 -> 0.0175s513-- create_table("shards", {:id=>:serial, :force=>:cascade})514 -> 0.0053s515-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})516 -> 0.0118s517-- create_table("smartcard_identities", {:force=>:cascade})518 -> 0.0075s519-- create_table("snippets", {:id=>:serial, :force=>:cascade})520 -> 0.0203s521-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})522 -> 0.0077s523-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})524 -> 0.0075s525-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})526 -> 0.0040s527-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})528 -> 0.0080s529-- create_table("suggestions", {:force=>:cascade})530 -> 0.0072s531-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})532 -> 0.0053s533-- create_table("taggings", {:id=>:serial, :force=>:cascade})534 -> 0.0118s535-- create_table("tags", {:id=>:serial, :force=>:cascade})536 -> 0.0078s537-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})538 -> 0.0094s539-- create_table("timelogs", {:id=>:serial, :force=>:cascade})540 -> 0.0085s541-- create_table("todos", {:id=>:serial, :force=>:cascade})542 -> 0.0217s543-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})544 -> 0.0042s545-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})546 -> 0.0071s547-- create_table("uploads", {:id=>:serial, :force=>:cascade})548 -> 0.0113s549-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})550 -> 0.0057s551-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})552 -> 0.0068s553-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})554 -> 0.0075s555-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})556 -> 0.0053s557-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})558 -> 0.0070s559-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})560 -> 0.0054s561-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})562 -> 0.0064s563-- create_table("users", {:id=>:serial, :force=>:cascade})564 -> 0.1538s565-- create_table("users_ops_dashboard_projects", {:force=>:cascade})566 -> 0.0067s567-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})568 -> 0.0062s569-- create_table("vulnerabilities", {:force=>:cascade})570 -> 0.0235s571-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})572 -> 0.0154s573-- create_table("vulnerability_identifiers", {:force=>:cascade})574 -> 0.0053s575-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})576 -> 0.0068s577-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})578 -> 0.0067s579-- create_table("vulnerability_occurrences", {:force=>:cascade})580 -> 0.0137s581-- create_table("vulnerability_scanners", {:force=>:cascade})582 -> 0.0050s583-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})584 -> 0.0073s585-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})586 -> 0.0121s587-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})588 -> 0.0024s589-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})590 -> 0.0023s591-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})592 -> 0.0021s593-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})594 -> 0.0014s595-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})596 -> 0.0014s597-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})598 -> 0.0015s599-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})600 -> 0.0014s601-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})602 -> 0.0029s603-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})604 -> 0.0016s605-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})606 -> 0.0017s607-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})608 -> 0.0015s609-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})610 -> 0.0018s611-- add_foreign_key("analytics_repository_file_edits", "analytics_repository_files", {:on_delete=>:cascade})612 -> 0.0014s613-- add_foreign_key("analytics_repository_file_edits", "projects", {:on_delete=>:cascade})614 -> 0.0018s615-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})616 -> 0.0016s617-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})618 -> 0.0040s619-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})620 -> 0.0026s621-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})622 -> 0.0026s623-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})624 -> 0.0039s625-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})626 -> 0.0020s627-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})628 -> 0.0016s629-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})630 -> 0.0027s631-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})632 -> 0.0017s633-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})634 -> 0.0018s635-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})636 -> 0.0016s637-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})638 -> 0.0016s639-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})640 -> 0.0016s641-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})642 -> 0.0018s643-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})644 -> 0.0019s645-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})646 -> 0.0017s647-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})648 -> 0.0015s649-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})650 -> 0.0015s651-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})652 -> 0.0017s653-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})654 -> 0.0017s655-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})656 -> 0.0017s657-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})658 -> 0.0017s659-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})660 -> 0.0018s661-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})662 -> 0.0017s663-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})664 -> 0.0017s665-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})666 -> 0.0019s667-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})668 -> 0.0017s669-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})670 -> 0.0018s671-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})672 -> 0.0016s673-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})674 -> 0.0015s675-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})676 -> 0.0016s677-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})678 -> 0.0018s679-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})680 -> 0.0018s681-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})682 -> 0.0015s683-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})684 -> 0.0018s685-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})686 -> 0.0018s687-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})688 -> 0.0028s689-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})690 -> 0.0016s691-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})692 -> 0.0019s693-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})694 -> 0.0014s695-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})696 -> 0.0016s697-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})698 -> 0.0019s699-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})700 -> 0.0024s701-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})702 -> 0.0016s703-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})704 -> 0.0016s705-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})706 -> 0.0018s707-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})708 -> 0.0022s709-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})710 -> 0.0018s711-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})712 -> 0.0019s713-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})714 -> 0.0016s715-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})716 -> 0.0016s717-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})718 -> 0.0019s719-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})720 -> 0.0019s721-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})722 -> 0.0018s723-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})724 -> 0.0017s725-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})726 -> 0.0014s727-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})728 -> 0.0016s729-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})730 -> 0.0018s731-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})732 -> 0.0016s733-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})734 -> 0.0015s735-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})736 -> 0.0015s737-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})738 -> 0.0015s739-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})740 -> 0.0016s741-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})742 -> 0.0017s743-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})744 -> 0.0020s745-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})746 -> 0.0018s747-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})748 -> 0.0016s749-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})750 -> 0.0019s751-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})752 -> 0.0019s753-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})754 -> 0.0014s755-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})756 -> 0.0014s757-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})758 -> 0.0026s759-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})760 -> 0.0018s761-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})762 -> 0.0015s763-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})764 -> 0.0019s765-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})766 -> 0.0017s767-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})768 -> 0.0018s769-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})770 -> 0.0017s771-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})772 -> 0.0020s773-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})774 -> 0.0017s775-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})776 -> 0.0016s777-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})778 -> 0.0015s779-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})780 -> 0.0015s781-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})782 -> 0.0018s783-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})784 -> 0.0016s785-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})786 -> 0.0018s787-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})788 -> 0.0019s789-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})790 -> 0.0017s791-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})792 -> 0.0016s793-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})794 -> 0.0017s795-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})796 -> 0.0016s797-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})798 -> 0.0015s799-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})800 -> 0.0015s801-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})802 -> 0.0015s803-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})804 -> 0.0015s805-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})806 -> 0.0015s807-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})808 -> 0.0019s809-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})810 -> 0.0015s811-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})812 -> 0.0017s813-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})814 -> 0.0020s815-- add_foreign_key("container_repositories", "projects")816 -> 0.0020s817-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})818 -> 0.0017s819-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})820 -> 0.0017s821-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})822 -> 0.0021s823-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})824 -> 0.0020s825-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})826 -> 0.0020s827-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})828 -> 0.0025s829-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})830 -> 0.0019s831-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})832 -> 0.0016s833-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})834 -> 0.0015s835-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})836 -> 0.0016s837-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})838 -> 0.0018s839-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})840 -> 0.0020s841-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})842 -> 0.0018s843-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})844 -> 0.0018s845-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})846 -> 0.0020s847-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})848 -> 0.0020s849-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})850 -> 0.0022s851-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})852 -> 0.0016s853-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})854 -> 0.0015s855-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})856 -> 0.0014s857-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})858 -> 0.0018s859-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})860 -> 0.0016s861-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})862 -> 0.0018s863-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})864 -> 0.0018s865-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})866 -> 0.0019s867-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})868 -> 0.0020s869-- add_foreign_key("events", "projects", {:on_delete=>:cascade})870 -> 0.0020s871-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})872 -> 0.0017s873-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})874 -> 0.0021s875-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})876 -> 0.0017s877-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})878 -> 0.0018s879-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})880 -> 0.0018s881-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})882 -> 0.0017s883-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})884 -> 0.0019s885-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})886 -> 0.0015s887-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})888 -> 0.0020s889-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})890 -> 0.0013s891-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})892 -> 0.0018s893-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})894 -> 0.0015s895-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})896 -> 0.0014s897-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})898 -> 0.0014s899-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})900 -> 0.0020s901-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})902 -> 0.0014s903-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})904 -> 0.0014s905-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})906 -> 0.0015s907-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})908 -> 0.0013s909-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})910 -> 0.0015s911-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})912 -> 0.0019s913-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})914 -> 0.0019s915-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})916 -> 0.0019s917-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})918 -> 0.0016s919-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})920 -> 0.0017s921-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})922 -> 0.0014s923-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})924 -> 0.0022s925-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})926 -> 0.0020s927-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})928 -> 0.0021s929-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})930 -> 0.0019s931-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})932 -> 0.0019s933-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})934 -> 0.0015s935-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})936 -> 0.0017s937-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})938 -> 0.0018s939-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})940 -> 0.0018s941-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})942 -> 0.0015s943-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})944 -> 0.0020s945-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})946 -> 0.0021s947-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})948 -> 0.0017s949-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})950 -> 0.0017s951-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})952 -> 0.0021s953-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})954 -> 0.0020s955-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})956 -> 0.0019s957-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})958 -> 0.0019s959-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})960 -> 0.0018s961-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})962 -> 0.0019s963-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})964 -> 0.0017s965-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})966 -> 0.0017s967-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})968 -> 0.0018s969-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})970 -> 0.0017s971-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})972 -> 0.0015s973-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})974 -> 0.0019s975-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})976 -> 0.0016s977-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})978 -> 0.0015s979-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})980 -> 0.0015s981-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})982 -> 0.0017s983-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})984 -> 0.0022s985-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})986 -> 0.0019s987-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})988 -> 0.0019s989-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})990 -> 0.0020s991-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})992 -> 0.0017s993-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})994 -> 0.0016s995-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})996 -> 0.0022s997-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})998 -> 0.0018s999-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1000 -> 0.0017s1001-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1002 -> 0.0015s1003-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1004 -> 0.0016s1005-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1006 -> 0.0020s1007-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1008 -> 0.0018s1009-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1010 -> 0.0021s1011-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1012 -> 0.0022s1013-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1014 -> 0.0019s1015-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1016 -> 0.0019s1017-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1018 -> 0.0020s1019-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1020 -> 0.0015s1021-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1022 -> 0.0016s1023-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1024 -> 0.0015s1025-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1026 -> 0.0018s1027-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1028 -> 0.0023s1029-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1030 -> 0.0019s1031-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1032 -> 0.0020s1033-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1034 -> 0.0017s1035-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1036 -> 0.0015s1037-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1038 -> 0.0017s1039-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1040 -> 0.0016s1041-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1042 -> 0.0016s1043-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1044 -> 0.0021s1045-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1046 -> 0.0017s1047-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1048 -> 0.0029s1049-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1050 -> 0.0022s1051-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1052 -> 0.0019s1053-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1054 -> 0.0018s1055-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1056 -> 0.0019s1057-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1058 -> 0.0023s1059-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1060 -> 0.0023s1061-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1062 -> 0.0022s1063-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1064 -> 0.0022s1065-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1066 -> 0.0022s1067-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1068 -> 0.0021s1069-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1070 -> 0.0019s1071-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1072 -> 0.0018s1073-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1074 -> 0.0019s1075-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1076 -> 0.0018s1077-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1078 -> 0.0021s1079-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1080 -> 0.0022s1081-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1082 -> 0.0018s1083-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1084 -> 0.0016s1085-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1086 -> 0.0017s1087-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1088 -> 0.0021s1089-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1090 -> 0.0018s1091-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1092 -> 0.0019s1093-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1094 -> 0.0018s1095-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1096 -> 0.0017s1097-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1098 -> 0.0018s1099-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1100 -> 0.0024s1101-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1102 -> 0.0021s1103-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1104 -> 0.0022s1105-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1106 -> 0.0018s1107-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1108 -> 0.0023s1109-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1110 -> 0.0015s1111-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1112 -> 0.0015s1113-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1114 -> 0.0021s1115-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1116 -> 0.0022s1117-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1118 -> 0.0016s1119-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1120 -> 0.0016s1121-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1122 -> 0.0014s1123-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1124 -> 0.0014s1125-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1126 -> 0.0019s1127-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1128 -> 0.0019s1129-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1130 -> 0.0021s1131-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1132 -> 0.0021s1133-- add_foreign_key("path_locks", "users")1134 -> 0.0020s1135-- add_foreign_key("personal_access_tokens", "users")1136 -> 0.0020s1137-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1138 -> 0.0021s1139-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1140 -> 0.0016s1141-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1142 -> 0.0021s1143-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1144 -> 0.0021s1145-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1146 -> 0.0020s1147-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1148 -> 0.0020s1149-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1150 -> 0.0021s1151-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1152 -> 0.0047s1153-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1154 -> 0.0025s1155-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1156 -> 0.0025s1157-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1158 -> 0.0027s1159-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1160 -> 0.0024s1161-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1162 -> 0.0028s1163-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1164 -> 0.0025s1165-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1166 -> 0.0023s1167-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1168 -> 0.0023s1169-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1170 -> 0.0021s1171-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1172 -> 0.0021s1173-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1174 -> 0.0020s1175-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1176 -> 0.0024s1177-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1178 -> 0.0022s1179-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1180 -> 0.0024s1181-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1182 -> 0.0015s1183-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1184 -> 0.0023s1185-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1186 -> 0.0023s1187-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1188 -> 0.0021s1189-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1190 -> 0.0021s1191-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1192 -> 0.0020s1193-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1194 -> 0.0016s1195-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1196 -> 0.0019s1197-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1198 -> 0.0024s1199-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1200 -> 0.0016s1201-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1202 -> 0.0021s1203-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1204 -> 0.0019s1205-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1206 -> 0.0017s1207-- add_foreign_key("protected_branch_merge_access_levels", "users")1208 -> 0.0020s1209-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1210 -> 0.0023s1211-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1212 -> 0.0015s1213-- add_foreign_key("protected_branch_push_access_levels", "users")1214 -> 0.0021s1215-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1216 -> 0.0020s1217-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1218 -> 0.0014s1219-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1220 -> 0.0020s1221-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1222 -> 0.0020s1223-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1224 -> 0.0018s1225-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1226 -> 0.0015s1227-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1228 -> 0.0019s1229-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1230 -> 0.0019s1231-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1232 -> 0.0017s1233-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1234 -> 0.0016s1235-- add_foreign_key("protected_tag_create_access_levels", "users")1236 -> 0.0018s1237-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1238 -> 0.0020s1239-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1240 -> 0.0015s1241-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1242 -> 0.0021s1243-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1244 -> 0.0015s1245-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1246 -> 0.0020s1247-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1248 -> 0.0018s1249-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1250 -> 0.0021s1251-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1252 -> 0.0019s1253-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1254 -> 0.0018s1255-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1256 -> 0.0017s1257-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1258 -> 0.0014s1259-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1260 -> 0.0017s1261-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1262 -> 0.0019s1263-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1264 -> 0.0016s1265-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1266 -> 0.0020s1267-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1268 -> 0.0017s1269-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1270 -> 0.0016s1271-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1272 -> 0.0016s1273-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1274 -> 0.0020s1275-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1276 -> 0.0015s1277-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1278 -> 0.0019s1279-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1280 -> 0.0023s1281-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1282 -> 0.0021s1283-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1284 -> 0.0015s1285-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1286 -> 0.0021s1287-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1288 -> 0.0016s1289-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1290 -> 0.0015s1291-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1292 -> 0.0014s1293-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1294 -> 0.0019s1295-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1296 -> 0.0017s1297-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1298 -> 0.0016s1299-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1300 -> 0.0022s1301-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1302 -> 0.0015s1303-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1304 -> 0.0021s1305-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1306 -> 0.0019s1307-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1308 -> 0.0019s1309-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1310 -> 0.0021s1311-- add_foreign_key("u2f_registrations", "users")1312 -> 0.0019s1313-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1314 -> 0.0019s1315-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1316 -> 0.0022s1317-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1318 -> 0.0020s1319-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1320 -> 0.0018s1321-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1322 -> 0.0020s1323-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1324 -> 0.0019s1325-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1326 -> 0.0019s1327-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1328 -> 0.0019s1329-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1330 -> 0.0022s1331-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1332 -> 0.0023s1333-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1334 -> 0.0019s1335-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1336 -> 0.0021s1337-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1338 -> 0.0021s1339-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1340 -> 0.0017s1341-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1342 -> 0.0015s1343-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1344 -> 0.0015s1345-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1346 -> 0.0021s1347-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1348 -> 0.0025s1349-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1350 -> 0.0018s1351-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1352 -> 0.0019s1353-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1354 -> 0.0020s1355-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1356 -> 0.0018s1357-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1358 -> 0.0017s1359-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1360 -> 0.0017s1361-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1362 -> 0.0021s1363-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1364 -> 0.0019s1365-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1366 -> 0.0018s1367-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1368 -> 0.0021s1369-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1370 -> 0.0014s1371-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1372 -> 0.0015s1373-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1374 -> 0.0017s1375-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1376 -> 0.0014s1377-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1378 -> 0.0021s1379-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1380 -> 0.0015s1381-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1382 -> 0.0014s1383-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1384 -> 0.0014s1385-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1386 -> 0.0023s1387-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1388 -> 0.0019s1389-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1390 -> 0.0021s1391$ date1392Wed Oct 16 17:08:18 UTC 20191393$ source scripts/rspec_helpers.sh1394$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1395KNAPSACK_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.rb1396Checking gitaly-ruby bundle...1397Warning: 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`.1398The Gemfile's dependencies are satisfied1399Trying to connect to gitaly: ...... OK1400Knapsack report generator started!1401Run options:1402 include {:focus=>true}1403 exclude {:quarantine=>true, :geo=>true}1404All examples were filtered out; ignoring {:focus=>true}1405==> Setting up GitLab Shell...1406 GitLab Shell set up in 0.07422086 seconds...1407==> Setting up Gitaly...1408 Gitaly set up in 0.000138224 seconds...1409QuickActions::InterpretService1410 #execute1411 limits to commands passed1412 move issue command1413 returns the move issue message1414 returns move issue failure message when the referenced issue is not found1415 behaves like reopen command1416 returns state_event: "reopen" if content contains /reopen1417 returns the reopen message1418 behaves like reopen command1419 returns state_event: "reopen" if content contains /reopen1420 returns the reopen message1421 behaves like close command1422 returns state_event: "close" if content contains /close1423 returns the close message1424 behaves like close command1425 returns state_event: "close" if content contains /close1426 returns the close message1427 merge command1428 behaves like merge command1429 runs merge command if content contains /merge1430 returns them merge message1431 can not be merged when logged user does not have permissions1432 behaves like empty command1433 populates {} if content contains an unsupported command1434 returns an empty message1435 can not be merged when sha does not match1436 behaves like empty command1437 populates {} if content contains an unsupported command1438 returns an empty message1439 when sha is missing1440 precheck passes and returns merge command1441 issue can not be merged1442 behaves like empty command1443 populates {} if content contains an unsupported command1444 returns an empty message1445 non persisted merge request cant be merged1446 behaves like empty command1447 populates {} if content contains an unsupported command1448 returns an empty message1449 not persisted merge request can not be merged1450 behaves like empty command1451 populates {} if content contains an unsupported command1452 returns an empty message1453 behaves like title command1454 populates title: "A brand new title" if content contains /title A brand new title1455 returns the title message1456 behaves like title command1457 populates title: "A brand new title" if content contains /title A brand new title1458 returns the title message1459 behaves like empty command1460 populates {} if content contains an unsupported command1461 returns an empty message1462 assign command with one user1463 behaves like assign command1464 assigns to a single user1465 returns the assign message1466 behaves like assign command1467 assigns to a single user1468 returns the assign message1469 assign command with multiple assignees1470 behaves like assign command1471 assigns to a single user1472 returns the assign message1473 behaves like assign command1474 assigns to a single user1475 returns the assign message1476 assign command with me alias1477 behaves like assign command1478 assigns to a single user1479 returns the assign message1480 behaves like assign command1481 assigns to a single user1482 returns the assign message1483 assign command with me alias and whitespace1484 behaves like assign command1485 assigns to a single user1486 returns the assign message1487 behaves like assign command1488 assigns to a single user1489 returns the assign message1490 behaves like empty command1491 populates {} if content contains an unsupported command1492 returns Failed to assign a user because no user was found. message1493 behaves like empty command1494 populates {} if content contains an unsupported command1495 returns an empty message1496 unassign command1497 Issue1498 populates assignee_ids: [] if content contains /unassign1499 returns the unassign message for all the assignee if content contains /unassign1500 Merge Request1501 populates assignee_ids: [] if content contains /unassign1502 returns the unassign message for all the assignee if content contains /unassign1503 behaves like milestone command1504 fetches milestone and populates milestone_id if content contains /milestone1505 returns the milestone message1506 returns empty milestone message when milestone is wrong1507 behaves like milestone command1508 fetches milestone and populates milestone_id if content contains /milestone1509 returns the milestone message1510 returns empty milestone message when milestone is wrong1511 only group milestones available1512 behaves like milestone command1513 fetches milestone and populates milestone_id if content contains /milestone1514 returns the milestone message1515 returns empty milestone message when milestone is wrong1516 behaves like milestone command1517 fetches milestone and populates milestone_id if content contains /milestone1518 returns the milestone message1519 returns empty milestone message when milestone is wrong1520 behaves like remove_milestone command1521 populates milestone_id: nil if content contains /remove_milestone1522 returns removed milestone message1523 behaves like remove_milestone command1524 populates milestone_id: nil if content contains /remove_milestone1525 returns removed milestone message1526 behaves like label command1527 fetches label ids and populates add_label_ids if content contains /label1528 returns the label message1529 behaves like label command1530 fetches label ids and populates add_label_ids if content contains /label1531 returns the label message1532 behaves like multiple label command1533 fetches label ids and populates add_label_ids if content contains multiple /label1534 behaves like multiple label with same argument1535 prevents duplicate label ids and populates add_label_ids if content contains multiple /label1536 behaves like multiword label name starting without ~1537 fetches label ids and populates add_label_ids if content contains /label1538 behaves like multiword label name starting without ~1539 fetches label ids and populates add_label_ids if content contains /label1540 behaves like label name is included in the middle of another label name1541 ignores the sublabel when the content contains the includer label name1542 behaves like label name is included in the middle of another label name1543 ignores the sublabel when the content contains the includer label name1544 behaves like unlabel command1545 fetches label ids and populates remove_label_ids if content contains /unlabel1546 returns the unlabel message1547 behaves like unlabel command1548 fetches label ids and populates remove_label_ids if content contains /unlabel1549 returns the unlabel message1550 behaves like multiple unlabel command1551 fetches label ids and populates remove_label_ids if content contains mutiple /unlabel1552 behaves like unlabel command with no argument1553 populates label_ids: [] if content contains /unlabel with no arguments1554 behaves like unlabel command with no argument1555 populates label_ids: [] if content contains /unlabel with no arguments1556 behaves like relabel command1557 populates label_ids: [] if content contains /relabel1558 returns the relabel message1559 behaves like relabel command1560 populates label_ids: [] if content contains /relabel1561 returns the relabel message1562 behaves like done command1563 populates todo_event: "done" if content contains /done1564 returns the done message1565 behaves like done command1566 populates todo_event: "done" if content contains /done1567 returns the done message1568 behaves like subscribe command1569 populates subscription_event: "subscribe" if content contains /subscribe1570 returns the subscribe message1571 behaves like subscribe command1572 populates subscription_event: "subscribe" if content contains /subscribe1573 returns the subscribe message1574 behaves like unsubscribe command1575 populates subscription_event: "unsubscribe" if content contains /unsubscribe1576 returns the unsubscribe message1577 behaves like unsubscribe command1578 populates subscription_event: "unsubscribe" if content contains /unsubscribe1579 returns the unsubscribe message1580 behaves like empty command1581 populates {} if content contains an unsupported command1582 returns an empty message1583 behaves like remove_due_date command1584 populates due_date: nil if content contains /remove_due_date1585 returns Removed the due date1586 behaves like wip command1587 returns wip_event: "wip" if content contains /wip1588 returns the wip message1589 behaves like unwip command1590 returns wip_event: "unwip" if content contains /wip1591 returns the unwip message1592 behaves like empty command1593 populates {} if content contains an unsupported command1594 returns an empty message1595 behaves like estimate command1596 populates time_estimate: 3600 if content contains /estimate 1h1597 returns the time_estimate formatted message1598 behaves like empty command1599 populates {} if content contains an unsupported command1600 returns an empty message1601 behaves like empty command1602 populates {} if content contains an unsupported command1603 returns an empty message1604 behaves like spend command1605 populates spend_time: 3600 if content contains /spend 1h1606 returns the spend_time message including the formatted duration and verb1607 behaves like spend command with negative time1608 populates spend_time: -1800 if content contains /spend -30m1609 behaves like spend command with valid date1610 populates spend time: 1800 with date in date type format1611 behaves like spend command with invalid date1612 will not create any note and timelog1613 behaves like spend command with future date1614 will not create any note and timelog1615 behaves like empty command1616 populates {} if content contains an unsupported command1617 returns an empty message1618 behaves like empty command1619 populates {} if content contains an unsupported command1620 returns an empty message1621 behaves like remove_estimate command1622 populates time_estimate: 0 if content contains /remove_estimate1623 returns the remove_estimate message1624 behaves like remove_time_spent command1625 populates spend_time: :reset if content contains /remove_time_spent1626 returns the remove_time_spent message1627 behaves like confidential command1628 marks issue as confidential if content contains /confidential1629 returns the confidential message1630 when issuable is already confidential1631 does not return the success message1632 is not part of the available commands1633 behaves like lock command1634 returns discussion_locked: true if content contains /lock1635 returns the lock discussion message1636 behaves like lock command1637 returns discussion_locked: true if content contains /lock1638 returns the lock discussion message1639 behaves like unlock command1640 returns discussion_locked: true if content contains /unlock1641 returns the unlock discussion message1642 behaves like unlock command1643 returns discussion_locked: true if content contains /unlock1644 returns the unlock discussion message1645 /todo1646 if issuable is an Issue1647 behaves like todo command1648 populates todo_event: "add" if content contains /todo1649 returns the todo message1650 if issuable is a MergeRequest1651 behaves like todo command1652 populates todo_event: "add" if content contains /todo1653 returns the todo message1654 if issuable is a Commit1655 behaves like empty command1656 populates {} if content contains an unsupported command1657 returns an empty message1658 /due command1659 returns invalid date format message when the due date is invalid1660 behaves like due command1661 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281662 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281663 behaves like due command1664 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281665 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281666 behaves like due command1667 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281668 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281669 behaves like due command1670 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281671 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281672 /copy_metadata command1673 is available when the user is a developer1674 when the user does not have permission1675 is not available1676 behaves like empty command1677 populates {} if content contains an unsupported command1678 returns an empty message1679 behaves like copy_metadata command1680 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1681 returns the copy metadata message1682 behaves like copy_metadata command1683 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1684 returns the copy metadata message1685 when the parent issuable has a milestone1686 behaves like copy_metadata command1687 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1688 returns the copy metadata message1689 when more than one issuable is passed1690 behaves like copy_metadata command1691 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1692 returns the copy metadata message1693 cross project references1694 behaves like empty command1695 populates {} if content contains an unsupported command1696 returns an empty message1697 behaves like empty command1698 populates {} if content contains an unsupported command1699 returns an empty message1700 behaves like empty command1701 populates {} if content contains an unsupported command1702 returns an empty message1703 /duplicate command1704 behaves like duplicate command1705 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1706 returns the duplicate message1707 behaves like empty command1708 populates {} if content contains an unsupported command1709 returns an empty message1710 cross project references1711 behaves like duplicate command1712 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1713 returns the duplicate message1714 behaves like empty command1715 populates {} if content contains an unsupported command1716 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1717 behaves like empty command1718 populates {} if content contains an unsupported command1719 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1720 when current_user cannot :admin_issue1721 behaves like empty command1722 populates {} if content contains an unsupported command1723 returns an empty message1724 behaves like empty command1725 populates {} if content contains an unsupported command1726 returns an empty message1727 behaves like empty command1728 populates {} if content contains an unsupported command1729 returns an empty message1730 behaves like empty command1731 populates {} if content contains an unsupported command1732 returns an empty message1733 behaves like empty command1734 populates {} if content contains an unsupported command1735 returns an empty message1736 behaves like empty command1737 populates {} if content contains an unsupported command1738 returns an empty message1739 behaves like empty command1740 populates {} if content contains an unsupported command1741 returns an empty message1742 behaves like empty command1743 populates {} if content contains an unsupported command1744 returns an empty message1745 behaves like empty command1746 populates {} if content contains an unsupported command1747 returns an empty message1748 behaves like empty command1749 populates {} if content contains an unsupported command1750 returns an empty message1751 behaves like empty command1752 populates {} if content contains an unsupported command1753 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1754 behaves like empty command1755 populates {} if content contains an unsupported command1756 returns an empty message1757 behaves like empty command1758 populates {} if content contains an unsupported command1759 returns an empty message1760 /award command1761 behaves like award command1762 toggle award 100 emoji if content contains /award :100:1763 returns the award message1764 behaves like award command1765 toggle award 100 emoji if content contains /award :100:1766 returns the award message1767 ignores command with no argument1768 behaves like empty command1769 populates {} if content contains an unsupported command1770 returns an empty message1771 ignores non-existing / invalid emojis1772 behaves like empty command1773 populates {} if content contains an unsupported command1774 returns an empty message1775 behaves like empty command1776 populates {} if content contains an unsupported command1777 returns an empty message1778 if issuable is a Commit1779 behaves like empty command1780 populates {} if content contains an unsupported command1781 returns an empty message1782 /shrug command1783 behaves like shrug command1784 appends ¯\_(ツ)_/¯ to the comment1785 behaves like shrug command1786 appends ¯\_(ツ)_/¯ to the comment1787 /tableflip command1788 behaves like tableflip command1789 appends (╯°□°)╯︵ ┻━┻ to the comment1790 behaves like tableflip command1791 appends (╯°□°)╯︵ ┻━┻ to the comment1792 /target_branch command1793 updates target_branch if /target_branch command is executed1794 handles blanks around param1795 returns the target_branch message1796 ignores command with no argument1797 behaves like empty command1798 populates {} if content contains an unsupported command1799 returns an empty message1800 ignores non-existing target branch1801 behaves like empty command1802 populates {} if content contains an unsupported command1803 returns an empty message1804 /board_move command1805 populates remove_label_ids for all current board columns1806 populates add_label_ids with the id of the given label1807 does not include the given label id in remove_label_ids1808 does not remove label ids that are not lists on the board1809 returns board_move message1810 if the project has multiple boards1811 behaves like empty command1812 populates {} if content contains an unsupported command1813 returns an empty message1814 if the given label does not exist1815 behaves like empty command1816 populates {} if content contains an unsupported command1817 returns Failed to move this issue because label was not found. message1818 if multiple labels are given1819 behaves like empty command1820 populates {} if content contains an unsupported command1821 returns Failed to move this issue because only a single label can be provided. message1822 if the given label is not a list on the board1823 behaves like empty command1824 populates {} if content contains an unsupported command1825 returns Failed to move this issue because label was not found. message1826 if issuable is not an Issue1827 behaves like empty command1828 populates {} if content contains an unsupported command1829 returns an empty message1830 /tag command1831 ignores command with no argument1832 behaves like empty command1833 populates {} if content contains an unsupported command1834 returns an empty message1835 tags a commit with a tag name1836 behaves like tag command1837 tags a commit1838 returns the tag message1839 tags a commit with a tag name and message1840 behaves like tag command1841 tags a commit1842 returns the tag message1843 /create_merge_request command1844 populates create_merge_request with branch_name and issue iid1845 returns the create_merge_request message1846 if issuable is not an Issue1847 behaves like empty command1848 populates {} if content contains an unsupported command1849 returns an empty message1850 when logged user cannot create_merge_requests in the project1851 behaves like empty command1852 populates {} if content contains an unsupported command1853 returns an empty message1854 when logged user cannot push code to the project1855 behaves like empty command1856 populates {} if content contains an unsupported command1857 returns an empty message1858 #explain1859 close command1860 includes issuable name1861 reopen command1862 includes issuable name1863 title command1864 includes new title1865 assign command1866 includes only the user reference1867 unassign command1868 includes current assignee reference1869 milestone command1870 is empty when milestone reference is wrong1871 remove milestone command1872 includes current milestone name1873 label command1874 is empty when there are no correct labels1875 unlabel command1876 says all labels if no parameter provided1877 relabel command1878 includes label name1879 subscribe command1880 includes issuable name1881 unsubscribe command1882 includes issuable name1883 due command1884 includes the date1885 wip command1886 includes the new status1887 award command1888 includes the emoji1889 estimate command1890 includes the formatted duration1891 spend command1892 includes the formatted duration and proper verb1893 target branch command1894 includes the branch name1895 board move command1896 includes the label name1897 move issue to another project command1898 includes the project name1899 tag a commit1900 with a tag name1901 without a message1902 includes the tag name only1903 with an empty message1904 includes the tag name only1905 with a tag name and message1906 includes the tag name and message1907 create a merge request1908 with no branch name1909 uses the default branch name1910 returns the execution message using the default branch name1911 with a branch name1912 uses the given branch name1913 returns the execution message using the given branch name1914 #commands_executed_count1915 counts commands executed1916MergeRequests::CreateFromIssueService1917 #execute1918 no target_project_id specified1919 inherits labels1920 inherits milestones1921 sets the merge request title to: "WIP: Resolves "$issue-title"1922 behaves like a service that creates a merge request from an issue1923 returns an error when user can not create merge request on target project1924 returns an error with invalid issue iid1925 creates a branch based on issue title1926 creates a branch using passed name1927 creates the new_merge_request system note1928 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created1929 creates a merge request1930 sets the merge request author to current user1931 sets the merge request source branch to the new issue branch1932 sets the merge request source branch to the passed branch name1933 sets the merge request target branch to the project default branch1934 executes quick actions if the build service sets them in the description1935 when ref branch is set1936 sets the merge request source branch to the new issue branch1937 sets the merge request target branch to the ref branch1938 when the ref is a tag1939 sets the merge request source branch to the new issue branch1940 creates a merge request1941 sets the merge request target branch to the project default branch1942 when ref branch does not exist1943 creates a merge request1944 sets the merge request target branch to the project default branch1945 target_project_id is specified1946 target project is not a fork of the project1947 returns an error about not finding the project1948 does not create merge request1949 target project is a fork of project project1950 sets the merge request title to: "WIP: $issue-branch-name1951 behaves like a service that creates a merge request from an issue1952 returns an error when user can not create merge request on target project1953 returns an error with invalid issue iid1954 creates a branch based on issue title1955 creates a branch using passed name1956 creates the new_merge_request system note1957 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created1958 creates a merge request1959 sets the merge request author to current user1960 sets the merge request source branch to the new issue branch1961 sets the merge request source branch to the passed branch name1962 sets the merge request target branch to the project default branch1963 executes quick actions if the build service sets them in the description1964 when ref branch is set1965 sets the merge request source branch to the new issue branch1966 sets the merge request target branch to the ref branch1967 when the ref is a tag1968 sets the merge request source branch to the new issue branch1969 creates a merge request1970 sets the merge request target branch to the project default branch1971 when ref branch does not exist1972 creates a merge request1973 sets the merge request target branch to the project default branch1974Gitlab::ClosingIssueExtractor1975 #closed_by_message1976 with a single reference1977 should eq [#<Issue id:255 namespace352/project358#1>]1978 should eq [#<Issue id:256 namespace354/project360#1>]1979 should eq [#<Issue id:257 namespace356/project362#1>]1980 should eq [#<Issue id:258 namespace358/project364#1>]1981 should eq [#<Issue id:259 namespace360/project366#1>]1982 should eq [#<Issue id:260 namespace362/project368#1>]1983 should eq [#<Issue id:261 namespace364/project370#1>]1984 should eq [#<Issue id:262 namespace366/project372#1>]1985 should eq [#<Issue id:263 namespace368/project374#1>]1986 should eq [#<Issue id:264 namespace370/project376#1>]1987 should eq [#<Issue id:265 namespace372/project378#1>]1988 should eq [#<Issue id:266 namespace374/project380#1>]1989 should eq [#<Issue id:267 namespace376/project382#1>]1990 should eq [#<Issue id:268 namespace378/project384#1>]1991 should eq [#<Issue id:269 namespace380/project386#1>]1992 should eq [#<Issue id:270 namespace382/project388#1>]1993 should eq [#<Issue id:271 namespace384/project390#1>]1994 should eq [#<Issue id:272 namespace386/project392#1>]1995 should eq [#<Issue id:273 namespace388/project394#1>]1996 should eq [#<Issue id:274 namespace390/project396#1>]1997 should eq [#<Issue id:275 namespace392/project398#1>]1998 should eq [#<Issue id:276 namespace394/project400#1>]1999 should eq [#<Issue id:277 namespace396/project402#1>]2000 should eq [#<Issue id:278 namespace398/project404#1>]2001 should eq [#<Issue id:279 namespace400/project406#1>]2002 should eq [#<Issue id:280 namespace402/project408#1>]2003 should eq [#<Issue id:281 namespace404/project410#1>]2004 should eq [#<Issue id:282 namespace406/project412#1>]2005 should eq [#<Issue id:283 namespace408/project414#1>]2006 should eq [#<Issue id:284 namespace410/project416#1>]2007 should eq [#<Issue id:285 namespace412/project418#1>]2008 should eq [#<Issue id:286 namespace414/project420#1>]2009 should eq [#<Issue id:287 namespace416/project422#1>]2010 should eq [#<Issue id:288 namespace418/project424#1>]2011 should eq [#<Issue id:289 namespace420/project426#1>]2012 should eq [#<Issue id:290 namespace422/project428#1>]2013 should eq [#<Issue id:291 namespace424/project430#1>]2014 should eq [#<Issue id:292 namespace426/project432#1>]2015 should eq [#<Issue id:293 namespace428/project434#1>]2016 should eq [#<Issue id:294 namespace430/project436#1>]2017 should eq [#<Issue id:295 namespace432/project438#1>]2018 should eq [#<Issue id:296 namespace434/project440#1>]2019 should eq [#<Issue id:297 namespace436/project442#1>]2020 should eq [#<Issue id:298 namespace438/project444#1>]2021 should eq [#<Issue id:299 namespace440/project446#1>]2022 should eq [#<Issue id:300 namespace442/project448#1>]2023 should eq [#<Issue id:301 namespace444/project450#1>]2024 should eq [#<Issue id:302 namespace446/project452#1>]2025 should eq [#<Issue id:303 namespace448/project454#1>]2026 should eq [#<Issue id:304 namespace450/project456#1>]2027 should eq [#<Issue id:305 namespace452/project458#1>]2028 should eq [#<Issue id:306 namespace454/project460#1>]2029 should eq [#<Issue id:307 namespace456/project462#1>]2030 should eq [#<Issue id:308 namespace458/project464#1>]2031 should eq [#<Issue id:309 namespace460/project466#1>]2032 with an external issue tracker reference2033 extracts the referenced issue2034 with a cross-project reference2035 should eq [#<Issue id:310 namespace467/project472#1>]2036 with a cross-project URL2037 should eq [#<Issue id:311 namespace469/project474#1>]2038 with a cross-project fork reference2039 should be empty2040 with an invalid URL2041 should eq []2042 with an invalid keyword such as suffix insted of fix2043 should eq []2044 with multiple references2045 fetches issues in single line message2046 fetches comma-separated issues references in single line message2047 fetches comma-separated issues numbers in single line message2048 allows oxford commas (comma before and) when referencing multiple issues2049 allows spaces before commas when referencing multiple issues2050 allows non-comma-separated issue numbers in single line message2051 allows mixed comma-separated and non-comma-separated issue numbers in single line message2052 fetches issues in multi-line message2053 fetches issues in hybrid message2054 fetches cross-project references2055 fetches cross-project URL references2056 ignores invalid cross-project URL references2057SlackService2058 behaves like slack or mattermost notifications2059 Associations2060 should belong to project required:2061 should have one service_hook2062 Validations2063 when service is active2064 should validate that :webhook cannot be empty/falsy2065 behaves like issue tracker service URL attribute2066 should allow :webhook to be ‹"https://example.com"›2067 should not allow :webhook to be ‹"example.com"›2068 should not allow :webhook to be ‹"ftp://example.com"›2069 should not allow :webhook to be ‹"herp-and-derp"›2070 when service is inactive2071 should not validate that :webhook cannot be empty/falsy2072 #execute2073 calls Slack API for push events2074 calls Slack API for issue events2075 calls Slack API for merge requests events2076 calls Slack API for wiki page events2077 calls Slack API for deployment events2078 uses the username as an option for slack when configured2079 uses the channel as an option when it is configured2080 event channels2081 uses the right channel for push event2082 uses the right channel for merge request event2083 uses the right channel for issue event2084 uses the right channel for wiki event2085 for confidential issues2086 uses confidential issue channel2087 falls back to issue channel2088 note event2089 uses the right channel2090 for confidential notes2091 uses confidential channel2092 falls back to note channel2093 Push events2094 on default branch2095 pushing tags2096 behaves like triggered Slack service2097 notifies about push events2098 notification enabled only for default branch2099 behaves like triggered Slack service2100 notifies about push events2101 notification enabled only for protected branches2102 behaves like untriggered Slack service2103 notifies about push events2104 notification enabled only for default and protected branches2105 behaves like triggered Slack service2106 notifies about push events2107 notification enabled for all branches2108 behaves like triggered Slack service2109 notifies about push events2110 on a protected branch2111 pushing tags2112 behaves like triggered Slack service2113 notifies about push events2114 notification enabled only for default branch2115 behaves like untriggered Slack service2116 notifies about push events2117 notification enabled only for protected branches2118 behaves like triggered Slack service2119 notifies about push events2120 notification enabled only for default and protected branches2121 behaves like triggered Slack service2122 notifies about push events2123 notification enabled for all branches2124 behaves like triggered Slack service2125 notifies about push events2126 on a protected branch with protected branches defined using wildcards2127 pushing tags2128 behaves like triggered Slack service2129 notifies about push events2130 notification enabled only for default branch2131 behaves like untriggered Slack service2132 notifies about push events2133 notification enabled only for protected branches2134 behaves like triggered Slack service2135 notifies about push events2136 notification enabled only for default and protected branches2137 behaves like triggered Slack service2138 notifies about push events2139 notification enabled for all branches2140 behaves like triggered Slack service2141 notifies about push events2142 on a neither protected nor default branch2143 pushing tags2144 behaves like triggered Slack service2145 notifies about push events2146 notification enabled only for default branch2147 behaves like untriggered Slack service2148 notifies about push events2149 notification enabled only for protected branches2150 behaves like untriggered Slack service2151 notifies about push events2152 notification enabled only for default and protected branches2153 behaves like untriggered Slack service2154 notifies about push events2155 notification enabled for all branches2156 behaves like triggered Slack service2157 notifies about push events2158 Note events2159 when commit comment event executed2160 behaves like triggered Slack service2161 notifies about commit comment events2162 when merge request comment event executed2163 behaves like triggered Slack service2164 notifies about merge request comment events2165 when issue comment event executed2166 behaves like triggered Slack service2167 notifies about issue comment events2168 when snippet comment event executed2169 behaves like triggered Slack service2170 notifies about snippet comment events2171 Pipeline events2172 with succeeded pipeline2173 with default to notify_only_broken_pipelines2174 behaves like untriggered Slack service2175 notifies about pipeline events2176 with setting notify_only_broken_pipelines to false2177 behaves like triggered Slack service2178 notifies about pipeline events2179 with failed pipeline2180 on default branch2181 notification enabled only for default branch2182 behaves like triggered Slack service2183 notifies about pipeline events2184 notification enabled only for protected branches2185 behaves like untriggered Slack service2186 notifies about pipeline events2187 notification enabled only for default and protected branches2188 behaves like triggered Slack service2189 notifies about pipeline events2190 notification enabled for all branches2191 behaves like triggered Slack service2192 notifies about pipeline events2193 on a protected branch2194 notification enabled only for default branch2195 behaves like untriggered Slack service2196 notifies about pipeline events2197 notification enabled only for protected branches2198 behaves like triggered Slack service2199 notifies about pipeline events2200 notification enabled only for default and protected branches2201 behaves like triggered Slack service2202 notifies about pipeline events2203 notification enabled for all branches2204 behaves like triggered Slack service2205 notifies about pipeline events2206 on a protected branch with protected branches defined usin wildcards2207 notification enabled only for default branch2208 behaves like untriggered Slack service2209 notifies about pipeline events2210 notification enabled only for protected branches2211 behaves like triggered Slack service2212 notifies about pipeline events2213 notification enabled only for default and protected branches2214 behaves like triggered Slack service2215 notifies about pipeline events2216 notification enabled for all branches2217 behaves like triggered Slack service2218 notifies about pipeline events2219 on a neither protected nor default branch2220 notification enabled only for default branch2221 behaves like untriggered Slack service2222 notifies about pipeline events2223 notification enabled only for protected branches2224 behaves like untriggered Slack service2225 notifies about pipeline events2226 notification enabled only for default and protected branches2227 behaves like untriggered Slack service2228 notifies about pipeline events2229 notification enabled for all branches2230 behaves like triggered Slack service2231 notifies about pipeline events2232Gitlab::Ci::Trace2233 associations2234 should respond to #job2235 should delegate #old_trace to the #job object2236 when live trace feature is disabled2237 behaves like trace with disabled live trace feature2238 behaves like common trace features2239 #html2240 returns formatted html2241 returns last line of formatted html2242 #raw2243 returns raw output2244 returns last line of raw output2245 #extract_coverage2246 matching coverage2247 returns valid coverage2248 no coverage2249 returs nil2250 #extract_sections2251 no sections2252 returs []2253 multiple sections available2254 returns valid sections2255 logs contains "section_start"2256 returns only one section2257 missing section_end2258 returns no sections2259 missing section_start2260 returns no sections2261 inverted section_start section_end2262 returns no sections2263 #write2264 when arhicved trace does not exist yet2265 does not raise an error2266 when arhicved trace already exists2267 raises an error2268 #set2269 returns trace2270 overwrite trace2271 returns new trace2272 runners token2273 hides token2274 hides build token2275 hides token2276 #append2277 returns correct trace2278 tries to append trace at different offset2279 fails with append2280 runners token2281 hides token2282 build token2283 hides token2284 #archive!2285 when build status is success2286 does not have an archived trace yet2287 when archives2288 has an archived trace2289 when another process has already been archiving2290 blocks concurrent archiving2291 #read2292 when trace artifact exists2293 behaves like read successfully with IO2294 yields with source2295 when current_path (with project_id) exists2296 behaves like read successfully with IO2297 yields with source2298 when db trace exists2299 behaves like read successfully with StringIO2300 yields with source2301 when no sources exist2302 behaves like failed to read2303 yields without source2304 trace handling2305 trace does not exist2306 should equal false2307 when trace artifact exists2308 should be truthy2309 when the trace artifact has been erased2310 should be falsy2311 removes associations2312 new trace path is used2313 trace exist2314 can be erased2315 stored in database2316 trace exist2317 can be erased2318 returns database data2319 #archive!2320 when job does not have trace artifact2321 when trace file stored in default path2322 behaves like archive trace file2323 should eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2324 when failed to create clone file2325 behaves like source trace file stays intact2326 should be truthy2327 when failed to create job artifact record2328 behaves like source trace file stays intact2329 should be truthy2330 when trace is stored in database2331 behaves like archive trace in database2332 should eq "14bf640d204552230ff0c066e0c8d3743baad80467cf04e6512ea271f12f6a73"2333 when failed to create clone file2334 behaves like source trace in database stays intact2335 should eq "Sample trace"2336 when failed to create job artifact record2337 behaves like source trace in database stays intact2338 should eq "Sample trace"2339 when there is a validation error on Ci::Build2340 when erase old trace with 'save'2341 old trace is not deleted2342 behaves like archive trace in database2343 should eq "14bf640d204552230ff0c066e0c8d3743baad80467cf04e6512ea271f12f6a73"2344 when job has trace artifact2345 does not archive2346 when job is not finished yet2347 does not archive2348 #erase!2349 when it is a live trace2350 when trace is stored in database2351 should not be nil2352 removes trace2353 when trace is stored in file storage2354 should not be nil2355 removes trace2356 when it is an archived trace2357 has trace at first2358 removes trace2359 when live trace feature is enabled2360 behaves like trace with enabled live trace feature2361 behaves like common trace features2362 #html2363 returns formatted html2364 returns last line of formatted html2365 #raw2366 returns raw output2367 returns last line of raw output2368 #extract_coverage2369 matching coverage2370 returns valid coverage2371 no coverage2372 returs nil2373 #extract_sections2374 no sections2375 returs []2376 multiple sections available2377 returns valid sections2378 logs contains "section_start"2379 returns only one section2380 missing section_end2381 returns no sections2382 missing section_start2383 returns no sections2384 inverted section_start section_end2385 returns no sections2386 #write2387 when arhicved trace does not exist yet2388 does not raise an error2389 when arhicved trace already exists2390 raises an error2391 #set2392 returns trace2393 overwrite trace2394 returns new trace2395 runners token2396 hides token2397 hides build token2398 hides token2399 #append2400 returns correct trace2401 tries to append trace at different offset2402 fails with append2403 runners token2404 hides token2405 build token2406 hides token2407 #archive!2408 when build status is success2409 does not have an archived trace yet2410 when archives2411 has an archived trace2412 when another process has already been archiving2413 blocks concurrent archiving2414 #read2415 when trace artifact exists2416 behaves like read successfully with IO2417 yields with source2418 when live trace exists2419 behaves like read successfully with ChunkedIO2420 yields with source2421 when no sources exist2422 behaves like failed to read2423 yields without source2424 trace handling2425 trace does not exist2426 should equal false2427 when trace artifact exists2428 should be truthy2429 when the trace artifact has been erased2430 should be falsy2431 removes associations2432 stored in live trace2433 trace exist2434 can be erased2435 returns live trace data2436 #archived_trace_exist?2437 when trace does not exist2438 should be falsy2439 when archived trace exists2440 should be truthy2441 when live trace exists2442 should be falsy2443 #live_trace_exist?2444 when trace does not exist2445 should be falsy2446 when archived trace exists2447 should be falsy2448 when live trace exists2449 should be truthy2450 #archive!2451 when job does not have trace artifact2452 when trace is stored in ChunkedIO2453 behaves like archive trace file in ChunkedIO2454 should eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"2455 when failed to create clone file2456 behaves like source trace in ChunkedIO stays intact2457 should eq "BUILD TRACE"2458 when failed to create job artifact record2459 behaves like source trace in ChunkedIO stays intact2460 should eq "BUILD TRACE"2461 when job has trace artifact2462 does not archive2463 when job is not finished yet2464 does not archive2465 #erase!2466 when it is a live trace2467 should not be nil2468 removes trace2469 when it is an archived trace2470 has trace at first2471 removes trace2472check.rake2473 gitlab:check rake task2474 behaves like system check rake task2475Internal API available: FAILED - Internal API unreachable2476 runs the check2477 gitlab:gitlab_shell:check rake task2478 behaves like system check rake task2479Internal API available: FAILED - Internal API unreachable2480 runs the check2481 gitlab:gitaly:check rake task2482 behaves like system check rake task2483 runs the check2484 gitlab:sidekiq:check rake task2485 behaves like system check rake task2486 runs the check2487 gitlab:incoming_email:check rake task2488 behaves like system check rake task2489 runs the check2490 gitlab:ldap:check rake task2491 behaves like system check rake task2492 runs the check2493 when LDAP is not enabled2494 does not attempt to bind or search for users2495 when LDAP is enabled2496 attempts to bind using credentials2497 searches for 100 LDAP users2498 sanitizes output2499Event2500 Associations2501 should belong to project required:2502 should belong to target required:2503 Respond to2504 should respond to #author_name2505 should respond to #author_email2506 should respond to #issue_title2507 should respond to #merge_request_title2508 Callbacks2509 after_create :reset_project_activity2510 calls the reset_project_activity method2511 after_create :set_last_repository_updated_at2512 with a push event2513 updates the project last_repository_updated_at2514 without a push event2515 does not update the project last_repository_updated_at2516 #set_last_repository_updated_at2517 only updates once every Event::REPOSITORY_UPDATED_AT_INTERVAL minutes2518 after_create :track_user_interacted_projects2519 passes event to UserInteractedProject.track2520 does not call UserInteractedProject.track if its not yet available2521 Push event2522 should eq #<User id:1112 @namespace671>2523 #membership_changed?2524 created2525 should be falsey2526 updated2527 should be falsey2528 expired2529 should be truthy2530 left2531 should be truthy2532 joined2533 should be truthy2534 #note?2535 issue note event2536 should be note2537 merge request diff note event2538 should be note2539 #visible_to_user?2540 commit note event2541 should eq true2542 private project2543 should eq true2544 issue event2545 for non confidential issues2546 should eq true2547 for confidential issues2548 should eq true2549 issue note event2550 on non confidential issues2551 should eq true2552 on confidential issues2553 should eq true2554 private project2555 should eq true2556 merge request diff note event2557 should eq true2558 private project2559 should eq true2560 milestone event2561 should be truthy2562 on public project with private issue tracker and merge requests2563 should be truthy2564 on private project2565 should be truthy2566 project snippet note event2567 should be truthy2568 on public project with private snippets2569 should be truthy2570 on private project2571 should be truthy2572 personal snippet note event2573 should be truthy2574 on internal snippet2575 should be truthy2576 on private snippet2577 should be truthy2578 .limit_recent2579 without an explicit limit2580 should eq [#<Event id: 637, project_id: 725, author_id: 1244, target_id: 374, created_at: "2019-10-16 17:13:54"...10-16 17:13:54", updated_at: "2019-10-16 17:13:54", action: 3, target_type: "Issue", group_id: nil>]2581 with an explicit limit2582 should eq [#<Event id: 639, project_id: 729, author_id: 1250, target_id: 376, created_at: "2019-10-16 17:13:55", updated_at: "2019-10-16 17:13:55", action: 3, target_type: "Issue", group_id: nil>]2583 #reset_project_activity2584 when a project was updated less than 1 hour ago2585 does not update the project2586 when a project was updated more than 1 hour ago2587 updates the project2588 #authored_by?2589 returns true when the event author and user are the same2590 returns false when passing nil as an argument2591 returns false when the given user is not the author of the event2592 #body?2593 returns true for a push event with commits2594 returns false for a push event without a valid commit range2595 returns true for a Note event2596 returns true if the target responds to #title2597 returns false for a regular event without a target2598 #target2599 eager loads the author of an event target2600PostReceive2601 as a sidekiq worker2602 responds to #perform2603 with a non-existing project2604 returns false and logs an error2605 #process_project_changes2606 with an empty project2607 expire the status cache2608 schedules a cache update for commit count and size2609 empty changes2610 does not call any PushService but runs after project hooks2611 behaves like not updating remote mirrors2612 does not schedule an update2613 unidentified user2614 returns false2615 with changes2616 branches2617 expires the branches cache2618 expires the status cache2619 calls Git::ProcessRefChangesService2620 schedules a cache update for repository size only2621 behaves like updating remote mirrors2622 schedules an update if the project had mirrors2623 with a default branch2624 schedules a cache update for commit count and size2625 tags2626 does not expire branches cache2627 only invalidates tags once2628 calls Git::ProcessRefChangesService2629 schedules a single ProjectCacheWorker update2630 behaves like updating remote mirrors2631 schedules an update if the project had mirrors2632 merge-requests2633 does not call any of the services2634 behaves like not updating remote mirrors2635 does not schedule an update2636 after project changes hooks2637 calls SystemHooksService2638 increments the usage data counter of pushes event2639 #process_wiki_changes2640 updates project activity2641 branches2642 expires the branches cache2643 expires the status cache2644 webhook2645 fetches the correct project2646 does not run if the author is not in the project2647 asks the project to trigger all hooks2648 enqueues a UpdateMergeRequestsWorker job2649Note ResolvableNote2650 resolvability scopes2651 .potentially_resolvable2652 includes diff and discussion notes on merge requests2653 .resolvable2654 includes non-system diff and discussion notes on merge requests2655 .resolved2656 includes resolved non-system diff and discussion notes on merge requests2657 .unresolved2658 includes non-resolved non-system diff and discussion notes on merge requests2659 .resolve!2660 resolves only the resolvable, not yet resolved notes2661 .unresolve!2662 unresolves the resolved notes2663 #resolvable?2664 when potentially resolvable2665 when a system note2666 returns false2667 when a regular note2668 returns true2669 when not potentially resolvable2670 returns false2671 #to_be_resolved?2672 when not resolvable2673 returns false2674 when resolvable2675 when resolved2676 returns false2677 when not resolved2678 returns true2679 #resolved?2680 when not resolvable2681 returns false2682 when resolvable2683 when the note has been resolved2684 returns true2685 when the note has not been resolved2686 returns false2687 #resolve!2688 when not resolvable2689 returns false2690 doesn't set resolved_at2691 doesn't set resolved_by2692 doesn't mark as resolved2693 when resolvable2694 when already resolved2695 returns false2696 doesn't change resolved_at2697 doesn't change resolved_by2698 doesn't change resolved status2699 when not yet resolved2700 returns true2701 sets resolved_at2702 sets resolved_by2703 marks as resolved2704 #unresolve!2705 when not resolvable2706 returns false2707 when resolvable2708 when resolved2709 returns true2710 unsets resolved_at2711 unsets resolved_by2712 unmarks as resolved2713 when not resolved2714 returns false2715 #potentially_resolvable?2716 returns false if noteable could not be found2717BuildDetailsEntity2718 inherits from JobEntity2719 #as_json2720 contains the needed key value pairs2721 when the user has access to issues and merge requests2722 when merge request orginates from the same project2723 contains the needed key value pairs2724 exposes correct details of the merge request2725 has a correct merge request path2726 when merge request is from a fork2727 contains the needed key value pairs2728 exposes details of the merge request2729 has a merge request path to a target project2730 when the build has not been erased2731 exposes a build erase path2732 when the build has been erased2733 exposes the user who erased the build2734 when the user can only read the build2735 won't display the paths to issues and merge requests2736 when the build has failed27372019-10-16T17:14:36.945Z 91 TID-goyghzv2f WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>117}2738 should include {:failure_reason => "unmet_prerequisites"}2739 when a build has environment with latest deployment2740 does not serialize latest deployment commit and associated builds2741 when the build has reports2742 exposes the report artifacts2743TodosFinder2744 #execute2745 #execute2746 filtering2747 returns correct todos when filtered by a project2748 returns correct todos when filtered by a group2749 returns correct todos when filtered by a type2750 when filtering for actions2751 by action ids2752 returns the expected todos2753 multiple actions2754 returns the expected todos2755 by action names2756 returns the expected todos2757 multiple actions2758 returns the expected todos2759 when filtering by author2760 returns correct todos when filtering by an author2761 querying for multiple authors2762 returns the correct todo items2763 with subgroups2764 returns todos from subgroups when filtered by a group2765 external authorization2766 behaves like a finder with external authorization service2767 finds the subject2768 with an external authorization service2769 does not include the subject when no project was given2770 includes the subject when a project id was given2771 #sort2772 sorts by priority2773 by date2774 sorts with oldest created first2775 sorts with newest created first2776 #any_for_target?2777 returns true if there are any todos for the given target2778 returns false if there are no todos for the given target2779MergeRequests::ReopenService2780 #execute2781 caches merge request closing issues2782 updates metrics2783 refreshes the number of open merge requests for a valid MR2784 behaves like cache counters invalidator2785 invalidates counter cache for assignees2786 valid params2787 should be valid2788 should be opened2789 executes hooks with reopen action2790 sends email to user2 about reopen of merge_request2791 creates system note about merge_request reopen2792 current user is not authorized to reopen merge request2793 does not reopen the merge request2794GroupMember2795 scopes2796 .count_users_by_group_id2797 counts users by group ID2798 .of_ldap_type2799 returns ldap type users2800 .access_level_roles2801 returns Gitlab::Access.options_with_owner2802 .access_levels2803 returns Gitlab::Access.options_with_owner2804 .add_users2805 adds the given users to the given group2806 behaves like members notifications2807 #after_create2808 sends email to user2809 #after_update2810 calls NotificationService.update_group_member2811 does not send an email when the access level has not changed2812 #accept_request2813 calls NotificationService.new_group_member2814 #accept_invite!2815 calls NotificationService.accept_group_invite2816 #decline_invite!2817 calls NotificationService.decline_group_invite2818 #real_source_type2819 should eq "Group"2820 #update_two_factor_requirement2821 is called after creation and deletion2822 access levels2823 with parent group2824 behaves like inherited access level as a member of entity2825 with root parent_entity developer member2826 is allowed to be a maintainer of the entity2827 is not allowed to be a reporter of the entity2828 is allowed to change to be a developer of the entity2829 is not allowed to change to be a guest of the entity2830 shows an error if the member can't be updated2831 allows changing the level from a non existing member2832 with parent group and a sub subgroup2833 behaves like inherited access level as a member of entity2834 with root parent_entity developer member2835 is allowed to be a maintainer of the entity2836 is not allowed to be a reporter of the entity2837 is allowed to change to be a developer of the entity2838 is not allowed to change to be a guest of the entity2839 shows an error if the member can't be updated2840 allows changing the level from a non existing member2841 when only the subgroup has the member2842 behaves like inherited access level as a member of entity2843 with root parent_entity developer member2844 is allowed to be a maintainer of the entity2845 is not allowed to be a reporter of the entity2846 is allowed to change to be a developer of the entity2847 is not allowed to change to be a guest of the entity2848 shows an error if the member can't be updated2849 allows changing the level from a non existing member2850Clusters::Gcp::FetchOperationService2851 #execute2852 when succeeded to fetch operation2853 behaves like success2854 yields2855 when Internal Server Error happened2856 behaves like error2857 sets an error to provider object2858Ci::LegacyStage2859 #expectations2860 should includes the StaticModel module2861 should respond to #pipeline2862 should respond to #name2863 should delegate #project to the #pipeline object2864 #statuses2865 returns only matching statuses2866 #groups2867 returns an array of three groups2868 returns groups with correctly ordered statuses2869 returns groups with correct names2870 when a name is nil on legacy pipelines2871 returns an array of three groups2872 #statuses_count2873 counts statuses only from current stage2874 #builds2875 returns only builds2876 #status2877 if status is already defined2878 returns defined status2879 if status has to be calculated2880 returns status of a build2881 and builds are retried2882 returns status of latest build2883 #detailed_status2884 when build is created2885 returns detailed status for created stage2886 when build is pending2887 returns detailed status for pending stage2888 when build is running2889 returns detailed status for running stage2890 when build is successful2891 returns detailed status for successful stage2892 when build is failed2893 returns detailed status for failed stage2894 when build is canceled2895 returns detailed status for canceled stage2896 when build is skipped2897 returns detailed status for skipped stage2898 #success?2899 when stage is successful2900 is successful2901 when stage is not successful2902 is not successful2903 #has_warnings?2904 when stage has warnings2905 when using memoized warnings flag2906 when there are warnings2907 returns true using memoized value2908 when there are no warnings2909 returns false using memoized value2910 when calculating warnings from statuses2911 has warnings calculated from statuses2912 when stage does not have warnings2913 does not have warnings calculated from statuses2914 behaves like manual playable stage2915 #manual_playable?2916 when is manual2917 should be truthy2918 when is scheduled2919 should be truthy2920 when is skipped2921 should be truthy2922GroupPolicy2923 public group with no user2924 should not be allowed :read_namespace2925 with no user and public project2926 should not be allowed :read_group2927 should not be allowed :read_milestone2928 with foreign user and public project2929 should not be allowed :read_group2930 should not be allowed :read_milestone2931 has projects2932 should be allowed :read_milestone2933 in subgroups2934 should be allowed :read_milestone2935 guests2936 should not be allowed :read_statistics2937 reporter2938 should not be allowed :read_statistics2939 developer2940 should not be allowed :read_statistics2941 maintainer2942 with subgroup_creation level set to maintainer2943 allows every maintainer permission plus creating subgroups2944 with subgroup_creation_level set to owner2945 allows every maintainer permission2946 owner2947 should be allowed :read_statistics2948 admin2949 should be allowed :read_statistics2950 private nested group use the highest access level from the group and inherited permissions2951 with no user2952 should not be allowed :read_statistics2953 guests2954 should not be allowed :read_statistics2955 reporter2956 should not be allowed :read_statistics2957 developer2958 should not be allowed :read_statistics2959 maintainer2960 should not be allowed :read_statistics2961 owner2962 should be allowed :read_statistics2963 change_share_with_group_lock2964 when the current_user owns the group2965 when the group share_with_group_lock is enabled2966 when the parent group share_with_group_lock is enabled2967 when the group has a grandparent2968 when the grandparent share_with_group_lock is enabled2969 when the current_user owns the parent2970 when the current_user owns the grandparent2971 should be allowed :change_share_with_group_lock2972 when the current_user does not own the grandparent2973 should not be allowed :change_share_with_group_lock2974 when the current_user does not own the parent2975 should not be allowed :change_share_with_group_lock2976 when the grandparent share_with_group_lock is disabled2977 when the current_user owns the parent2978 should be allowed :change_share_with_group_lock2979 when the current_user does not own the parent2980 should not be allowed :change_share_with_group_lock2981 when the group does not have a grandparent2982 when the current_user owns the parent2983 should be allowed :change_share_with_group_lock2984 when the current_user does not own the parent2985 should not be allowed :change_share_with_group_lock2986 when the parent group share_with_group_lock is disabled2987 should be allowed :change_share_with_group_lock2988 when the group share_with_group_lock is disabled2989 should be allowed :change_share_with_group_lock2990 when the current_user does not own the group2991 should not be allowed :change_share_with_group_lock2992 create_projects2993 when group has no project creation level set2994 reporter2995 should be disallowed :create_projects2996 developer2997 should be allowed :create_projects2998 maintainer2999 should be allowed :create_projects3000 owner3001 should be allowed :create_projects3002 when group has project creation level set to no one3003 reporter3004 should be disallowed :create_projects3005 developer3006 should be disallowed :create_projects3007 maintainer3008 should be disallowed :create_projects3009 owner3010 should be disallowed :create_projects3011 when group has project creation level set to maintainer only3012 reporter3013 should be disallowed :create_projects3014 developer3015 should be disallowed :create_projects3016 maintainer3017 should be allowed :create_projects3018 owner3019 should be allowed :create_projects3020 when group has project creation level set to developers + maintainer3021 reporter3022 should be disallowed :create_projects3023 developer3024 should be allowed :create_projects3025 maintainer3026 should be allowed :create_projects3027 owner3028 should be allowed :create_projects3029 create_subgroup3030 when group has subgroup creation level set to owner3031 reporter3032 should be disallowed :create_subgroup3033 developer3034 should be disallowed :create_subgroup3035 maintainer3036 should be disallowed :create_subgroup3037 owner3038 should be allowed :create_subgroup3039 when group has subgroup creation level set to maintainer3040 reporter3041 should be disallowed :create_subgroup3042 developer3043 should be disallowed :create_subgroup3044 maintainer3045 should be allowed :create_subgroup3046 owner3047 should be allowed :create_subgroup3048 behaves like clusterable policies3049 #add_cluster?3050 with a developer3051 should not be allowed :read_cluster3052 should not be allowed :add_cluster3053 should not be allowed :create_cluster3054 should not be allowed :update_cluster3055 should not be allowed :admin_cluster3056 with a maintainer3057 with no clusters3058 should be allowed :read_cluster3059 should be allowed :add_cluster3060 should be allowed :create_cluster3061 should be allowed :update_cluster3062 should be allowed :admin_cluster3063 update_max_artifacts_size3064 when no user3065 should not be allowed :update_max_artifacts_size3066 admin3067 should be allowed :update_max_artifacts_size3068 guest3069 should not be allowed :update_max_artifacts_size3070 reporter3071 should not be allowed :update_max_artifacts_size3072 developer3073 should not be allowed :update_max_artifacts_size3074 maintainer3075 should not be allowed :update_max_artifacts_size3076 owner3077 should not be allowed :update_max_artifacts_size3078Service3079 Associations3080 should belong to project required:3081 should have one service_hook3082 should have one jira_tracker_data3083 should have one issue_tracker_data3084 Validations3085 should validate that :type cannot be empty/falsy3086 Scopes3087 .confidential_note_hooks3088 includes services where confidential_note_events is true3089 excludes services where confidential_note_events is false3090 Test Button3091 #can_test?3092 when repository is not empty3093 returns true3094 when repository is empty3095 returns true3096 #test3097 when repository is not empty3098 test runs execute3099 when repository is empty3100 test runs execute3101 Template3102 .build_from_template3103 when template is invalid3104 sets service template to inactive when template is invalid3105 build issue tracker from a template3106 when data are stored in properties3107 behaves like service creation from a template3108 creates a correct service3109 when data are stored in separated fields3110 behaves like service creation from a template3111 creates a correct service3112 when data are stored in both properties and separated fields3113 behaves like service creation from a template3114 creates a correct service3115 for pushover service3116 is prefilled for projects pushover service3117 has all fields prefilled3118 {property}_changed?3119 returns false when the property has not been assigned a new value3120 returns true when the property has been assigned a different value3121 returns true when the property has been assigned a different value twice3122 returns false when the property has been re-assigned the same value3123 returns false when the property has been assigned a new value then saved3124 {property}_touched?3125 returns false when the property has not been assigned a new value3126 returns true when the property has been assigned a different value3127 returns true when the property has been assigned a different value twice3128 returns true when the property has been re-assigned the same value3129 returns false when the property has been assigned a new value then saved3130 {property}_was3131 returns nil when the property has not been assigned a new value3132 returns the previous value when the property has been assigned a different value3133 returns initial value when the property has been re-assigned the same value3134 returns initial value when the property has been assigned multiple values3135 returns nil when the property has been assigned a new value then saved3136 initialize service with no properties3137 does not raise error3138 sets title correctly3139 sets data correctly3140 callbacks3141 on create3142 updates the has_external_issue_tracker boolean3143 on update3144 updates the has_external_issue_tracker boolean3145 #deprecated?3146 returns false by default3147 #deprecation_message3148 is empty by default3149 .find_by_template3150 returns service template3151 #api_field_names3152 filters out sensitive fields3153 logging3154 logs info messages using json logger3155 logs error messages using json logger3156Users::RefreshAuthorizedProjectsService3157 #execute3158 refreshes the authorizations using a lease3159 #execute_without_lease3160 updates the authorized projects of the user3161 sets the access level of a project to the highest available level3162 returns a User3163 #update_authorizations3164 removes authorizations that should be removed3165 inserts authorizations that should be added3166 when there are no rows to add and remove3167 does not change authorizations3168 #fresh_access_levels_per_project3169 returns a Hash3170 sets the keys to the project IDs3171 sets the values to the access levels3172 personal projects3173 includes the project with the right access level3174 projects the user is a member of3175 includes the project with the right access level3176 projects of groups the user is a member of3177 includes the project with the right access level3178 projects of subgroups of groups the user is a member of3179 includes the project with the right access level3180 projects shared with groups the user is a member of3181 includes the project with the right access level3182 projects shared with subgroups of groups the user is a member of3183 includes the project with the right access level3184 #current_authorizations_per_project3185 returns a Hash3186 sets the keys to the project IDs3187 sets the values to the project authorization rows3188 #current_authorizations3189 without authorizations3190 returns an empty list3191 with an authorization3192 returns the currently authorized projects3193 includes the project ID for every row3194 includes the access level for every row3195 #fresh_authorizations3196 returns the new authorized projects3197 returns the highest access level3198 every returned row3199 includes the project ID3200 includes the access level3201PushEventPayloadService3202 #execute3203 creates a new PushEventPayload row3204 sets the push_event_payload association of the used event3205 #commit_title3206 returns nil if no commits were pushed3207 returns a String limited to 70 characters3208 does not truncate the commit message if it is shorter than 70 characters3209 includes the first line of a commit message if the message spans multiple lines3210 #commit_from_id3211 returns nil when creating a new ref3212 returns the ID of the first commit when pushing to an existing ref3213 #commit_to_id3214 returns nil when removing an existing ref3215 #commit_count3216 returns the number of commits3217 raises when the push data does not contain the commits count3218 #ref3219 returns the name of the ref3220 raises when the push data does not contain the ref name3221 #revision_before3222 returns the revision from before the push3223 raises when the push data does not contain the before revision3224 #revision_after3225 returns the revision from after the push3226 raises when the push data does not contain the after revision3227 #trimmed_ref3228 returns the ref name without its prefix3229 #create?3230 returns true when creating a new ref3231 returns false when pushing to an existing ref3232 #remove?3233 returns true when removing an existing ref3234 returns false pushing to an existing ref3235 #action3236 returns :created when creating a ref3237 returns :removed when removing an existing ref3238 returns :pushed when pushing to an existing ref3239 #ref_type3240 returns :tag for a tag3241 returns :branch for a branch3242Gitlab::LegacyGithubImport::IssueFormatter3243 when importing a GitHub project3244 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes3245 when issue is open3246 returns formatted attributes3247 when issue is closed3248 returns formatted attributes3249 when it is assigned to someone3250 returns nil as assignee_id when is not a GitLab user3251 returns GitLab user id associated with GitHub id as assignee_id3252 returns GitLab user id associated with GitHub email as assignee_id3253 when it has a milestone3254 returns nil when milestone does not exist3255 returns milestone when it exists3256 when author is a GitLab user3257 returns project creator_id as author_id when is not a GitLab user3258 returns GitLab user id associated with GitHub id as author_id3259 returns GitLab user id associated with GitHub email as author_id3260 returns description without created at tag line3261 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number3262 returns issue number3263 when importing a Gitea project3264 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes3265 when issue is open3266 returns formatted attributes3267 when issue is closed3268 returns formatted attributes3269 when it is assigned to someone3270 returns nil as assignee_id when is not a GitLab user3271 returns GitLab user id associated with GitHub id as assignee_id3272 returns GitLab user id associated with GitHub email as assignee_id3273 when it has a milestone3274 returns nil when milestone does not exist3275 returns milestone when it exists3276 when author is a GitLab user3277 returns project creator_id as author_id when is not a GitLab user3278 returns GitLab user id associated with GitHub id as author_id3279 returns GitLab user id associated with GitHub email as author_id3280 returns description without created at tag line3281 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number3282 returns issue number3283 #has_comments?3284 when number of comments is greater than zero3285 returns true3286 when number of comments is equal to zero3287 returns false3288 #pull_request?3289 when mention a pull request3290 returns true3291 when does not mention a pull request3292 returns false3293Gitlab::Gfm::UploadsRewriter3294 text contains links to uploads3295 does not rewrite plain links as embedded3296 file are stored locally3297 #rewrite3298 rewrites content3299 copies files3300 does not remove old files3301 generates a new secret for each file3302 files are stored remotely3303 #rewrite3304 rewrites content3305 copies files3306 does not remove old files3307 generates a new secret for each file3308 #needs_rewrite?3309 should eq true3310 #files3311 should be a kind of Array3312Redactable3313 when model is an issue3314 behaves like model with redactable field3315 redacts unsubscribe token3316 ignores not hexadecimal tokens3317 ignores not matching texts3318 redacts the field when saving the model before creating markdown cache3319 when model is a merge request3320 behaves like model with redactable field3321 redacts unsubscribe token3322 ignores not hexadecimal tokens3323 ignores not matching texts3324 redacts the field when saving the model before creating markdown cache3325 when model is a note3326 behaves like model with redactable field3327 redacts unsubscribe token3328 ignores not hexadecimal tokens3329 ignores not matching texts3330 redacts the field when saving the model before creating markdown cache3331 when model is a snippet3332 behaves like model with redactable field3333 redacts unsubscribe token3334 ignores not hexadecimal tokens3335 ignores not matching texts3336 redacts the field when saving the model before creating markdown cache3337Banzai::ReferenceParser::CommitParser3338 #nodes_visible_to_user3339 when the link has a data-issue attribute3340 behaves like referenced feature visibility3341 when feature is disabled3342 does not create reference3343 when feature is enabled only for team members3344 does not create reference for non member3345 creates reference for member3346 when feature is enabled3347 creates reference3348 #referenced_by3349 when the link has a data-project attribute3350 when the link has a data-commit attribute3351 returns an Array of commits3352 returns an empty Array when the commit could not be found3353 skips projects without valid repositories3354 when the link does not have a data-commit attribute3355 returns an empty Array3356 when the link does not have a data-project attribute3357 returns an empty Array3358 #commit_ids_per_project3359 returns a Hash containing commit IDs per project3360 does not add a project when the data-commit attribute is empty3361 #find_commits3362 returns an Array of commit objects3363 skips commit IDs for which no commit could be found3364 when checking commits on another projects3365 behaves like no project N+1 queries3366 avoids N+1 queries in #nodes_visible_to_user3367IssueEntity3368 has Issuable attributes3369 has time estimation attributes3370 when issue got moved3371 when user cannot read target project3372 does not return moved_to_id3373 when user can read target project3374 returns moved moved_to_id3375 when issue got duplicated3376 when user cannot read new issue3377 does not return duplicated_to_id3378 when user can read target project3379 returns duplicated duplicated_to_id3380Banzai::ReferenceParser::CommitRangeParser3381 #nodes_visible_to_user3382 when the link has a data-issue attribute3383 behaves like referenced feature visibility3384 when feature is disabled3385 does not create reference3386 when feature is enabled only for team members3387 does not create reference for non member3388 creates reference for member3389 when feature is enabled3390 creates reference3391 #referenced_by3392 when the link has a data-project attribute3393 when the link as a data-commit-range attribute3394 returns an Array of commit ranges3395 returns an empty Array when the commit range could not be found3396 when the link does not have a data-commit-range attribute3397 returns an empty Array3398 when the link does not have a data-project attribute3399 returns an empty Array3400 #commit_range_ids_per_project3401 returns a Hash containing range IDs per project3402 does not add a project when the data-commit-range attribute is empty3403 #find_ranges3404 returns an Array of range objects3405 skips ranges that could not be found3406 #find_object3407 when the range has valid commits3408 returns the commit range3409 when the range does not have any valid commits3410 returns nil3411 group context3412 returns nil3413Gitlab::Git::Branch3414 should be a kind of Array3415 should eq 113416 .find3417 when finding branch via branch name3418 returns a branch object3419 when the branch is already a branch3420 returns a branch object3421 #size3422 should eq 113423 first branch3424 should eq "feature"3425 should eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"3426 master branch3427 should eq "4b4918a572fa86f9771e5ba40fbd48e1eb03e2c6"3428 with active, stale and future branches3429 examine if the branch is active or stale3430 #active?3431 should be falsey3432 should be truthy3433 should be truthy3434 #stale?3435 should be truthy3436 should be falsey3437 should be falsey3438 #state3439 should eq :stale3440 should eq :active3441 should eq :active3442ExtractsPath3443 #assign_ref_vars3444 log tree path has no escape sequences3445 ref contains %203446 is not converted to a space in @id3447 ref contains trailing space3448 strips surrounding space3449 ref contains leading space3450 strips surrounding space3451 ref contains space in the middle3452 returns 4043453 path contains space3454 is not converted to %20 in @path3455 subclass overrides get_id3456 uses ref returned by get_id3457 ref only exists without .atom suffix3458 with a path3459 renders a 4043460 without a path3461 sets the un-suffixed version as @ref3462 sets the request format to Atom3463 ref exists with .atom suffix3464 with a path3465 sets the suffixed version as @ref3466 does not change the request format3467 without a path3468 sets the suffixed version as @ref3469 does not change the request format3470 #extract_ref3471 returns an empty pair when no @project is set3472 without a path3473 extracts a valid branch3474 extracts a valid tag3475 extracts a valid commit ref without a path3476 falls back to a primitive split for an invalid ref3477 extracts the longest matching ref3478 with a path3479 extracts a valid branch3480 extracts a valid tag3481 extracts a valid commit SHA3482 falls back to a primitive split for an invalid ref3483 #extract_ref_without_atom3484 ignores any matching refs suffixed with atom3485 returns the longest matching ref3486 returns nil if there are no matching refs3487 #lfs_blob_ids3488 handles annotated tags3489Issuable::DestroyService3490 #execute3491 when issuable is an issue3492 destroys the issue3493 updates open issues count cache3494 updates the todo caches for users with todos on the issue3495 invalidates the issues count cache for the assignees3496 when issuable is a merge request3497 destroys the merge request3498 updates open merge requests count cache3499 invalidates the merge request caches for the MR assignee3500 updates the todo caches for users with todos on the merge request3501ProjectFeature3502 .quoted_access_level_column3503 returns the table name and quoted column name for a feature3504 #feature_available?3505 when features are disabled3506 returns false3507 when features are enabled only for team members3508 returns false when user is not a team member3509 returns true when user is a team member3510 returns true when user is a member of project group3511 returns true if user is an admin3512 when feature is enabled for everyone3513 returns true3514 when feature is disabled by a feature flag3515 returns false3516 when feature is enabled by a feature flag3517 returns true3518 repository related features3519 does not allow repository related features have higher level3520 public features3521 does not allow public for other than pages3522 #*_enabled?3523 returns false when feature is disabled3524 returns true when feature is enabled only for team members3525 returns true when feature is enabled for everyone3526 default pages access level3527 when new project is private3528 should eq 103529 when new project is internal3530 should eq 103531 when new project is public3532 should eq 203533 #public_pages?3534 returns true if Pages access controll is not enabled3535 Pages access control is enabled3536 returns true if Pages access level is public3537 returns true if Pages access level is enabled and the project is public3538 returns false if pages or the project are not public3539 #private_pages?3540 returns false if public_pages? is true3541 returns true if public_pages? is false3542 .required_minimum_access_level3543 handles reporter level3544 handles guest level3545 accepts ActiveModel3546 accepts string3547WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<ArgumentError: invalid project feature: foos>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/project_feature_spec.rb:250:in `block (3 levels) in <top (required)>'.3548 raises error if feature is invalid3549List3550 behaves like having unique enum values3551 has unique values in "list_type"3552 relationships3553 should belong to board required:3554 should belong to label required:3555 validations3556 should validate that :board cannot be empty/falsy3557 should validate that :label cannot be empty/falsy3558 should validate that :list_type cannot be empty/falsy3559 should validate that :position cannot be empty/falsy3560 should validate that :position looks like an integer greater than or equal to 03561 when list_type is set to closed3562 should not validate that :label cannot be empty/falsy3563 should not validate that :position cannot be empty/falsy3564 #destroy3565 can be destroyed when list_type is set to label3566 can not be destroyed when list_type is set to closed3567 #destroyable?3568 returns true when list_type is set to label3569 returns false when list_type is set to closed3570 #movable?3571 returns true when list_type is set to label3572 returns false when list_type is set to closed3573 #title3574 returns label name when list_type is set to label3575 returns Closed when list_type is set to closed3576 #update_preferences_for3577 when user is present3578 when there are no preferences for user3579 creates new user preferences3580 when there are preferences for user3581 updates user preferences3582 when user is nil3583 does not create user preferences3584 #preferences_for3585 when user is nil3586 returns not persisted preferences3587 when a user preference already exists3588 loads preference for user3589 when preferences for user does not exist3590 returns not persisted preferences3591Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces3592 #namespaces_for_paths3593 nested namespaces3594 includes the namespace3595 for child namespaces3596 only returns child namespaces with the correct path3597 has no namespaces that look the same3598 for top levelnamespaces3599 only returns child namespaces with the correct path3600 has no namespaces that just look the same3601 #move_repositories3602 moves a project for a namespace3603 moves a namespace in a subdirectory correctly3604 moves a parent namespace with subdirectories3605 #child_ids_for_parent3606 collects child ids for all levels3607 #rename_namespace3608 renames paths & routes for the namespace3609 tracks the rename3610 renames things related to the namespace3611 #rename_namespace_dependencies3612 moves the repository for a project in the namespace3613 moves the uploads for the namespace3614 moves the pages for the namespace3615 invalidates the markdown cache of related projects3616 doesn't rename users for other namespaces3617 renames the username of a namespace for a user3618 #rename_user3619 renames a username3620 #rename_namespaces3621 renames top level namespaces the namespace3622 renames child namespaces3623 #revert_renames3624 renames the routes back to the previous values3625 moves the repositories back to their original place3626 doesn't break when the namespace was renamed3627RedmineService3628 Associations3629 should belong to project required:3630 should have one service_hook3631 Validations3632 when service is active3633 should validate that :project_url cannot be empty/falsy3634 should validate that :issues_url cannot be empty/falsy3635 should validate that :new_issue_url cannot be empty/falsy3636 behaves like issue tracker service URL attribute3637 should allow :project_url to be ‹"https://example.com"›3638 should not allow :project_url to be ‹"example.com"›3639 should not allow :project_url to be ‹"ftp://example.com"›3640 should not allow :project_url to be ‹"herp-and-derp"›3641 behaves like issue tracker service URL attribute3642 should allow :issues_url to be ‹"https://example.com"›3643 should not allow :issues_url to be ‹"example.com"›3644 should not allow :issues_url to be ‹"ftp://example.com"›3645 should not allow :issues_url to be ‹"herp-and-derp"›3646 behaves like issue tracker service URL attribute3647 should allow :new_issue_url to be ‹"https://example.com"›3648 should not allow :new_issue_url to be ‹"example.com"›3649 should not allow :new_issue_url to be ‹"ftp://example.com"›3650 should not allow :new_issue_url to be ‹"herp-and-derp"›3651 when service is inactive3652 should not validate that :project_url cannot be empty/falsy3653 should not validate that :issues_url cannot be empty/falsy3654 should not validate that :new_issue_url cannot be empty/falsy3655 .reference_pattern3656 does allow # on the reference3657 behaves like allows project key on reference pattern3658 allows underscores in the project name3659 allows numbers in the project name3660 requires the project name to begin with A-Z3661 overriding properties3662 when data are stored in properties3663 behaves like issue tracker fields3664 when data are stored in the properties3665 #update3666 removes title and description from properties3667 stores title & description in services table3668 reading fields3669 returns correct values3670 when data are stored in separated fields3671 behaves like issue tracker fields3672 when data are stored in the properties3673 #update3674 removes title and description from properties3675 stores title & description in services table3676 reading fields3677 returns correct values3678 when data are stored in both properties and separated fields3679 behaves like issue tracker fields3680 when data are stored in the properties3681 #update3682 removes title and description from properties3683 stores title & description in services table3684 reading fields3685 returns correct values3686 when no title & description are set3687 returns default values3688VerifyPagesDomainService3689 #execute3690 domain_sym: :domain, code_sym: :verification_code3691 when domain is disabled(or new)3692 when txt record contains verification code3693 verifies and enables the domain3694 when txt record contains verification code with other text3695 verifies and enables the domain3696 when txt record does not contain verification code3697 unverifies domain3698 disables domain and shedules it for removal in 1 week3699 when txt record does not contain verification code3700 unverifies domain3701 disables domain and shedules it for removal in 1 week3702 when no txt records are present3703 unverifies domain3704 disables domain and shedules it for removal in 1 week3705 when domain is verified3706 when txt record contains verification code3707 verifies and enables the domain3708 when txt record contains verification code with other text3709 verifies and enables the domain3710 when txt record does not contain verification code3711 unverifies but does not disable domain3712 does not schedule domain for removal3713 when no txt records are present3714 unverifies but does not disable domain3715 does not schedule domain for removal3716 when domain is expired3717 when the right code is present3718 verifies and enables the domain3719 when the right code is not present3720 unverifies domain3721 disables domain and shedules it for removal in 1 week3722 when domain is disabled and scheduled for removal3723 when the right code is present3724 verifies and enables domain3725 prevent domain from being removed3726 when the right code is not present3727 keeps domain scheduled for removal but does not change removal time3728 invalid domain3729 can be disabled3730 domain_sym: :domain, code_sym: :keyed_verification_code3731 when domain is disabled(or new)3732 when txt record contains verification code3733 verifies and enables the domain3734 when txt record contains verification code with other text3735 verifies and enables the domain3736 when txt record does not contain verification code3737 unverifies domain3738 disables domain and shedules it for removal in 1 week3739 when txt record does not contain verification code3740 unverifies domain3741 disables domain and shedules it for removal in 1 week3742 when no txt records are present3743 unverifies domain3744 disables domain and shedules it for removal in 1 week3745 when domain is verified3746 when txt record contains verification code3747 verifies and enables the domain3748 when txt record contains verification code with other text3749 verifies and enables the domain3750 when txt record does not contain verification code3751 unverifies but does not disable domain3752 does not schedule domain for removal3753 when no txt records are present3754 unverifies but does not disable domain3755 does not schedule domain for removal3756 when domain is expired3757 when the right code is present3758 verifies and enables the domain3759 when the right code is not present3760 unverifies domain3761 disables domain and shedules it for removal in 1 week3762 when domain is disabled and scheduled for removal3763 when the right code is present3764 verifies and enables domain3765 prevent domain from being removed3766 when the right code is not present3767 keeps domain scheduled for removal but does not change removal time3768 invalid domain3769 can be disabled3770 domain_sym: :verification_domain, code_sym: :verification_code3771 when domain is disabled(or new)3772 when txt record contains verification code3773 verifies and enables the domain3774 when txt record contains verification code with other text3775 verifies and enables the domain3776 when txt record does not contain verification code3777 unverifies domain3778 disables domain and shedules it for removal in 1 week3779 when txt record does not contain verification code3780 unverifies domain3781 disables domain and shedules it for removal in 1 week3782 when no txt records are present3783 unverifies domain3784 disables domain and shedules it for removal in 1 week3785 when domain is verified3786 when txt record contains verification code3787 verifies and enables the domain3788 when txt record contains verification code with other text3789 verifies and enables the domain3790 when txt record does not contain verification code3791 unverifies but does not disable domain3792 does not schedule domain for removal3793 when no txt records are present3794 unverifies but does not disable domain3795 does not schedule domain for removal3796 when domain is expired3797 when the right code is present3798 verifies and enables the domain3799 when the right code is not present3800 unverifies domain3801 disables domain and shedules it for removal in 1 week3802 when domain is disabled and scheduled for removal3803 when the right code is present3804 verifies and enables domain3805 prevent domain from being removed3806 when the right code is not present3807 keeps domain scheduled for removal but does not change removal time3808 invalid domain3809 can be disabled3810 domain_sym: :verification_domain, code_sym: :keyed_verification_code3811 when domain is disabled(or new)3812 when txt record contains verification code3813 verifies and enables the domain3814 when txt record contains verification code with other text3815 verifies and enables the domain3816 when txt record does not contain verification code3817 unverifies domain3818 disables domain and shedules it for removal in 1 week3819 when txt record does not contain verification code3820 unverifies domain3821 disables domain and shedules it for removal in 1 week3822 when no txt records are present3823 unverifies domain3824 disables domain and shedules it for removal in 1 week3825 when domain is verified3826 when txt record contains verification code3827 verifies and enables the domain3828 when txt record contains verification code with other text3829 verifies and enables the domain3830 when txt record does not contain verification code3831 unverifies but does not disable domain3832 does not schedule domain for removal3833 when no txt records are present3834 unverifies but does not disable domain3835 does not schedule domain for removal3836 when domain is expired3837 when the right code is present3838 verifies and enables the domain3839 when the right code is not present3840 unverifies domain3841 disables domain and shedules it for removal in 1 week3842 when domain is disabled and scheduled for removal3843 when the right code is present3844 verifies and enables domain3845 prevent domain from being removed3846 when the right code is not present3847 keeps domain scheduled for removal but does not change removal time3848 invalid domain3849 can be disabled3850 timeout behaviour3851 sets a timeout on the DNS query3852 email notifications3853 factory: nil, verification_succeeds: true, expected_notification: nil3854 sends a notification if appropriate3855 factory: nil, verification_succeeds: false, expected_notification: :verification_failed3856 sends a notification if appropriate3857 factory: :reverify, verification_succeeds: true, expected_notification: nil3858 sends a notification if appropriate3859 factory: :reverify, verification_succeeds: false, expected_notification: :verification_failed3860 sends a notification if appropriate3861 factory: :unverified, verification_succeeds: true, expected_notification: :verification_succeeded3862 sends a notification if appropriate3863 factory: :unverified, verification_succeeds: false, expected_notification: nil3864 sends a notification if appropriate3865 factory: :expired, verification_succeeds: true, expected_notification: nil3866 sends a notification if appropriate3867 factory: :expired, verification_succeeds: false, expected_notification: :disabled3868 sends a notification if appropriate3869 factory: :disabled, verification_succeeds: true, expected_notification: :enabled3870 sends a notification if appropriate3871 factory: :disabled, verification_succeeds: false, expected_notification: nil3872 sends a notification if appropriate3873 pages verification disabled3874 skips email notifications3875 pages configuration updates3876 enabling a disabled domain3877 schedules an update3878 verifying an enabled domain3879 schedules an update3880 disabling an expired domain3881 schedules an update3882 failing to verify a disabled domain3883 does not schedule an update3884 no verification code3885 returns an error3886 pages domain verification is disabled3887 extends domain validity by unconditionally reverifying3888 does not shorten any grace period3889IssuablesHelper3890 #users_dropdown_label3891 returns unassigned3892 returns selected user's name3893 returns selected user's name and counter3894 #group_dropdown_label3895 returns default group label when group_id is nil3896 returns "any group" when group_id is 03897 returns group full path when a group was found for the provided id3898 returns default label when a group was not found for the provided id3899 #issuable_labels_tooltip3900 returns label text with no labels3901 returns label text with labels within max limit3902 returns label text with labels exceeding max limit3903 #issuables_state_counter_text3904 state text3905 returns "Open" when state is :opened3906 returns "Closed" when state is :closed3907 returns "Merged" when state is :merged3908 returns "All" when state is :all3909 #issuable_reference3910 when show_full_reference truthy3911 display issuable full reference3912 when show_full_reference falsey3913 when @group present3914 display issuable reference to @group3915 when @project present3916 display issuable reference to @project3917 #updated_at_by3918 should eq {}3919 should eq {:updatedAt=>"2019-10-14T17:16:47+00:00", :updatedBy=>{:name=>"John Doe2029", :path=>"/user2027"}}3920 when updated by a deleted user3921 returns "Ghost user" as edited_by3922 #issuable_initial_data3923 returns the correct data for an issue3924 #zoomMeetingUrl in issue3925 no zoom links in the issue description3926 does not set zoomMeetingUrl3927 no zoom links in the issue description if it has link but not a zoom link3928 does not set zoomMeetingUrl3929 with two zoom links in description3930 sets zoomMeetingUrl value to the last url3931 #assignee_sidebar_data3932 returns hash of assignee data3933 with merge_request3934 can_merge: true3935 should include {:can_merge => true}3936 can_merge: false3937 should include {:can_merge => false}3938RemoveExpiredGroupLinksWorker3939 #perform3940 removes expired group links3941 leaves group links that expire in the future3942 leaves group links that do not expire at all3943EmailsHelper3944 closure_reason_text3945 when given a MergeRequest3946 when user can read merge request3947 and format is text3948 returns plain text3949 and format is HTML3950 returns HTML3951 and format is unknown3952 returns plain text3953 when user cannot read merge request3954 does not have link to merge request3955 when given a String3956 when user can read commits3957 returns plain text3958 when user cannot read commits3959 returns plain text3960 when not given anything3961 returns empty string3962 sanitize_name3963 when name contains a valid URL string3964 returns name with `.` replaced with `_` to prevent mail clients from auto-linking URLs3965 returns name as it is when it does not contain a URL3966 password_reset_token_valid_time3967 when time limit is less than 2 hours3968 displays the time in hours using a singular unit3969 when time limit is 2 or more hours3970 displays the time in hours using a plural unit3971 when time limit contains fractions of an hour3972 rounds down to the nearest hour3973 when time limit is 24 or more hours3974 displays the time in days using a singular unit3975 when time limit is 2 or more days3976 displays the time in days using a plural unit3977 when time limit contains fractions of a day3978 rounds down to the nearest day3979 #header_logo3980 there is a brand item with a logo3981 returns the brand header logo3982 there is a brand item without a logo3983 returns the default header logo3984 there is no brand item3985 returns the default header logo3986 #create_list_id_string3987 full_path: "01234", list_id_path: "01234"3988 ellipcizes different variants3989 full_path: "5/0123", list_id_path: "012.."3990 ellipcizes different variants3991 full_path: "45/012", list_id_path: "012.."3992 ellipcizes different variants3993 full_path: "012", list_id_path: "012"3994 ellipcizes different variants3995 full_path: "23/01", list_id_path: "01.23"3996 ellipcizes different variants3997 full_path: "2/01", list_id_path: "01.2"3998 ellipcizes different variants3999 full_path: "234/01", list_id_path: "01.."4000 ellipcizes different variants4001 full_path: "4/2/0", list_id_path: "0.2.4"4002 ellipcizes different variants4003 full_path: "45/2/0", list_id_path: "0.2.."4004 ellipcizes different variants4005 full_path: "5/23/0", list_id_path: "0.."4006 ellipcizes different variants4007 full_path: "0-2/5", list_id_path: "5.0-2"4008 ellipcizes different variants4009 full_path: "0_2/5", list_id_path: "5.0-2"4010 ellipcizes different variants4011 full_path: "0.2/5", list_id_path: "5.0-2"4012 ellipcizes different variants4013 Create realistic List-Id identifier4014 full_path: "gitlab-org/gitlab-ce", list_id_path: "gitlab-ce.gitlab-org"4015 Produces the right List-Id4016 full_path: "project-name/subproject_name/my.project", list_id_path: "my-project.subproject-name.project-name"4017 Produces the right List-Id4018 header and footer messages4019 when email_header_and_footer_enabled is enabled4020 returns header and footer messages4021 when header and footer messages are empty4022 returns nil4023 when header and footer messages are nil4024 returns nil4025 when email_header_and_footer_enabled is disabled4026 returns header and footer messages4027AutoDevops::DisableWorker#perform4028 disables auto devops for project4029 when project owner is a user4030 sends an email to pipeline user and project owner4031 when project does not have owner4032 sends an email to pipeline user4033 when pipeline is not related to a user and project does not have owner4034 does not send an email4035Maskable4036 masked value validations4037 when variable is masked4038 should not allow :value to be ‹"hello"›4039 should not allow :value to be ‹"hello world"›4040 should not allow :value to be ‹"hello$VARIABLEworld"›4041 should not allow :value to be ‹"hello\\rworld"›4042 should allow :value to be ‹"helloworld"›4043 when variable is not masked4044 should allow :value to be ‹"hello"›4045 should allow :value to be ‹"hello world"›4046 should allow :value to be ‹"hello$VARIABLEworld"›4047 should allow :value to be ‹"hello\\rworld"›4048 should allow :value to be ‹"helloworld"›4049 REGEX4050 does not match strings shorter than 8 letters4051 does not match strings with spaces4052 does not match strings with shell variables4053 does not match strings with escape characters4054 does not match strings that span more than one line4055 matches valid strings4056 #to_runner_variable4057 exposes the masked attribute4058Ci::Variable4059 behaves like CI variable4060 should includes the HasVariable module4061 strips whitespaces when assigning key4062 can convert to runner variable4063 variable type4064 defines variable types4065 defaults variable type to env_var4066 supports variable type file4067 validations4068 should includes the Presentable module4069 should includes the Maskable module4070 should includes the HasEnvironmentScope module4071 should validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure4072 .unprotected4073 when variable is protected4074 returns nothing4075 when variable is not protected4076 returns the variable4077gitlab:update_project_templates rake task4078 updates valid project templates4079Analytics::CycleAnalytics::ProjectStage4080 default stages must be valid4081 associations4082 should belong to project required:4083 behaves like cycle analytics stage4084 validation4085 is valid4086 validates presence of parent4087 validates presence of start_event_identifier4088 validates presence of end_event_identifier4089 is invalid when end_event is not allowed for the given start_event4090 disallows default stage names when creating custom stage4091 should not be valid4092 #subject_class4093 infers the model from the start event4094 #start_event4095 builds start_event object based on start_event_identifier4096 #end_event4097 builds end_event object based on end_event_identifier4098 #matches_with_stage_params?4099 matches with default stage params4100 mismatches when the stage is custom4101 #parent_id4102 delegates to 'parent_name'_id attribute4103Gitlab::Ci::Status::Build::Manual4104 #illustration4105 should include :image, :size, :title, and :content4106 .matches?4107 when build is manual4108 is a correct match4109 when build is not manual4110 does not match4111Gitlab::Ci::Status::External::Common4112 #label4113 returns description4114 when description is nil4115 uses core status label4116 when description is empty string4117 uses core status label4118 #has_action?4119 should not have action4120 #has_details?4121 when user has access to read commit status4122 should have details4123 when user does not have access to read commit status4124 should not have details4125 #details_path4126 links to the external target URL4127ClusterApplicationEntity4128 #as_json4129 has name4130 has status4131 has version4132 has no status_reason4133 has can_uninstall4134 non-helm application4135 has update_available4136 when application is errored4137 has corresponded data4138 for ingress application4139 includes external_ip4140MergeRequests::ResolvedDiscussionNotificationService4141 #execute4142 when not all discussions are resolved4143 doesn't add a system note4144 doesn't send a notification email4145 when all discussions are resolved4146 adds a system note4147 sends a notification email4148Labels::CreateService4149 #execute4150 in a project4151 with color in hex-code4152 creates a label4153 with color in allowed name4154 creates a label4155 with color in up-case allowed name4156 creates a label4157 with color surrounded by spaces4158 creates a label4159 with unknown color4160 doesn't create a label4161 with no color4162 doesn't create a label4163 in a group4164 with color in hex-code4165 creates a label4166 with color in allowed name4167 creates a label4168 with color in up-case allowed name4169 creates a label4170 with color surrounded by spaces4171 creates a label4172 with unknown color4173 doesn't create a label4174 with no color4175 doesn't create a label4176 in admin area4177 with color in hex-code4178 creates a label4179 with color in allowed name4180 creates a label4181 with color in up-case allowed name4182 creates a label4183 with color surrounded by spaces4184 creates a label4185 with unknown color4186 doesn't create a label4187 with no color4188 doesn't create a label4189MigrateDiscussionIdOnPromotedEpics4190NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4191NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4192NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4193 with promoted epic4194 correctly schedules background migrations in batches4195 schedules only promoted epics4196NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4197NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4198NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4199PersonalProjectsFinder4200 without a current user4201 should eq [#<Project id:1271 user2169/project1258>]4202 with a current user4203 normal user4204 should eq [#<Project id:1274 user2171/project1261>, #<Project id:1276 user2171/C>, #<Project id:1275 user2171/mepmep>]4205 external4206 should eq [#<Project id:1277 user2173/project1264>, #<Project id:1278 user2173/mepmep>]4207IssueBoardEntity4208 has basic attributes4209 has path and endpoints4210 has milestone attributes4211 has assignee attributes4212 has label attributes4213Deployments::SuccessWorker4214 when successful deployment4215 executes Deployments::AfterCreateService4216 when canceled deployment4217 does not execute Deployments::AfterCreateService4218 when deploy record does not exist4219 does not execute Deployments::AfterCreateService4220Backup::Files4221 #restore4222 folders with permission4223 moves all necessary files4224 raises no errors4225 calls tar command with unlink4226 folders without permissions4227 shows error message4228 folders that are a mountpoint4229 shows error message4230CommitPolicy4231 #rules4232 when project is public4233 can read commit and create a note4234 when repository access level is private4235 can not read commit and create a note4236 when the user is a project member4237 can read commit and create a note4238 when project is private4239 can not read commit and create a note4240 when the user is a project member4241 can read commit and create a note4242Gitlab::Graphql::MarkdownField::Resolver4243 #proc4244 renders markdown correctly4245 when the issue is not publicly accessible4246 hides the references from users that are not allowed to see the reference4247 shows the reference to users that are allowed to see it4248Gitlab::VisibilityLevelChecker4249 #level_restricted?4250 when visibility level is allowed4251 returns false with nil for visibility level4252 when visibility level is restricted4253 returns true and visibility name4254 overridden visibility4255 when restricted4256 returns true and visibility name4257 when misspelled4258 returns false with nil for visibility level4259 when import_data is missing4260 returns false with nil for visibility level4261Gitlab::GitalyClient::RemoteService4262 #add_remote4263 sends an add_remote message4264 #remove_remote4265 sends an remove_remote message and returns the result value4266 #fetch_internal_remote4267 sends an fetch_internal_remote message and returns the result value4268 #find_remote_root_ref4269 sends an find_remote_root_ref message and returns the root ref4270 ensure ref is a valid UTF-8 string4271 #update_remote_mirror4272 sends an update_remote_mirror message4273 .exists?4274 when the remote doesn't exist4275 returns false4276Gitlab::GoogleCodeImport::ProjectCreator4277 creates project4278Projects::RepositoryLanguagesService4279 when detected_repository_languages flag is set4280 when a project is without detected programming languages4281 schedules a worker and returns the empty result4282 when a project is with detected programming languages4283 does not schedule a worker and returns the detected languages4284 sets detected_repository_languages flag4285 when detected_repository_languages flag is not set4286 returns repository languages4287Deployments::FinishedWorker4288 #perform4289 executes project services for deployment_hooks4290 does not execute an inactive service4291 does nothing if a deployment with the given id does not exist4292Gitlab::Prometheus::MetricGroup4293 .common_metrics4294 returns exactly two groups4295 returns exactly three metric queries4296 orders by priority4297 .for_project4298 returns exactly one common metric4299ProjectImportOptions4300 sets default retry limit4301 sets default status expiration4302 .sidekiq_retries_exhausted43032019-10-16T17:17:38.912Z 91 TID-goyghzv2f WARN: Failed with [1330, nil, nil]: 4304 marks fork as failed43052019-10-16T17:17:39.110Z 91 TID-goyghzv2f WARN: Failed with [1331, nil, nil]: 4306 logs the appropriate error message for forked projects43072019-10-16T17:17:39.295Z 91 TID-goyghzv2f WARN: Failed with [1332, nil, nil]: 4308 logs the appropriate error message for forked projects4309 when project does not have import_state4310 raises an error4311DeployKeyPolicy4312 updating a deploy_key4313 when a regular user4314 tries to update private deploy key attached to project4315 should be allowed :update_deploy_key4316 tries to update private deploy key attached to other project4317 should be disallowed :update_deploy_key4318 tries to update public deploy key4319 should be disallowed :update_deploy_key4320 when an admin user4321 tries to update private deploy key4322 should be allowed :update_deploy_key4323 when an admin user tries to update public deploy key4324 should be allowed :update_deploy_key4325AnalyticsIssueEntity4326 generic entity4327 contains the entity URL4328 contains the author4329 does not contain sensitive information4330Gitlab::Auth::UserAccessDeniedReason4331 #rejection_message4332 when a user is blocked4333 should match /blocked/4334 a user did not accept the enforced terms4335 should match /must accept the Terms of Service/4336 should include "user2259"4337 when the user is internal4338 should match /This action cannot be performed by internal users/4339 when the user is deactivated4340 should eq "Your account has been deactivated by your administrator. Please log back in from a web browser to reactivate your account at http://localhost"4341Projects::HashedStorage::MigrationService4342 #execute4343 repository migration4344 delegates migration to Projects::HashedStorage::MigrateRepositoryService4345 does not delegate migration if repository is already migrated4346 attachments migration4347 delegates migration to Projects::HashedStorage::MigrateRepositoryService4348 does not delegate migration if attachments are already migrated4349Gitlab::ImportExport::UploadsManager4350 #save4351 when the project has uploads locally stored4352 does not cause errors4353 copies the file in the correct location when there is an upload4354 with orphaned project upload files4355 excludes orphaned upload files4356 with an upload missing its file4357 does not cause errors4358 #restore4359 restores the file4360AccessRequestable4361 Group4362 #request_access4363 should be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...e_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean)4364 should eq #<User id:2254 @user2271>4365 #access_requested?4366 should be truthy4367 Project4368 #request_access4369 should be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...e_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean)4370 #access_requested?4371 should be truthy4372HashedStorage::ProjectRollbackWorker4373 #perform4374 skips when project no longer exists4375 skips when project is pending delete4376 delegates rollback to service class when have exclusive lease4377 skips when it cant acquire the exclusive lease4378PipelineUpdateWorker4379 #perform4380 when pipeline exists4381 updates pipeline status4382 when pipeline does not exist4383 does not raise exception4384Gitlab::BackgroundMigration::EncryptColumns4385NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4386NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4387NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4388 #perform4389 encrypts columns for the specified range4390 acquires an exclusive lock for the update4391 skips already-encrypted columns4392 reloads the model column information4393 fails if a source column is not present4394 fails if a destination column is not present4395NOTICE: table "design_management_designs" does not exist, skipping4396NOTICE: table "design_management_designs_versions" does not exist, skipping4397NOTICE: table "design_management_versions" does not exist, skipping4398NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4399NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4400NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4401NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4402SetIssueIdForAllVersions4403NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4404NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4405NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4406 correctly sets issue_id4407NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4408NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4409NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4410ScheduleToArchiveLegacyTraces4411NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4412NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4413NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4414 correctly archive legacy traces4415NOTICE: table "design_management_designs" does not exist, skipping4416NOTICE: table "design_management_designs_versions" does not exist, skipping4417NOTICE: table "design_management_versions" does not exist, skipping4418NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4419NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4420NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4421NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4422GroupLabelsFinder#execute4423 returns all group labels sorted by name if no params4424 returns all group labels sorted by name desc4425 returns group labels that match search4426 returns group labels user subscribed to4427 returns second page of labels4428Gitlab::Analytics::CycleAnalytics::BaseQueryBuilder4429 scopes query within the target project4430 date range parameters4431 when filters by only the `from` parameter4432 should eq 24433 when filters by both `from` and `to` parameters4434 should eq 14435 invalid date range is provided4436 should eq 04437ChatNames::AuthorizeUserService4438 #execute4439 when all parameters are valid4440 produces a valid HTTP URL4441 requests a new token4442 when there are missing parameters4443 does not produce a URL4444 does not request a new token4445Gitlab::Graphql::Loaders::BatchModelLoader4446 #find4447 finds a model by id4448 only queries once per model4449HashedStorage::ProjectMigrateWorker4450 #perform4451 skips when project no longer exists4452 skips when project is pending delete4453 delegates migration to service class when we have exclusive lease4454 skips when it cant acquire the exclusive lease4455AddUniqueConstraintToProjectFeaturesProjectId4456NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4457NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4458NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4459 #up4460 creates a unique index and removes duplicates4461 #down4462 restores the original index4463NOTICE: table "design_management_designs" does not exist, skipping4464NOTICE: table "design_management_designs_versions" does not exist, skipping4465NOTICE: table "design_management_versions" does not exist, skipping4466NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4467NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4468NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4469NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4470ScheduleSetConfidentialNoteEventsOnServices4471NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4472NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4473NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4474NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping4475 schedules background migrations at correct time4476 correctly processes services4477NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping4478NOTICE: table "design_management_designs" does not exist, skipping4479NOTICE: table "design_management_designs_versions" does not exist, skipping4480NOTICE: table "design_management_versions" does not exist, skipping4481NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4482NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4483NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4484NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4485Gitlab::LetsEncrypt4486 .enabled?4487 when terms of service are accepted4488 should eq true4489 when terms of service are not accepted4490 should eq false4491 .terms_of_service_url4492 returns the url4493ClusterEntity4494 #as_json4495 when provider type is gcp4496 when status is creating4497 has corresponded data4498 when status is errored4499 has corresponded data4500 when provider type is user4501 has corresponded data4502 when no application has been installed4503 contains helm as not_installable4504Gitlab::FogbugzImport::ProjectCreator4505 creates project with private visibility level4506admin/dashboard/index.html.haml4507 shows version of GitLab Workhorse4508 includes revision of GitLab4509PublicUrlValidator4510 #validate4511 with no options4512 allows http,https schemes by default4513 checks that the url structure is valid4514 with schemes4515 allows urls with the defined schemes4516 add error if the url scheme does not match the selected ones4517 by default4518 blocks urls pointing to localhost4519 blocks urls pointing to the local network4520 when local requests are allowed4521 does not block urls pointing to localhost4522 does not block urls pointing to the local network4523CreatePipelineWorker4524 #perform4525 when a project not found4526 does not call the Service4527 when a user not found4528 does not call the Service4529 when everything is ok4530 calls the Service4531Gitlab::Ci::CronParser4532 #next_time_from4533 when cron and cron_timezone are valid4534 when specific time4535 returns exact time4536 behaves like returns time in the future4537 should be > 2019-10-16 17:19:33 +00004538 when specific day of week4539 returns exact day of week4540 behaves like returns time in the future4541 should be > 2019-10-16 17:19:33 +00004542 when slash used4543 returns specific time4544 behaves like returns time in the future4545 should be > 2019-10-16 17:19:33 +00004546 when range used4547 returns specific time4548 behaves like returns time in the future4549 should be > 2019-10-16 17:19:33 +00004550 when cron_timezone is TZInfo format4551 when cron_timezone is US/Pacific4552 behaves like returns time in the future4553 should be > 2019-10-16 17:19:33 +00004554 when PST (Pacific Standard Time)4555 converts time in server time zone4556 when PDT (Pacific Daylight Time)4557 converts time in server time zone4558 when cron_timezone is ActiveSupport::TimeZone format4559 when cron_timezone is Berlin4560 behaves like returns time in the future4561 should be > 2019-10-16 17:19:33 +00004562 when CET (Central European Time)4563 converts time in server time zone4564 when CEST (Central European Summer Time)4565 converts time in server time zone4566 when cron_timezone is Eastern Time (US & Canada)4567 behaves like returns time in the future4568 should be > 2019-10-16 17:19:33 +00004569 when EST (Eastern Standard Time)4570 converts time in server time zone4571 when EDT (Eastern Daylight Time)4572 converts time in server time zone4573 when cron and cron_timezone are invalid4574 should be nil4575 when cron syntax is quoted4576 should be nil4577 when cron syntax is rufus-scheduler syntax4578 should be nil4579 when cron is scheduled to a non existent day4580 should be nil4581 #cron_valid?4582 when cron is valid4583 should eq true4584 when cron is invalid4585 should eq false4586 when cron syntax is quoted4587 should eq false4588 #cron_timezone_valid?4589 when cron is valid4590 should eq true4591 when cron is invalid4592 should eq false4593 when cron_timezone is ActiveSupport::TimeZone format4594 should eq true4595EmailsOnPushService4596 Validations4597 when service is active4598 should validate that :recipients cannot be empty/falsy4599 when service is inactive4600 should not validate that :recipients cannot be empty/falsy4601 project emails4602 does not send emails when disabled4603 does send emails when enabled4604Gitlab::Experimentation::ControllerConcern4605 #set_experimentation_subject_id_cookie4606 cookie is present4607 does not change the cookie4608 cookie is not present4609 sets a permanent signed cookie4610 #experiment_enabled?4611 cookie is not present4612 calls Gitlab::Experimentation.enabled? with the name of the experiment and an experimentation_subject_index of nil4613 cookie is present4614 calls Gitlab::Experimentation.enabled? with the name of the experiment and an experimentation_subject_index of the modulo 100 of the hex value of the uuid4615Gitlab::Experimentation4616 .enabled?4617 feature toggle is enabled, we are on the right environment and we are selected4618 should be truthy4619 experiment is not defined4620 returns false4621 feature toggle4622 feature toggle is not set4623 should be truthy4624 feature toggle is not set, but a feature with the experiment key as name does exist4625 should be falsey4626 feature toggle is disabled4627 should be falsey4628 environment4629 environment is not set4630 should be truthy4631 we are on the wrong environment4632 should be falsey4633 enabled ratio4634 enabled ratio is not set4635 should be falsey4636 experimentation_subject_index is not set4637 should be falsey4638 experimentation_subject_index is an empty string4639 should be falsey4640 experimentation_subject_index outside enabled ratio4641 should be falsey4642Gitlab::ExternalAuthorization4643 #access_allowed?4644 is always true when the feature is disabled4645 #rejection_reason4646 is always nil when the feature is disabled4647 #access_for_user_to_label4648 only loads the access once per request4649 logs the access request once per request4650AutoMergeProcessWorker4651 #perform4652 when merge request is found4653 executes AutoMergeService4654 when merge request is not found4655 does not execute AutoMergeService4656Metrics::Dashboard::DefaultEmbedService4657 #get_dashboard4658 caches the unprocessed dashboard for subsequent calls4659 behaves like valid embedded dashboard service response4660 behaves like valid dashboard service response for schema4661 returns a json representation of the dashboard4662 behaves like raises error for users with insufficient permissions4663 when the user does not have sufficient access4664 behaves like misconfigured dashboard service response4665 returns an appropriate message and status code4666 when called with a non-system dashboard4667 behaves like valid embedded dashboard service response4668 behaves like valid dashboard service response for schema4669 returns a json representation of the dashboard4670Gitlab::UsageDataCounters::MergeRequestCounter4671 behaves like a redis usage counter4672 .count(create)4673 increments the Merge Request create counter by 14674 .read(create)4675 returns the total number of create events4676 behaves like a redis usage counter with totals4677 totals4678 can report all totals4679 unknown events4680 cannot increment4681 cannot read4682search/_form4683 when the search page is opened4684 displays the correct elements4685MigrateCreateTraceArtifactSidekiqQueue4686 when there are jobs in the queues4687 correctly migrates queue when migrating up4688 does not affect other queues under the same namespace4689 correctly migrates queue when migrating down4690 when there are no jobs in the queues4691 does not raise error when migrating up4692 does not raise error when migrating down4693SafeZip::Extract4694 #extract4695 when using valid-simple.zip archive4696 for RubyZip4697 behaves like extracts archive4698 does extract archive4699 for UnZip4700 behaves like extracts archive4701 does extract archive4702 when using valid-symlinks-first.zip archive4703 for RubyZip4704 behaves like extracts archive4705 does extract archive4706 for UnZip4707 behaves like extracts archive4708 does extract archive4709 when using valid-non-writeable.zip archive4710 for RubyZip4711 behaves like extracts archive4712 does extract archive4713 for UnZip4714 behaves like extracts archive4715 does extract archive4716 when using invalid-symlink-does-not-exist.zip archive4717 for RubyZip4718 behaves like fails to extract archive4719 does not extract archive4720 for UnZip (UNSAFE)4721 behaves like extracts archive4722 does extract archive4723 when using invalid-symlinks-outside.zip archive4724 for RubyZip4725 behaves like fails to extract archive4726 does not extract archive4727 for UnZip (UNSAFE)4728 behaves like extracts archive4729 does extract archive4730 when no matching directories are found4731 for RubyZip4732 behaves like fails to extract archive4733 does not extract archive4734 for UnZip4735 behaves like fails to extract archive4736caution: filename not matched: non/existing/*4737 does not extract archive4738Gitlab::Database4739 .config4740 returns a Hash4741 .adapter_name4742 returns the name of the adapter4743 returns Unknown when using anything else4744 .human_adapter_name4745 returns PostgreSQL when using PostgreSQL4746 .postgresql?4747 should satisfy expression `val == true || val == false`4748 .version4749 memoizes the result4750 on postgresql4751 extracts the version number4752 .postgresql_9_or_less?4753 returns true when using postgresql 8.44754 returns true when using PostgreSQL 9.64755 returns false when using PostgreSQL 10 or newer4756 .postgresql_minimum_supported_version?4757 returns false when using PostgreSQL 9.54758 returns true when using PostgreSQL 9.64759 returns true when using PostgreSQL 10 or newer4760 .replication_slots_supported?4761 returns false when using PostgreSQL 9.34762 returns true when using PostgreSQL 9.4.0 or newer4763 .pg_wal_lsn_diff4764 returns old name when using PostgreSQL 9.64765 returns new name when using PostgreSQL 10 or newer4766 .pg_current_wal_insert_lsn4767 returns old name when using PostgreSQL 9.64768 returns new name when using PostgreSQL 10 or newer4769 .pg_last_wal_receive_lsn4770 returns old name when using PostgreSQL 9.64771 returns new name when using PostgreSQL 10 or newer4772 .pg_last_wal_replay_lsn4773 returns old name when using PostgreSQL 9.64774 returns new name when using PostgreSQL 10 or newer4775 .pg_last_xact_replay_timestamp4776 returns pg_last_xact_replay_timestamp4777 .nulls_last_order4778 should eq "column ASC NULLS LAST"4779 should eq "column DESC NULLS LAST"4780 .nulls_first_order4781 should eq "column ASC NULLS FIRST"4782 should eq "column DESC NULLS FIRST"4783 .with_connection_pool4784 creates a new connection pool and disconnect it after used4785 disconnects the pool even an exception was raised4786 .bulk_insert4787 does nothing with empty rows4788 uses the ordering from the first row4789 quotes column names4790 quotes values4791 does not quote values of a column in the disable_quote option4792 does not quote values of columns in the disable_quote option4793 handles non-UTF-8 data4794 when using PostgreSQL4795 allows the returning of the IDs of the inserted rows4796 .create_connection_pool4797 creates a new connection pool with specific pool size4798 allows setting of a custom hostname4799 allows setting of a custom hostname and port4800 .cached_column_exists?4801 only retrieves data once4802 .cached_table_exists?4803 only retrieves data once per table4804 #true_value4805 returns correct value4806 #false_value4807 returns correct value4808 .read_only?4809 returns false4810 .db_read_only?4811 detects a read only database4812 detects a read only database4813 detects a read write database4814 detects a read write database4815 #sanitize_timestamp4816 with a timestamp smaller than MAX_TIMESTAMP_VALUE4817 returns the given timestamp4818 with a timestamp larger than MAX_TIMESTAMP_VALUE4819 returns MAX_TIMESTAMP_VALUE4820Mutations::ResolvesProject4821 uses the ProjectsResolver to resolve projects by path4822Gitlab::GitalyClient::ConflictFilesStitcher4823 enumeration4824 combines segregated ConflictFile messages together4825Gitlab::GithubImport::Stage::ImportPullRequestsWorker4826 #import4827 imports all the pull requests4828DiffFileBaseEntity4829 diff for a changed submodule4831LfsObjectUploader4832 behaves like builds correct paths4833 #store_dir4834 behaves like matches the method pattern4835 should match /\h{2}\/\h{2}/4836 #cache_dir4837 behaves like matches the method pattern4838 should match /\/lfs-objects\/tmp\/cache/4839 #work_dir4840 behaves like matches the method pattern4841 should match /\/lfs-objects\/tmp\/work/4842 #upload_path4843 behaves like matches the method pattern4844 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4845 #relative_path4846 is relative (PENDING: Path not set, skipping.)4847 .absolute_path4848 behaves like matches the method pattern4849 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4850 .base_dir4851 behaves like matches the method pattern4852 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4853 object store is REMOTE4854 behaves like builds correct paths4855 #store_dir4856 behaves like matches the method pattern4857 should match /\h{2}\/\h{2}/4858 #cache_dir4859 behaves like matches the method pattern4860 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4861 #work_dir4862 behaves like matches the method pattern4863 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4864 #upload_path4865 behaves like matches the method pattern4866 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4867 #relative_path4868 is relative (PENDING: Path not set, skipping.)4869 .absolute_path4870 behaves like matches the method pattern4871 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4872 .base_dir4873 behaves like matches the method pattern4874 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4875 migration to object storage4876 with object storage disabled4877 is skipped4878 with object storage enabled4879 is scheduled to run after creation4880 remote file4881 with object storage enabled4882 can store file remotely4883instrument_classes4884 can autoload and instrument all files4885Gitlab::HTTPConnectionAdapter4886 #connection4887 when local requests are not allowed4888 sets up the connection4889 raises error when it is a request to local address4890 raises error when it is a request to localhost address4891 when port different from URL scheme is used4892 sets up the addr_port accordingly4893 when DNS rebinding protection is disabled4894 sets up the connection4895 when http(s) environment variable is set4896 sets up the connection4897 when local requests are allowed4898 sets up the connection4899 sets up the connection when it is a local network4900 sets up the connection when it is localhost4901Gitlab::Utils::SanitizeNodeLink4902 with the scheme: javascript:4903 #remove_unsafe_links4904 <a> tags4905 removes the unsafe link4906 <img> tags4907 removes the unsafe link4908 <video> tags4909 removes the unsafe link4910 <audio> tags4911 removes the unsafe link4912 #safe_protocol?4913 returns false4914 with the scheme: JaVaScRiPt:4915 #remove_unsafe_links4916 <a> tags4917 removes the unsafe link4918 <img> tags4919 removes the unsafe link4920 <video> tags4921 removes the unsafe link4922 <audio> tags4923 removes the unsafe link4924 #safe_protocol?4925 returns false4926 with the scheme: javascript:4927 #remove_unsafe_links4928 <a> tags4929 removes the unsafe link4930 <img> tags4931 removes the unsafe link4932 <video> tags4933 removes the unsafe link4934 <audio> tags4935 removes the unsafe link4936 #safe_protocol?4937 returns false4938 with the scheme: javascript :4939 #remove_unsafe_links4940 <a> tags4941 removes the unsafe link4942 <img> tags4943 removes the unsafe link4944 <video> tags4945 removes the unsafe link4946 <audio> tags4947 removes the unsafe link4948 #safe_protocol?4949 returns false4950 with the scheme: javascript:4951 #remove_unsafe_links4952 <a> tags4953 removes the unsafe link4954 <img> tags4955 removes the unsafe link4956 <video> tags4957 removes the unsafe link4958 <audio> tags4959 removes the unsafe link4960 #safe_protocol?4961 returns false4962 with the scheme: javascript :4963 #remove_unsafe_links4964 <a> tags4965 removes the unsafe link4966 <img> tags4967 removes the unsafe link4968 <video> tags4969 removes the unsafe link4970 <audio> tags4971 removes the unsafe link4972 #safe_protocol?4973 returns false4974 with the scheme: :javascript:4975 #remove_unsafe_links4976 <a> tags4977 removes the unsafe link4978 <img> tags4979 removes the unsafe link4980 <video> tags4981 removes the unsafe link4982 <audio> tags4983 removes the unsafe link4984 #safe_protocol?4985 returns false4986 with the scheme: javascript:4987 #remove_unsafe_links4988 <a> tags4989 removes the unsafe link4990 <img> tags4991 removes the unsafe link4992 <video> tags4993 removes the unsafe link4994 <audio> tags4995 removes the unsafe link4996 #safe_protocol?4997 returns false4998 with the scheme: javascript:4999 #remove_unsafe_links5000 <a> tags5001 removes the unsafe link5002 <img> tags5003 removes the unsafe link5004 <video> tags5005 removes the unsafe link5006 <audio> tags5007 removes the unsafe link5008 #safe_protocol?5009 returns false5010 with the scheme:  javascript:5011 #remove_unsafe_links5012 <a> tags5013 removes the unsafe link5014 <img> tags5015 removes the unsafe link5016 <video> tags5017 removes the unsafe link5018 <audio> tags5019 removes the unsafe link5020 #safe_protocol?5021 returns false5022Gitlab::GithubImport::Representation::PullRequest5023 .from_api_response5024 does not set the user if the response did not include a user5025 behaves like a PullRequest5026 returns an instance of PullRequest5027 the returned PullRequest5028 includes the pull request number5029 includes the pull request title5030 includes the pull request description5031 includes the source branch name5032 includes the source branch SHA5033 includes the target branch name5034 includes the target branch SHA5035 includes the milestone number5036 includes the user details5037 includes the assignee details5038 includes the created timestamp5039 includes the updated timestamp5040 includes the merged timestamp5041 includes the source repository ID5042 includes the target repository ID5043 includes the source repository owner name5044 includes the pull request state5045 .from_json_hash5046 does not convert the author if it was not specified5047 behaves like a PullRequest5048 returns an instance of PullRequest5049 the returned PullRequest5050 includes the pull request number5051 includes the pull request title5052 includes the pull request description5053 includes the source branch name5054 includes the source branch SHA5055 includes the target branch name5056 includes the target branch SHA5057 includes the milestone number5058 includes the user details5059 includes the assignee details5060 includes the created timestamp5061 includes the updated timestamp5062 includes the merged timestamp5063 includes the source repository ID5064 includes the target repository ID5065 includes the source repository owner name5066 includes the pull request state5067 #state5068 returns :opened for an open pull request5069 returns :closed for a closed pull request5070 returns :merged for a merged pull request5071 #cross_project?5072 returns false for a pull request submitted from the target project5073 returns true for a pull request submitted from a different project5074 returns true if no source repository is present5075 #formatted_source_branch5076 for a cross-project pull request5077 includes the owner name in the branch name5078 for a regular pull request5079 returns the source branch name5080 for a pull request with the same source and target branches5081 returns a generated source branch name5082 #truncated_title5083 truncates the title to 255 characters5084 does not truncate the title if it is shorter than 255 characters5085ProjectServiceWorker#perform5086 executes service with given data5087 logs error messages5088Gitlab::SlashCommands::Presenters::IssueMove5089 should be a kind of Hash5090 shows the new issue5091 mentions the old issue and the new issue in the pretext5092Gitlab::SSHPublicKey5093 .technology(name)5094 returns nil for an unrecognised name5095 name: :rsa5096 should eq :rsa5097 should eq :rsa5098 name: :dsa5099 should eq :dsa5100 should eq :dsa5101 name: :ecdsa5102 should eq :ecdsa5103 should eq :ecdsa5104 name: :ed255195105 should eq :ed255195106 should eq :ed255195107 .supported_sizes(name)5108 name: :rsa, sizes: [1024, 2048, 3072, 4096]5109 should eq [1024, 2048, 3072, 4096]5110 should eq [1024, 2048, 3072, 4096]5111 name: :dsa, sizes: [1024, 2048, 3072]5112 should eq [1024, 2048, 3072]5113 should eq [1024, 2048, 3072]5114 name: :ecdsa, sizes: [256, 384, 521]5115 should eq [256, 384, 521]5116 should eq [256, 384, 521]5117 name: :ed25519, sizes: [256]5118 should eq [256]5119 should eq [256]5120 .sanitize(key_content)5121 when key has blank space characters5122 removes the extra blank space characters5123 when key doesn't have blank space characters5124 doesn't modify the content5125 when key is invalid5126 returns the original content5127 #valid?5128 with a valid SSH key5129 factory: :rsa_key_20485130 should be valid5131 factory: :rsa_key_40965132 should be valid5133 factory: :rsa_key_51205134 should be valid5135 factory: :rsa_key_81925136 should be valid5137 factory: :dsa_key_20485138 should be valid5139 factory: :ecdsa_key_2565140 should be valid5141 factory: :ed25519_key_2565142 should be valid5143 with an invalid SSH key5144 should not be valid5145 #type5146 factory: :rsa_key_2048, type: :rsa5147 should eq :rsa5148 factory: :dsa_key_2048, type: :dsa5149 should eq :dsa5150 factory: :ecdsa_key_256, type: :ecdsa5151 should eq :ecdsa5152 factory: :ed25519_key_256, type: :ed255195153 should eq :ed255195154 with an invalid SSH key5155 should be nil5156 #bits5157 factory: :rsa_key_2048, bits: 20485158 should eq 20485159 factory: :rsa_key_4096, bits: 40965160 should eq 40965161 factory: :rsa_key_5120, bits: 51205162 should eq 51205163 factory: :rsa_key_8192, bits: 81925164 should eq 81925165 factory: :dsa_key_2048, bits: 20485166 should eq 20485167 factory: :ecdsa_key_256, bits: 2565168 should eq 2565169 factory: :ed25519_key_256, bits: 2565170 should eq 2565171 with an invalid SSH key5172 should be nil5173 #fingerprint5174 factory: :rsa_key_2048, fingerprint: "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"5175 should eq "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"5176 factory: :rsa_key_4096, fingerprint: "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"5177 should eq "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"5178 factory: :rsa_key_5120, fingerprint: "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"5179 should eq "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"5180 factory: :rsa_key_8192, fingerprint: "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"5181 should eq "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"5182 factory: :dsa_key_2048, fingerprint: "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"5183 should eq "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"5184 factory: :ecdsa_key_256, fingerprint: "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"5185 should eq "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"5186 factory: :ed25519_key_256, fingerprint: "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"5187 should eq "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"5188 with an invalid SSH key5189 should be nil5190 #key_text5191 carries the unmodified key data5192AuthHelper5193 button_based_providers5194 returns all enabled providers from devise5195 does not return ldap provider5196 returns empty array5197 providers_for_base_controller5198 returns all enabled providers from devise5199 excludes ldap providers5200 form_based_providers5201 includes LDAP providers5202 includes crowd provider5203 form_based_auth_provider_has_active_class?5204 selects main LDAP server5205 enabled_button_based_providers5206 all providers are enabled to sign in5207 returns all the enabled providers from settings5208 GitHub OAuth sign in is disabled from application setting5209 doesn't return github as provider5210 button_based_providers_enabled?5211 button based providers enabled5212 returns true5213 all the button based providers are disabled via application_setting5214 returns false5215 #link_provider_allowed?5216 delegates to identity provider policy5217 #unlink_provider_allowed?5218 delegates to identity provider policy5219Gitlab::UrlBlockers::UrlWhitelist5220 #domain_whitelisted?5221 returns true if domains present in whitelist5222 returns false when domain is blank5223 #ip_whitelisted?5224 returns true if ips present in whitelist5225 returns false when ip is blank5226Gitlab::Metrics::MethodCall5227 #measure5228 measures the performance of the supplied block5229 when measurement is above threshold5230 prometheus instrumentation is enabled5231 metric is not a NullMetric5232 observes the performance of the supplied block5233 prometheus instrumentation is disabled5234 observes using NullMetric5235 when measurement is below threshold5236 does not observe the performance5237 #to_metric5238 returns a Metric instance5239 #above_threshold?5240 returns false when the total call time is not above the threshold5241 returns true when the total call time is above the threshold5242 #call_count5243 without any method calls5244 returns 05245 with method calls5246 returns the number of method calls5247 #cpu_time5248 without timings5249 returns 0.05250 with timings5251 returns the total CPU time5252 #real_time5253 without timings5254 returns 0.05255 with timings5256 returns the total real time5257EventPresenter5258 #resource_parent_name5259 with group event5260 should eq "group222"5261 with project label5262 should eq "group222 / project1362"5263 #target_link_options5264 with group event5265 should eq [#<Group id:2549 @group222>, #<Milestone id:67 group222/project1362%"My title 832">]5266 with project label5267 should eq [#<Namespace id: 2549, name: "group222", path: "group222", owner_id: nil, created_at: "2019-10-16 17:...l>, #<Project id:1381 group222/project1362>, #<Milestone id:67 group222/project1362%"My title 832">]5268AuthorizedProjectsWorker5269 #perform5270 refreshes user's authorized projects5271 when the user is not found5272 does nothing5273BitbucketServer::Representation::Activity5274 regular comment5275 should be truthy5276 should be falsey5277 should be a kind of BitbucketServer::Representation::Comment5278 should be a kind of Time5279 inline comment5280 should be truthy5281 should be truthy5282 should be a kind of BitbucketServer::Representation::PullRequestComment5283 should be a kind of Time5284 merge event5285 should be falsey5286 should be falsey5287 should eq "root"5288 should eq "test.user@example.com"5289 should be a kind of Time5290 should be a kind of Time5291 should eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"5292Gitlab::Ci::Build::Artifacts::Metadata::Entry5293 /file/with/absolute_path5294 should be file5295 should have parent5296 #basename5297 should eq "absolute_path"5298 path/dir_1/5299 should have parent5300 should be directory5301 #basename5302 should eq "dir_1/"5303 #name5304 should eq "dir_1"5305 #parent5306 should eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/5307 #children5308 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5309 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/5310 #files5311 should all be file5312 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5313 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_b5314 #directories5315 without options5316 should all be directory5317 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5318 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/5319 with option parent: true5320 should all be directory5321 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5322 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/5323 #nodes5324 should eq 25325 #exists?5326 should equal true5327 #empty?5328 should equal false5329 #total_size5330 should eq 305331 empty path5332 should not have parent5333 #children5334 should eq 35335 path/dir_1/subdir/subfile5336 #nodes5337 should eq 45338 #blob5339 returns a blob representing the entry data5340 non-existent/5341 #empty?5342 should equal true5343 #exists?5344 should equal false5345 another_directory/5346 #empty?5347 should equal true5348 #metadata5349 should eq "/path/file1"5350Gitlab::Git::LfsChanges5351 #new_pointers5352 filters new objects to find lfs pointers5353 limits new_objects using object_limit5354 times out if given a small dynamic timeout5355ConfigLint5356 errors out if any bash scripts have errors5357 passes if all scripts are fine5358config_lint rake task5359 runs lint on shell scripts5360Ci::BuildTraceSection5361 should belong to build required:5362 should belong to project required:5363 should belong to section_name required:5364 should validate that :section_name cannot be empty/falsy5365 should validate that :build cannot be empty/falsy5366 should validate that :project cannot be empty/falsy5367Gitlab::Auth::OAuth::AuthHash5368 defaults5369 should eq "ldap"5370 should eql "CN=Onur Küçük,OU=Test,DC=example,DC=net"5371 should eql "onur.küçük_ABC-123@example.net"5372 should eql "oküçük"5373 should eql "Onur Küçük"5374 should not be empty5375 should eq "some locality, some country"5376 email not provided5377 generates a temp email5378 username not provided5379 takes the first part of the email as username5380 name not provided5381 concats first and lastname as the name5382 auth_hash constructed with ASCII-8BIT encoding5383 forces utf8 encoding on uid5384 forces utf8 encoding on provider5385 forces utf8 encoding on name5386 forces utf8 encoding on username5387 forces utf8 encoding on email5388 forces utf8 encoding on password5389Prometheus::PidProvider5390 .worker_id5391 when running in Sidekiq server mode5392 should eq "sidekiq"5393 when running in Unicorn mode5394 when unicorn master is specified in process name5395 when running in Omnibus5396 before the process was renamed5397 should eq "unicorn_master"5398 after the process was renamed5399 should eq "unicorn_master"5400 when in development env5401 before the process was renamed5402 should eq "unicorn_master"5403 after the process was renamed5404 should eq "unicorn_master"5405 when unicorn worker id is specified in process name5406 when running in Omnibus5407 should eq "unicorn_1"5408 when in development env5409 should eq "unicorn_1"5410 when no specified unicorn master or worker id in process name5411 should eq "process_91"5412 when running in Puma mode5413 when cluster worker id is specified in process name5414 should eq "puma_1"5415 when no worker id is specified in process name5416 should eq "puma_master"5417 when running in unknown mode5418 should eq "process_91"5419Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches5420 .build5421 with non-evaluable operands5422 creates a new instance of the token5423 with evaluable operands5424 creates a new instance of the token5425 .type5426 is an operator5427 .precedence5428 has a precedence5429 #evaluate5430 when left and right do not match5431 should eq true5432 when left and right match5433 should eq false5434 when left is nil5435 should eq true5436 when right is nil5437 should eq true5438 when left and right are nil5439 should eq true5440 when left is an empty string5441 should eq true5442 when left and right are empty strings5443 should eq false5444 when left is a multiline string and matches right5445 should eq false5446 when left is a multiline string and does not match right5447 should eq true5448 when a matching pattern uses regex flags5449 should eq false5450 when a non-matching pattern uses regex flags5451 should eq true5452gitlab:ldap:rename_provider rake task5453 completes without error5454TestReportsComparerSerializer5455 #to_json5456 when head and base reports include two test suites5457 when the status of head report is success5458 matches the schema5459 when the status of head report is failed5460 matches the schema5461 when the status of head report is resolved5462 matches the schema5463Gitlab::HealthChecks::Redis::RedisCheck5464 #metrics5465 Check is passing5466 should include (have attributes {:name => "redis_ping_success", :value => 1})5467 should include (have attributes {:name => "redis_ping_timeout", :value => 0})5468 should include (have attributes {:name => "redis_ping_latency_seconds", :value => (be >= 0)})5469 Check is misbehaving5470 should include (have attributes {:name => "redis_ping_success", :value => 0})5471 should include (have attributes {:name => "redis_ping_timeout", :value => 0})5472 should include (have attributes {:name => "redis_ping_latency_seconds", :value => (be >= 0)})5473 Check is timeouting5474 should include (have attributes {:name => "redis_ping_success", :value => 0})5475 should include (have attributes {:name => "redis_ping_timeout", :value => 1})5476 should include (have attributes {:name => "redis_ping_latency_seconds", :value => (be >= 0)})5477 #readiness5478 Check returns ok5479 should have attributes {:success => true}5480 Check is misbehaving5481 should have attributes {:message => "unexpected Redis check result: error!", :success => false}5482 Check is timeouting5483 should have attributes {:message => "Redis check timed out", :success => false}5484 Check is raising an unhandled exception5485 should have attributes {:message => "unexpected Redis check result: unexpected error", :success => false}5486Quality::TestLevel5487 #pattern5488 when level is all5489 returns a pattern5490 when level is geo5491 returns a pattern5492 when level is unit5493 returns a pattern5494 when level is integration5495 returns a pattern5496 when level is system5497 returns a pattern5498 with a prefix5499 returns a pattern5500 performance5501 memoizes the pattern for a given level5502 freezes the pattern for a given level5503 #regexp5504 when level is all5505 returns a regexp5506 when level is geo5507 returns a regexp5508 when level is unit5509 returns a regexp5510 when level is integration5511 returns a regexp5512 when level is system5513 returns a regexp5514 with a prefix5515 returns a regexp5516 performance5517 memoizes the regexp for a given level5518 freezes the regexp for a given level5519 #level_for5520 returns the correct level for a unit test5521 returns the correct level for an integration test5522 returns the correct level for a system test5523 raises an error for an unknown level5524Banzai::Filter::InlineDiffFilter5525 adds inline diff span tags for deletions when using square brackets5526 adds inline diff span tags for deletions when using curley braces5527 does not add inline diff span tags when a closing tag is not provided5528 adds inline span tags for additions when using square brackets5529 adds inline span tags for additions when using curley braces5530 does not add inline diff span tags when a closing addition tag is not provided5531 does not add inline diff span tags when the tags do not match5532 prevents user-land html being injected5533 preserves content inside pre tags5534 preserves content inside code tags5535 preserves content inside tt tags5536Bitbucket::Representation::Repo5537 #has_wiki?5538 should be falsey5539 should be truthy5540 #name5541 should eq "test"5542 #valid?5543 should be falsey5544 should be truthy5545 #full_name5546 should eq "test_full"5547 #description5548 should eq "desc"5549 #issues_enabled?5550 should be falsey5551 should be truthy5552 #owner_and_slug5553 should eq ["ben", "test"]5554 #owner5555 should eq "ben"5556 #slug5557 should eq "test"5558 #clone_url5559 builds url5560Gitlab::UsageDataCounters::RedisCounter5561 when usage_ping is disabled5562 counter is not increased5563 when usage_ping is enabled5564 counter is increased5565Gitlab::UntrustedRegexp5566 #initialize5567 invalid regexp5568 should raise RegexpError5569 #replace_all5570 replaces all instances of the match in a string5571 #replace5572 replaces the first instance of the match in a string5573 #===5574 returns true for a match5575 returns false for no match5576 can handle regular expressions in multiline mode5577 #match?5578 malicious regexp5579 takes under a second5580 matching regexp5581 returns an array of nil matches5582 non-matching regexp5583 returns an array of nil matches5584 #scan5585 malicious regexp5586 takes under a second5587 empty regexp5588 returns an array of nil matches5589 empty capture group regexp5590 returns an array of nil matches in an array5591 no capture group5592 returns the whole match5593 one capture group5594 returns the captured part5595 two capture groups5596 returns the captured parts5597Banzai::Filter::MarkdownFilter5598 markdown engine from context5599 defaults to CommonMark5600 uses CommonMark5601 code block5602 using CommonMark5603 adds language to lang attribute when specified5604 does not add language to lang attribute when not specified5605 works with utf8 chars in language5606 source line position5607 using CommonMark5608 defaults to add data-sourcepos5609 disables data-sourcepos5610 footnotes in tables5611 processes footnotes in table cells5612Gitlab::ImportExport::Reader5613 #project_tree5614 delegates to AttributesFinder#find_root5615 when exception raised5616 should equal false5617 logs the error5618 #group_members_tree5619 delegates to AttributesFinder#find_root5620RuboCop::Cop::Gitlab::RailsLogger5621 flags the use of Rails.logger.error with a constant receiver5622 flags the use of Rails.logger.info with a constant receiver5623 flags the use of Rails.logger.warn with a constant receiver5624 does not flag the use of Rails.logger with a constant that is not Rails5625 does not flag the use of logger with a send receiver5626Banzai::Filter::InlineMetricsFilter5627 when the document has an external link5628 leaves regular non-metrics links unchanged5629 when the document has a metrics dashboard link5630 leaves the original link unchanged5631 appends a metrics charts placeholder with dashboard url after metrics links5632 when the metrics dashboard link is part of a paragraph5633 appends the charts placeholder after the enclosing paragraph5634 with dashboard params specified5635 appends a metrics charts placeholder with dashboard url after metrics links5636Gitlab::GlobalId5637 .build5638 returns a standard GlobalId if only object is passed5639 returns a GlobalId from params5640 returns a GlobalId from object and `id` param5641 returns a GlobalId from object and `model_name` param5642 returns an error if model_name and id are not able to be determined5643DiffLineSerializer5644 #to_json5645 matches the schema5646 when lines are parallel5647 matches the schema5648GitlabDanger5649 .local_warning_message5650 returns an informational message with rules that can run5651 .success_message5652 returns an informational success message5653 #rule_names5654 when running locally5655 returns local only rules5656 when running under CI5657 returns all rules5658 #html_link5659 when running locally5660 returns the same string5661 when running under CI5662 returns a HTML link formatted version of the string5663 #ci?5664 when gitlab_danger_helper is not available5665 returns false5666 when gitlab_danger_helper is available5667 returns true5668Bitbucket::Page5669 #items5670 returns collection of needed objects5671 #attrs5672 returns attributes5673 #next?5674 returns true5675 returns false5676 #next5677 returns next attribute5678Gitlab::Ci::Config::Entry::Ports5679 when configuration is valid5680 #valid?5681 is valid5682 #value5683 returns valid array5684 when configuration is invalid5685 #valid?5686 is invalid5687 when any of the ports5688 have the same name5689 #valid?5690 is invalid5691 have the same port5692 #valid?5693 is invalid5694Gitlab::BackgroundMigration::MergeRequestAssigneesMigrationProgressCheck5695 rescheduling5696 when there are ongoing and no dead jobs5697 reschedules check5698 when there are ongoing and dead jobs5699 reschedules check5700 when there retrying jobs and no scheduled5701 reschedules check5702 when there are no scheduled, or retrying or dead5703 enables feature5704 when there are only dead jobs5705 raises DeadJobsError error5706Gitlab::Sherlock::Middleware5707 #call5708 when instrumentation is enabled5709 instruments a request5710 when instrumentation is disabled5711 doesn't instrument a request5712 #call_with_instrumentation5713 instruments a request5714 #instrument?5715 returns false for a text/css request5716 returns false for a request to a Sherlock route5717 returns true for a request that should be instrumented5718 #transaction_from_env5719 returns a Transaction5720Gitlab::GithubImport::PageCounter5721 #initialize5722 sets the initial page number to 1 when no value is cached5723 sets the initial page number to the cached value when one is present5724 #set5725 overwrites the page number when the given number is greater than the current number5726 does not overwrite the page number when the given number is lower than the current number5727Gitlab::Kubernetes::Helm::DeleteCommand5728 behaves like helm commands5729 #generate_script5730 returns appropriate command5731 when there is a ca.pem file5732 behaves like helm commands5733 #generate_script5734 returns appropriate command5735 #pod_resource5736 rbac is enabled5737 generates a pod that uses the tiller serviceAccountName5738 rbac is not enabled5739 generates a pod that uses the default serviceAccountName5740 #pod_name5741 should eq "uninstall-app-name"5742Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished5743 behaves like cycle analytics event5744 should be a kind of String5745 should be a kind of Symbol5746 should include ApplicationRecord(abstract)5747 should respond to #timestamp_projection5748 #apply_query_customization5749 expects an ActiveRecord::Relation object as argument and returns a modified version of it5750Sidekiq::Cron::Job5751 cron jobs5752 when Fugit depends on ZoTime or EoTime57532019-10-16T17:19:57.759Z 91 TID-goyghzv2f INFO: Cron Jobs - add job with name: TestCronWorker5754 does not get any errors5755Gitlab::Config::Entry::Attributable5756 when config is a hash5757 returns the value of config5758 returns no method error for unknown attributes5759 when config is not a hash5760 returns nil5761 when method is already defined in a superclass5762 raises an error5763Gitlab::Graphql::FindArgumentInParent5764 #find5765 searches parents and returns the argument5766 can find argument when passed in as both Ruby and GraphQL-formatted symbols and strings5767 returns nil if no arguments found in parents5768 can limit the depth it searches to5769Bitbucket::Connection5770 #get5771 calls OAuth2::AccessToken::get5772 #expired?5773 calls connection.expired?5774 #refresh!5775 calls connection.refresh!5776Uniquify5777 #string5778 returns the given string if it does not exist5779 returns the given string with a counter attached if the string exists5780 increments the counter for each candidate string that also exists5781 allows to pass an initial value for the counter5782 allows passing in a base function that defines the location of the counter5783Time5784 should eq "Time"5785 coerces Time object into ISO 86015786 coerces an ISO-time into Time object5787Gitlab::Template::Finders::GlobalTemplateFinder5788 .find5789 finds a template in the Foo category5790 finds a template in the Bar category5791 does not permit path traversal requests5792RequestAwareEntity5793 includes URL helpers5794 includes method for checking abilities5795 fetches request from options5796Gitlab::DependencyLinker::Parser::Gemfile5797 #parse5798 returns parsed packages5799 packages respond to name and external_ref accordingly5800Gitlab::Git::DiffStatsCollection5801 #find_by_path5802 returns stats by path when found5803 returns nil when stats is not found by path5804 #paths5805 returns only modified paths5806ObjectStoreSettings5807 .parse5808 sets correct default values5809 respects original values5810TestCaseEntity5811 #as_json5812 when test case is success5813 contains correct test case details5814 when test case is failed5815 contains correct test case details5816ClusterQueue5817 sets a default pipelines queue automatically5818Types::Tree::BlobType5819 should eq "Blob"5820 should have graphql fields :id, :name, :type, :path, :flat_path, :web_url, and :lfs_oid5821Gitlab::AppLogger5822 builds a logger once5823Gitlab::GithubImport::Queue5824 sets the Sidekiq options for the worker5825Bitbucket::Representation::User5826 #username5827 returns correct value5828Evidences::ReleaseSerializer5829 represents an Evidence::ReleaseEntity entity5830ProviderRepoSerializer5831 represents ProviderRepoEntity entities5832Gitlab::MarkdownCache::FieldData5833 translates a markdown field name into a html field name5834Gitlab::HealthChecks::Probes::Collection5835 #call5836 with all checks5837 responds with readiness checks data5838 when Redis fails5839 responds with failure5840 without checks5841 responds with success5842Knapsack report was generated. Preview:5843{5844 "spec/services/quick_actions/interpret_service_spec.rb": 103.82458066940308,5845 "spec/services/merge_requests/create_from_issue_service_spec.rb": 54.18502449989319,5846 "spec/lib/gitlab/closing_issue_extractor_spec.rb": 43.655579805374146,5847 "spec/models/project_services/slack_service_spec.rb": 32.21132040023804,5848 "spec/lib/gitlab/ci/trace_spec.rb": 28.46241068840027,5849 "spec/tasks/gitlab/check_rake_spec.rb": 17.267374277114868,5850 "spec/models/event_spec.rb": 17.47042489051819,5851 "spec/workers/post_receive_spec.rb": 15.572109460830688,5852 "spec/models/concerns/resolvable_note_spec.rb": 15.44691014289856,5853 "spec/serializers/build_details_entity_spec.rb": 9.044753551483154,5854 "spec/finders/todos_finder_spec.rb": 10.915813207626343,5855 "spec/services/merge_requests/reopen_service_spec.rb": 10.379609107971191,5856 "spec/models/members/group_member_spec.rb": 7.68164324760437,5857 "spec/services/clusters/gcp/fetch_operation_service_spec.rb": 5.419846057891846,5858 "spec/models/ci/legacy_stage_spec.rb": 7.756510496139526,5859 "spec/policies/group_policy_spec.rb": 5.804967164993286,5860 "spec/models/service_spec.rb": 7.0622642040252686,5861 "spec/services/users/refresh_authorized_projects_service_spec.rb": 5.998079538345337,5862 "spec/services/push_event_payload_service_spec.rb": 6.345891714096069,5863 "spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb": 5.492096185684204,5864 "spec/lib/gitlab/gfm/uploads_rewriter_spec.rb": 4.1204259395599365,5865 "spec/models/concerns/redactable_spec.rb": 3.6579577922821045,5866 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 3.3351876735687256,5867 "spec/serializers/issue_entity_spec.rb": 3.546941041946411,5868 "spec/lib/banzai/reference_parser/commit_range_parser_spec.rb": 3.13057017326355,5869 "spec/lib/gitlab/git/branch_spec.rb": 3.058079957962036,5870 "spec/lib/extracts_path_spec.rb": 2.950615406036377,5871 "spec/services/issuable/destroy_service_spec.rb": 2.4083638191223145,5872 "spec/models/project_feature_spec.rb": 4.089037895202637,5873 "spec/models/list_spec.rb": 2.9204928874969482,5874 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb": 2.3504438400268555,5875 "spec/models/project_services/redmine_service_spec.rb": 2.571070909500122,5876 "spec/services/verify_pages_domain_service_spec.rb": 2.789638042449951,5877 "spec/helpers/issuables_helper_spec.rb": 2.1765151023864746,5878 "spec/workers/remove_expired_group_links_worker_spec.rb": 1.7778913974761963,5879 "spec/helpers/emails_helper_spec.rb": 2.4536292552948,5880 "spec/workers/auto_devops/disable_worker_spec.rb": 2.87357759475708,5881 "spec/models/concerns/maskable_spec.rb": 1.7066116333007812,5882 "spec/models/ci/variable_spec.rb": 1.9275569915771484,5883 "spec/tasks/gitlab/update_templates_rake_spec.rb": 1.4334266185760498,5884 "spec/models/analytics/cycle_analytics/project_stage_spec.rb": 1.3625454902648926,5885 "spec/lib/gitlab/ci/status/build/manual_spec.rb": 0.7817163467407227,5886 "spec/lib/gitlab/ci/status/external/common_spec.rb": 1.8248367309570312,5887 "spec/serializers/cluster_application_entity_spec.rb": 1.7476539611816406,5888 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 1.8491301536560059,5889 "spec/services/labels/create_service_spec.rb": 1.5283119678497314,5890 "spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb": 1.160881757736206,5891 "spec/finders/personal_projects_finder_spec.rb": 2.213477611541748,5892 "spec/serializers/issue_board_entity_spec.rb": 1.335615634918213,5893 "spec/workers/deployments/success_worker_spec.rb": 1.2637419700622559,5894 "spec/lib/backup/files_spec.rb": 1.0909814834594727,5895 "spec/policies/commit_policy_spec.rb": 1.4472036361694336,5896 "spec/lib/gitlab/graphql/markdown_field/resolver_spec.rb": 1.9463253021240234,5897 "spec/lib/gitlab/visibility_level_checker_spec.rb": 1.1476843357086182,5898 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 1.0628061294555664,5899 "spec/lib/gitlab/google_code_import/project_creator_spec.rb": 0.7131860256195068,5900 "spec/services/projects/repository_languages_service_spec.rb": 0.7329752445220947,5901 "spec/workers/deployments/finished_worker_spec.rb": 1.1505591869354248,5902 "spec/lib/gitlab/prometheus/metric_group_spec.rb": 0.9247734546661377,5903 "spec/workers/concerns/project_import_options_spec.rb": 0.8008027076721191,5904 "spec/policies/deploy_key_policy_spec.rb": 1.0288498401641846,5905 "spec/serializers/analytics_issue_entity_spec.rb": 0.558753490447998,5906 "spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 0.6194343566894531,5907 "spec/services/projects/hashed_storage/migration_service_spec.rb": 0.875856876373291,5908 "spec/lib/gitlab/import_export/uploads_manager_spec.rb": 0.9037158489227295,5909 "spec/models/concerns/access_requestable_spec.rb": 1.1830363273620605,5910 "spec/workers/hashed_storage/project_rollback_worker_spec.rb": 0.5309329032897949,5911 "spec/workers/pipeline_update_worker_spec.rb": 0.19804167747497559,5912 "spec/lib/gitlab/background_migration/encrypt_columns_spec.rb": 0.7513911724090576,5913 "spec/migrations/set_issue_id_for_all_versions_spec.rb": 0.7490725517272949,5914 "spec/migrations/schedule_to_archive_legacy_traces_spec.rb": 1.1340012550354004,5915 "spec/finders/group_labels_finder_spec.rb": 0.6493370532989502,5916 "spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb": 0.2898590564727783,5917 "spec/services/chat_names/authorize_user_service_spec.rb": 0.7229197025299072,5918 "spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb": 0.5564799308776855,5919 "spec/workers/hashed_storage/project_migrate_worker_spec.rb": 0.5129013061523438,5920 "spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb": 0.629033088684082,5921 "spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb": 0.6445012092590332,5922 "spec/lib/gitlab/lets_encrypt_spec.rb": 1.8985989093780518,5923 "spec/serializers/cluster_entity_spec.rb": 0.8625259399414062,5924 "spec/lib/gitlab/fogbugz_import/project_creator_spec.rb": 0.7374889850616455,5925 "spec/views/admin/dashboard/index.html.haml_spec.rb": 0.6490955352783203,5926 "spec/validators/public_url_validator_spec.rb": 0.3278076648712158,5927 "spec/workers/create_pipeline_worker_spec.rb": 0.4069030284881592,5928 "spec/lib/gitlab/ci/cron_parser_spec.rb": 0.3660604953765869,5929 "spec/models/project_services/emails_on_push_service_spec.rb": 0.4519624710083008,5930 "spec/lib/gitlab/experimentation_spec.rb": 0.34427618980407715,5931 "spec/lib/gitlab/external_authorization_spec.rb": 0.1314098834991455,5932 "spec/workers/auto_merge_process_worker_spec.rb": 0.5482652187347412,5933 "spec/services/metrics/dashboard/default_embed_service_spec.rb": 0.376666784286499,5934 "spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb": 0.029159069061279297,5935 "spec/views/search/_form.html.haml_spec.rb": 0.06611490249633789,5936 "spec/migrations/migrate_create_trace_artifact_sidekiq_queue_spec.rb": 0.37067556381225586,5937 "spec/lib/safe_zip/extract_spec.rb": 0.2365567684173584,5938 "spec/lib/gitlab/database_spec.rb": 0.21771550178527832,5939 "spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb": 0.1724872589111328,5940 "spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb": 0.181488037109375,5941 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.17631244659423828,5942 "spec/serializers/diff_file_base_entity_spec.rb": 0.22020554542541504,5943 "spec/uploaders/lfs_object_uploader_spec.rb": 0.22972393035888672,5944 "spec/initializers/zz_metrics_spec.rb": 0.16249704360961914,5945 "spec/lib/gitlab/http_connection_adapter_spec.rb": 0.16309213638305664,5946 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 0.14526081085205078,5947 "spec/lib/gitlab/github_import/representation/pull_request_spec.rb": 0.15618443489074707,5948 "spec/workers/project_service_worker_spec.rb": 0.08238577842712402,5949 "spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb": 0.13753819465637207,5950 "spec/lib/gitlab/ssh_public_key_spec.rb": 0.20038390159606934,5951 "spec/helpers/auth_helper_spec.rb": 0.0793600082397461,5952 "spec/lib/gitlab/url_blockers/url_whitelist_spec.rb": 0.06355762481689453,5953 "spec/lib/gitlab/metrics/method_call_spec.rb": 0.1459026336669922,5954 "spec/presenters/event_presenter_spec.rb": 0.08492803573608398,5955 "spec/workers/authorized_projects_worker_spec.rb": 0.05591726303100586,5956 "spec/lib/bitbucket_server/representation/activity_spec.rb": 0.04938006401062012,5957 "spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb": 0.0644984245300293,5958 "spec/lib/gitlab/git/lfs_changes_spec.rb": 0.05566287040710449,5959 "spec/tasks/config_lint_spec.rb": 0.0652308464050293,5960 "spec/models/ci/build_trace_section_spec.rb": 0.04875922203063965,5961 "spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb": 0.03403759002685547,5962 "spec/lib/prometheus/pid_provider_spec.rb": 0.030592918395996094,5963 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb": 0.03331327438354492,5964 "spec/tasks/gitlab/ldap_rake_spec.rb": 0.025115966796875,5965 "spec/serializers/test_reports_comparer_serializer_spec.rb": 0.03451395034790039,5966 "spec/lib/gitlab/health_checks/redis/redis_check_spec.rb": 0.03335118293762207,5967 "spec/lib/quality/test_level_spec.rb": 0.03492879867553711,5968 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.026015758514404297,5969 "spec/lib/bitbucket/representation/repo_spec.rb": 0.027827739715576172,5970 "spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb": 0.030672550201416016,5971 "spec/lib/gitlab/untrusted_regexp_spec.rb": 0.034310102462768555,5972 "spec/lib/banzai/filter/markdown_filter_spec.rb": 0.02188873291015625,5973 "spec/lib/gitlab/import_export/reader_spec.rb": 0.019939184188842773,5974 "spec/rubocop/cop/gitlab/rails_logger_spec.rb": 0.21990180015563965,5975 "spec/lib/banzai/filter/inline_metrics_filter_spec.rb": 0.02812027931213379,5976 "spec/lib/gitlab/global_id_spec.rb": 0.03058314323425293,5977 "spec/serializers/diff_line_serializer_spec.rb": 0.024546146392822266,5978 "spec/lib/gitlab_danger_spec.rb": 0.02406930923461914,5979 "spec/lib/bitbucket/page_spec.rb": 0.016173601150512695,5980 "spec/lib/gitlab/ci/config/entry/ports_spec.rb": 0.04683947563171387,5981 "spec/lib/gitlab/background_migration/merge_request_assignees_migration_progress_check_spec.rb": 0.019626140594482422,5982 "spec/lib/gitlab/sherlock/middleware_spec.rb": 0.02813267707824707,5983 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.012815475463867188,5984 "spec/lib/gitlab/kubernetes/helm/delete_command_spec.rb": 0.015108585357666016,5985 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb": 0.014091014862060547,5986 "spec/sidekiq/cron/job_gem_dependency_spec.rb": 0.011464834213256836,5987 "spec/lib/gitlab/config/entry/attributable_spec.rb": 0.015552520751953125,5988 "spec/lib/gitlab/graphql/find_argument_in_parent_spec.rb": 0.013236045837402344,5989 "spec/lib/bitbucket/connection_spec.rb": 0.011625528335571289,5990 "spec/models/concerns/uniquify_spec.rb": 0.013371467590332031,5991 "spec/graphql/types/time_type_spec.rb": 0.009702444076538086,5992 "spec/lib/gitlab/template/finders/global_template_finder_spec.rb": 0.008870124816894531,5993 "spec/serializers/request_aware_entity_spec.rb": 0.009126663208007812,5994 "spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb": 0.00653529167175293,5995 "spec/lib/gitlab/git/diff_stats_collection_spec.rb": 0.008236408233642578,5996 "spec/config/object_store_settings_spec.rb": 0.0072934627532958984,5997 "spec/serializers/test_case_entity_spec.rb": 0.005567312240600586,5998 "spec/workers/concerns/cluster_queue_spec.rb": 0.003207683563232422,5999 "spec/graphql/types/tree/blob_type_spec.rb": 0.005952119827270508,6000 "spec/lib/gitlab/app_logger_spec.rb": 0.0035545825958251953,6001 "spec/workers/concerns/gitlab/github_import/queue_spec.rb": 0.0028574466705322266,6002 "spec/lib/bitbucket/representation/user_spec.rb": 0.00254058837890625,6003 "spec/serializers/evidences/release_serializer_spec.rb": 0.002480745315551758,6004 "spec/serializers/provider_repo_serializer_spec.rb": 0.0026397705078125,6005 "spec/lib/gitlab/markdown_cache/field_data_spec.rb": 0.0025053024291992188,6006 "spec/lib/gitlab/health_checks/probes/collection_spec.rb": 0.0285084247589111336007}6008Knapsack global time execution for tests: 08m 35s6009Pending: (Failures listed here are expected and do not affect your suite's status)6010 1) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 6011 # No pattern provided, skipping.6012 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86013 2) LfsObjectUploader behaves like builds correct paths #relative_path is relative6014 # Path not set, skipping.6015 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396016 3) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 6017 # No pattern provided, skipping.6018 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86019 4) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6020 # No pattern provided, skipping.6021 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86022 5) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6023 # No pattern provided, skipping.6024 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86025 6) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6026 # No pattern provided, skipping.6027 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86028 7) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 6029 # No pattern provided, skipping.6030 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86031 8) LfsObjectUploader object store is REMOTE behaves like builds correct paths #relative_path is relative6032 # Path not set, skipping.6033 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396034 9) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6035 # No pattern provided, skipping.6036 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86037 10) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6038 # No pattern provided, skipping.6039 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86040Finished in 11 minutes 9 seconds (files took 31.4 seconds to load)60412283 examples, 0 failures, 10 pending6042Wed Oct 16 17:20:08 UTC 20196044$ date6045Wed Oct 16 17:20:17 UTC 20196048coverage/: found 5 matching files 6049knapsack/: found 6 matching files 6050rspec_flaky/: found 4 matching files 6051rspec_profiling/: found 1 matching files 6052WARNING: tmp/capybara/: no matching files 6053tmp/memory_test/: found 2 matching files 6054Uploading artifacts to coordinator... ok id=322922892 responseStatus=201 Created token=ZTnZ6xyK6055Uploading artifacts...6056junit_rspec.xml: found 1 matching files 6057Uploading artifacts to coordinator... ok id=322922892 responseStatus=201 Created token=ZTnZ6xyK6058Job succeeded