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

Nick Thomas
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com 8a6210b8 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
02:37
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-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1571245178-b3c125f7...
00:23
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:06:52 UTC 201936$ export GOPATH=$CI_PROJECT_DIR/.go37$ mkdir -p $GOPATH38$ source scripts/utils.sh39$ source scripts/prepare_build.sh40Bundler version 1.17.241Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.42The Gemfile's dependencies are satisfied43Successfully installed knapsack-1.18.0441 gem installed45CREATE ROLE46GRANT47Dropped database 'gitlabhq_test'48Created database 'gitlabhq_test'49-- enable_extension("pg_trgm")50 -> 0.0355s51-- enable_extension("plpgsql")52 -> 0.0031s53-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})54 -> 0.0064s55-- create_table("alerts_service_data", {:force=>:cascade})56 -> 0.0114s57-- create_table("allowed_email_domains", {:force=>:cascade})58 -> 0.0053s59-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})60 -> 0.0143s61-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})62 -> 0.0140s63-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})64 -> 0.0074s65-- create_table("analytics_repository_file_commits", {:force=>:cascade})66 -> 0.0068s67-- create_table("analytics_repository_file_edits", {:force=>:cascade})68 -> 0.0069s69-- create_table("analytics_repository_files", {:force=>:cascade})70 -> 0.0046s71-- create_table("appearances", {:id=>:serial, :force=>:cascade})72 -> 0.0033s73-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})74 -> 0.0026s75-- create_table("application_settings", {:id=>:serial, :force=>:cascade})76 -> 0.0950s77-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})78 -> 0.0063s79-- create_table("approval_merge_request_rules", {:force=>:cascade})80 -> 0.0149s81-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})82 -> 0.0065s83-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})84 -> 0.0062s85-- create_table("approval_merge_request_rules_users", {:force=>:cascade})86 -> 0.0062s87-- create_table("approval_project_rules", {:force=>:cascade})88 -> 0.0096s89-- create_table("approval_project_rules_groups", {:force=>:cascade})90 -> 0.0068s91-- create_table("approval_project_rules_users", {:force=>:cascade})92 -> 0.0063s93-- create_table("approvals", {:id=>:serial, :force=>:cascade})94 -> 0.0064s95-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})96 -> 0.0069s97-- create_table("approvers", {:id=>:serial, :force=>:cascade})98 -> 0.0068s99-- create_table("audit_events", {:id=>:serial, :force=>:cascade})100 -> 0.0072s101-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})102 -> 0.0070s103-- create_table("badges", {:id=>:serial, :force=>:cascade})104 -> 0.0069s105-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})106 -> 0.0062s107-- create_table("board_group_recent_visits", {:force=>:cascade})108 -> 0.0104s109-- create_table("board_labels", {:id=>:serial, :force=>:cascade})110 -> 0.0065s111-- create_table("board_project_recent_visits", {:force=>:cascade})112 -> 0.0105s113-- create_table("boards", {:id=>:serial, :force=>:cascade})114 -> 0.0093s115-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})116 -> 0.0052s117-- create_table("chat_names", {:id=>:serial, :force=>:cascade})118 -> 0.0073s119-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})120 -> 0.0047s121-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})122 -> 0.0047s123-- create_table("ci_build_trace_chunks", {:force=>:cascade})124 -> 0.0047s125-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})126 -> 0.0049s127-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})128 -> 0.0087s129-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})130 -> 0.0568s131-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})132 -> 0.0094s133-- create_table("ci_builds_runner_session", {:force=>:cascade})134 -> 0.0049s135-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})136 -> 0.0062s137-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})138 -> 0.0132s139-- create_table("ci_job_variables", {:force=>:cascade})140 -> 0.0074s141-- create_table("ci_pipeline_chat_data", {:force=>:cascade})142 -> 0.0069s143-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})144 -> 0.0055s145-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})146 -> 0.0099s147-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})148 -> 0.0054s149-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})150 -> 0.0311s151-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})152 -> 0.0064s153-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})154 -> 0.0068s155-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})156 -> 0.0188s157-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})158 -> 0.0129s159-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})160 -> 0.0112s161-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})162 -> 0.0069s163-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})164 -> 0.0100s165-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})166 -> 0.0074s167-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})168 -> 0.0066s169-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})170 -> 0.0053s171-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})172 -> 0.0063s173-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})174 -> 0.0084s175-- create_table("clusters", {:id=>:serial, :force=>:cascade})176 -> 0.0118s177-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})178 -> 0.0058s179-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})180 -> 0.0057s181-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})182 -> 0.0058s183-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})184 -> 0.0081s185-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})186 -> 0.0055s187-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})188 -> 0.0060s189-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})190 -> 0.0087s191-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})192 -> 0.0184s193-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})194 -> 0.0078s195-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})196 -> 0.0074s197-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})198 -> 0.0056s199-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})200 -> 0.0057s201-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})202 -> 0.0052s203-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})204 -> 0.0109s205-- create_table("deployments", {:id=>:serial, :force=>:cascade})206 -> 0.0251s207-- create_table("design_management_designs", {:force=>:cascade})208 -> 0.0075s209-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})210 -> 0.0104s211-- create_table("design_management_versions", {:force=>:cascade})212 -> 0.0095s213-- create_table("draft_notes", {:force=>:cascade})214 -> 0.0109s215-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})216 -> 0.0037s217-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})218 -> 0.0037s219-- create_table("emails", {:id=>:serial, :force=>:cascade})220 -> 0.0102s221-- create_table("environments", {:id=>:serial, :force=>:cascade})222 -> 0.0134s223-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})224 -> 0.0072s225-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})226 -> 0.0049s227-- create_table("epics", {:id=>:serial, :force=>:cascade})228 -> 0.0256s229-- create_table("events", {:id=>:serial, :force=>:cascade})230 -> 0.0195s231-- create_table("external_pull_requests", {:force=>:cascade})232 -> 0.0060s233-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})234 -> 0.0057s235-- create_table("features", {:id=>:serial, :force=>:cascade})236 -> 0.0054s237-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})238 -> 0.0095s239-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})240 -> 0.0053s241-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})242 -> 0.0061s243-- create_table("geo_cache_invalidation_events", {:force=>:cascade})244 -> 0.0027s245-- create_table("geo_container_repository_updated_events", {:force=>:cascade})246 -> 0.0049s247-- 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.0058s253-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})254 -> 0.0050s255-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})256 -> 0.0052s257-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})258 -> 0.0088s259-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})260 -> 0.0067s261-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})262 -> 0.0133s263-- create_table("geo_repositories_changed_events", {:force=>:cascade})264 -> 0.0044s265-- create_table("geo_repository_created_events", {:force=>:cascade})266 -> 0.0048s267-- create_table("geo_repository_deleted_events", {:force=>:cascade})268 -> 0.0048s269-- create_table("geo_repository_renamed_events", {:force=>:cascade})270 -> 0.0050s271-- create_table("geo_repository_updated_events", {:force=>:cascade})272 -> 0.0078s273-- create_table("geo_reset_checksum_events", {:force=>:cascade})274 -> 0.0043s275-- create_table("geo_upload_deleted_events", {:force=>:cascade})276 -> 0.0053s277-- create_table("gitlab_subscriptions", {:force=>:cascade})278 -> 0.0079s279-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})280 -> 0.0086s281-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})282 -> 0.0086s283-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})284 -> 0.0133s285-- create_table("grafana_integrations", {:force=>:cascade})286 -> 0.0049s287-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})288 -> 0.0073s289-- create_table("historical_data", {:id=>:serial, :force=>:cascade})290 -> 0.0022s291-- create_table("identities", {:id=>:serial, :force=>:cascade})292 -> 0.0094s293-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})294 -> 0.0070s295-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})296 -> 0.0050s297-- create_table("insights", {:id=>:serial, :force=>:cascade})298 -> 0.0064s299-- create_table("internal_ids", {:force=>:cascade})300 -> 0.0108s301-- create_table("ip_restrictions", {:force=>:cascade})302 -> 0.0048s303-- create_table("issue_assignees", {:id=>false, :force=>:cascade})304 -> 0.0053s305-- create_table("issue_links", {:id=>:serial, :force=>:cascade})306 -> 0.0085s307-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})308 -> 0.0068s309-- create_table("issue_tracker_data", {:force=>:cascade})310 -> 0.0053s311-- create_table("issues", {:id=>:serial, :force=>:cascade})312 -> 0.0419s313-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})314 -> 0.0065s315-- create_table("jira_connect_installations", {:force=>:cascade})316 -> 0.0053s317-- create_table("jira_connect_subscriptions", {:force=>:cascade})318 -> 0.0088s319-- create_table("jira_tracker_data", {:force=>:cascade})320 -> 0.0054s321-- create_table("keys", {:id=>:serial, :force=>:cascade})322 -> 0.0104s323-- create_table("label_links", {:id=>:serial, :force=>:cascade})324 -> 0.0074s325-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})326 -> 0.0086s327-- 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.0071s335-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})336 -> 0.0062s337-- create_table("licenses", {:id=>:serial, :force=>:cascade})338 -> 0.0026s339-- create_table("list_user_preferences", {:force=>:cascade})340 -> 0.0084s341-- create_table("lists", {:id=>:serial, :force=>:cascade})342 -> 0.0132s343-- create_table("members", {:id=>:serial, :force=>:cascade})344 -> 0.0191s345-- create_table("merge_request_assignees", {:force=>:cascade})346 -> 0.0086s347-- create_table("merge_request_blocks", {:force=>:cascade})348 -> 0.0064s349-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})350 -> 0.0061s351-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})352 -> 0.0043s353-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})354 -> 0.0078s355-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})356 -> 0.0192s357-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})358 -> 0.0514s359-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})360 -> 0.0069s361-- create_table("merge_trains", {:force=>:cascade})362 -> 0.0129s363-- create_table("milestone_releases", {:id=>false, :force=>:cascade})364 -> 0.0070s365-- create_table("milestones", {:id=>:serial, :force=>:cascade})366 -> 0.0154s367-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})368 -> 0.0034s369-- 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.0079s373-- create_table("namespaces", {:id=>:serial, :force=>:cascade})374 -> 0.0700s375-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})376 -> 0.0058s377-- create_table("notes", {:id=>:serial, :force=>:cascade})378 -> 0.0388s379-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})380 -> 0.0166s381-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})382 -> 0.0068s383-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})384 -> 0.0143s385-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})386 -> 0.0081s387-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})388 -> 0.0057s389-- create_table("operations_feature_flag_scopes", {:force=>:cascade})390 -> 0.0075s391-- create_table("operations_feature_flags", {:force=>:cascade})392 -> 0.0051s393-- create_table("operations_feature_flags_clients", {:force=>:cascade})394 -> 0.0087s395-- create_table("packages_maven_metadata", {:force=>:cascade})396 -> 0.0065s397-- create_table("packages_package_files", {:force=>:cascade})398 -> 0.0052s399-- create_table("packages_package_metadata", {:force=>:cascade})400 -> 0.0068s401-- create_table("packages_package_tags", {:force=>:cascade})402 -> 0.0055s403-- create_table("packages_packages", {:force=>:cascade})404 -> 0.0086s405-- create_table("pages_domain_acme_orders", {:force=>:cascade})406 -> 0.0095s407-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})408 -> 0.0192s409-- create_table("path_locks", {:id=>:serial, :force=>:cascade})410 -> 0.0088s411-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})412 -> 0.0096s413-- create_table("plans", {:id=>:serial, :force=>:cascade})414 -> 0.0055s415-- create_table("pool_repositories", {:force=>:cascade})416 -> 0.0111s417-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})418 -> 0.0058s419-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})420 -> 0.0020s421-- 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.0045s427-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})428 -> 0.0054s429-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})430 -> 0.0073s431-- create_table("project_daily_statistics", {:force=>:cascade})432 -> 0.0041s433-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})434 -> 0.0063s435-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})436 -> 0.0026s437-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})438 -> 0.0137s439-- create_table("project_features", {:id=>:serial, :force=>:cascade})440 -> 0.0074s441-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})442 -> 0.0070s443-- 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.0033s447-- 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.0160s451-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})452 -> 0.0058s453-- create_table("project_repositories", {:force=>:cascade})454 -> 0.0090s455-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})456 -> 0.0157s457-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})458 -> 0.0095s459-- create_table("project_tracing_settings", {:force=>:cascade})460 -> 0.0050s461-- create_table("projects", {:id=>:serial, :force=>:cascade})462 -> 0.0740s463-- create_table("prometheus_alert_events", {:force=>:cascade})464 -> 0.0069s465-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})466 -> 0.0089s467-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})468 -> 0.0123s469-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})470 -> 0.0093s471-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})472 -> 0.0092s473-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})474 -> 0.0093s475-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})476 -> 0.0077s477-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})478 -> 0.0094s479-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})480 -> 0.0072s481-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})482 -> 0.0092s483-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})484 -> 0.0071s485-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})486 -> 0.0040s487-- create_table("push_rules", {:id=>:serial, :force=>:cascade})488 -> 0.0098s489-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})490 -> 0.0101s491-- create_table("release_links", {:force=>:cascade})492 -> 0.0076s493-- create_table("releases", {:id=>:serial, :force=>:cascade})494 -> 0.0076s495-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})496 -> 0.0087s497-- create_table("repository_languages", {:id=>false, :force=>:cascade})498 -> 0.0035s499-- create_table("resource_label_events", {:force=>:cascade})500 -> 0.0136s501-- create_table("reviews", {:force=>:cascade})502 -> 0.0083s503-- create_table("routes", {:id=>:serial, :force=>:cascade})504 -> 0.0090s505-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})506 -> 0.0056s507-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})508 -> 0.0047s509-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})510 -> 0.0054s511-- create_table("services", {:id=>:serial, :force=>:cascade})512 -> 0.0160s513-- create_table("shards", {:id=>:serial, :force=>:cascade})514 -> 0.0049s515-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})516 -> 0.0070s517-- create_table("smartcard_identities", {:force=>:cascade})518 -> 0.0068s519-- create_table("snippets", {:id=>:serial, :force=>:cascade})520 -> 0.0177s521-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})522 -> 0.0068s523-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})524 -> 0.0067s525-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})526 -> 0.0037s527-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})528 -> 0.0072s529-- create_table("suggestions", {:force=>:cascade})530 -> 0.0065s531-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})532 -> 0.0047s533-- create_table("taggings", {:id=>:serial, :force=>:cascade})534 -> 0.0115s535-- create_table("tags", {:id=>:serial, :force=>:cascade})536 -> 0.0071s537-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})538 -> 0.0089s539-- create_table("timelogs", {:id=>:serial, :force=>:cascade})540 -> 0.0083s541-- create_table("todos", {:id=>:serial, :force=>:cascade})542 -> 0.0215s543-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})544 -> 0.0041s545-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})546 -> 0.0070s547-- create_table("uploads", {:id=>:serial, :force=>:cascade})548 -> 0.0116s549-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})550 -> 0.0057s551-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})552 -> 0.0064s553-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})554 -> 0.0071s555-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})556 -> 0.0054s557-- 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.0053s561-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})562 -> 0.0059s563-- create_table("users", {:id=>:serial, :force=>:cascade})564 -> 0.1568s565-- 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.0233s571-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})572 -> 0.0155s573-- create_table("vulnerability_identifiers", {:force=>:cascade})574 -> 0.0055s575-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})576 -> 0.0070s577-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})578 -> 0.0064s579-- create_table("vulnerability_occurrences", {:force=>:cascade})580 -> 0.0136s581-- create_table("vulnerability_scanners", {:force=>:cascade})582 -> 0.0048s583-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})584 -> 0.0071s585-- 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.0020s593-- 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.0015s597-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})598 -> 0.0016s599-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})600 -> 0.0013s601-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})602 -> 0.0030s603-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})604 -> 0.0015s605-- 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.0022s611-- 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.0027s621-- 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.0036s625-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})626 -> 0.0019s627-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})628 -> 0.0017s629-- 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.0015s633-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})634 -> 0.0017s635-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})636 -> 0.0015s637-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})638 -> 0.0014s639-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})640 -> 0.0015s641-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})642 -> 0.0016s643-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})644 -> 0.0017s645-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})646 -> 0.0015s647-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})648 -> 0.0014s649-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})650 -> 0.0014s651-- 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.0016s655-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})656 -> 0.0015s657-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})658 -> 0.0015s659-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})660 -> 0.0017s661-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})662 -> 0.0015s663-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})664 -> 0.0016s665-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})666 -> 0.0017s667-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})668 -> 0.0015s669-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})670 -> 0.0017s671-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})672 -> 0.0014s673-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})674 -> 0.0013s675-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})676 -> 0.0015s677-- 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.0017s681-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})682 -> 0.0014s683-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})684 -> 0.0017s685-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})686 -> 0.0016s687-- 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.0017s691-- 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.0015s695-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})696 -> 0.0015s697-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})698 -> 0.0017s699-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})700 -> 0.0022s701-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})702 -> 0.0015s703-- 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.0017s707-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})708 -> 0.0021s709-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})710 -> 0.0017s711-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})712 -> 0.0018s713-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})714 -> 0.0015s715-- 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.0020s719-- 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.0015s729-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})730 -> 0.0019s731-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})732 -> 0.0018s733-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})734 -> 0.0016s735-- 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.0017s741-- 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.0019s745-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})746 -> 0.0017s747-- 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.0020s751-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})752 -> 0.0021s753-- 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.0024s759-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})760 -> 0.0017s761-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})762 -> 0.0014s763-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})764 -> 0.0018s765-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})766 -> 0.0015s767-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})768 -> 0.0016s769-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})770 -> 0.0016s771-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})772 -> 0.0017s773-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})774 -> 0.0016s775-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})776 -> 0.0014s777-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})778 -> 0.0014s779-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})780 -> 0.0016s781-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})782 -> 0.0020s783-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})784 -> 0.0015s785-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})786 -> 0.0016s787-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})788 -> 0.0017s789-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})790 -> 0.0015s791-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})792 -> 0.0014s793-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})794 -> 0.0015s795-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})796 -> 0.0014s797-- 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.0014s801-- 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.0014s805-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})806 -> 0.0014s807-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})808 -> 0.0017s809-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})810 -> 0.0013s811-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})812 -> 0.0015s813-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})814 -> 0.0018s815-- add_foreign_key("container_repositories", "projects")816 -> 0.0018s817-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})818 -> 0.0016s819-- 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.0018s823-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})824 -> 0.0019s825-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})826 -> 0.0018s827-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})828 -> 0.0023s829-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})830 -> 0.0018s831-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})832 -> 0.0014s833-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})834 -> 0.0014s835-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})836 -> 0.0014s837-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})838 -> 0.0016s839-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})840 -> 0.0017s841-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})842 -> 0.0016s843-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})844 -> 0.0015s845-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})846 -> 0.0017s847-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})848 -> 0.0017s849-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})850 -> 0.0021s851-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})852 -> 0.0015s853-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})854 -> 0.0014s855-- 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.0017s859-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})860 -> 0.0015s861-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})862 -> 0.0017s863-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})864 -> 0.0016s865-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})866 -> 0.0016s867-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})868 -> 0.0019s869-- add_foreign_key("events", "projects", {:on_delete=>:cascade})870 -> 0.0018s871-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})872 -> 0.0016s873-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})874 -> 0.0025s875-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})876 -> 0.0015s877-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})878 -> 0.0016s879-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})880 -> 0.0017s881-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})882 -> 0.0015s883-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})884 -> 0.0016s885-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})886 -> 0.0013s887-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})888 -> 0.0019s889-- 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.0012s891-- 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.0017s893-- 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.0014s895-- 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.0013s897-- 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.0017s901-- 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.0017s905-- 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.0014s909-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})910 -> 0.0014s911-- 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.0018s915-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})916 -> 0.0020s917-- 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.0013s923-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})924 -> 0.0018s925-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})926 -> 0.0018s927-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})928 -> 0.0017s929-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})930 -> 0.0017s931-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})932 -> 0.0017s933-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})934 -> 0.0013s935-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})936 -> 0.0016s937-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})938 -> 0.0017s939-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})940 -> 0.0015s941-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})942 -> 0.0013s943-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})944 -> 0.0018s945-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})946 -> 0.0018s947-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})948 -> 0.0016s949-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})950 -> 0.0015s951-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})952 -> 0.0020s953-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})954 -> 0.0018s955-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})956 -> 0.0017s957-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})958 -> 0.0016s959-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})960 -> 0.0017s961-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})962 -> 0.0017s963-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})964 -> 0.0015s965-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})966 -> 0.0015s967-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})968 -> 0.0016s969-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})970 -> 0.0016s971-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})972 -> 0.0013s973-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})974 -> 0.0017s975-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})976 -> 0.0015s977-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})978 -> 0.0014s979-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})980 -> 0.0013s981-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})982 -> 0.0014s983-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})984 -> 0.0021s985-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})986 -> 0.0017s987-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})988 -> 0.0017s989-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})990 -> 0.0018s991-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})992 -> 0.0015s993-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})994 -> 0.0015s995-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})996 -> 0.0016s997-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})998 -> 0.0015s999-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1000 -> 0.0014s1001-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1002 -> 0.0014s1003-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1004 -> 0.0015s1005-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1006 -> 0.0018s1007-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1008 -> 0.0015s1009-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1010 -> 0.0019s1011-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1012 -> 0.0019s1013-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1014 -> 0.0017s1015-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1016 -> 0.0016s1017-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1018 -> 0.0017s1019-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1020 -> 0.0013s1021-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1022 -> 0.0014s1023-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1024 -> 0.0013s1025-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1026 -> 0.0017s1027-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1028 -> 0.0021s1029-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1030 -> 0.0017s1031-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1032 -> 0.0016s1033-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1034 -> 0.0016s1035-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1036 -> 0.0013s1037-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1038 -> 0.0016s1039-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1040 -> 0.0013s1041-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1042 -> 0.0015s1043-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1044 -> 0.0018s1045-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1046 -> 0.0015s1047-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1048 -> 0.0023s1049-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1050 -> 0.0017s1051-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1052 -> 0.0016s1053-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1054 -> 0.0015s1055-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1056 -> 0.0016s1057-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1058 -> 0.0020s1059-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1060 -> 0.0020s1061-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1062 -> 0.0019s1063-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1064 -> 0.0018s1065-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1066 -> 0.0018s1067-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1068 -> 0.0019s1069-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1070 -> 0.0017s1071-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1072 -> 0.0015s1073-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1074 -> 0.0016s1075-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1076 -> 0.0016s1077-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1078 -> 0.0017s1079-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1080 -> 0.0018s1081-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1082 -> 0.0014s1083-- 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.0016s1087-- 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.0018s1093-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1094 -> 0.0017s1095-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1096 -> 0.0016s1097-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1098 -> 0.0016s1099-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1100 -> 0.0022s1101-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1102 -> 0.0020s1103-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1104 -> 0.0020s1105-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1106 -> 0.0017s1107-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1108 -> 0.0022s1109-- 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.0014s1111-- 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.0019s1115-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1116 -> 0.0019s1117-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1118 -> 0.0015s1119-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1120 -> 0.0013s1121-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1122 -> 0.0013s1123-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1124 -> 0.0012s1125-- 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.0018s1129-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1130 -> 0.0019s1131-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1132 -> 0.0019s1133-- add_foreign_key("path_locks", "users")1134 -> 0.0019s1135-- add_foreign_key("personal_access_tokens", "users")1136 -> 0.0018s1137-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1138 -> 0.0018s1139-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1140 -> 0.0015s1141-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1142 -> 0.0018s1143-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1144 -> 0.0018s1145-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1146 -> 0.0017s1147-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1148 -> 0.0017s1149-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1150 -> 0.0018s1151-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1152 -> 0.0018s1153-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1154 -> 0.0018s1155-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1156 -> 0.0019s1157-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1158 -> 0.0016s1159-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1160 -> 0.0018s1161-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1162 -> 0.0019s1163-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1164 -> 0.0019s1165-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1166 -> 0.0020s1167-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1168 -> 0.0019s1169-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1170 -> 0.0018s1171-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1172 -> 0.0018s1173-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1174 -> 0.0018s1175-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1176 -> 0.0022s1177-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1178 -> 0.0019s1179-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1180 -> 0.0019s1181-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1182 -> 0.0013s1183-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1184 -> 0.0025s1185-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1186 -> 0.0029s1187-- 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.0022s1191-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1192 -> 0.0019s1193-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1194 -> 0.0017s1195-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1196 -> 0.0014s1197-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1198 -> 0.0025s1199-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1200 -> 0.0016s1201-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1202 -> 0.0019s1203-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1204 -> 0.0018s1205-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1206 -> 0.0015s1207-- add_foreign_key("protected_branch_merge_access_levels", "users")1208 -> 0.0018s1209-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1210 -> 0.0017s1211-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1212 -> 0.0013s1213-- add_foreign_key("protected_branch_push_access_levels", "users")1214 -> 0.0018s1215-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1216 -> 0.0019s1217-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1218 -> 0.0015s1219-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1220 -> 0.0018s1221-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1222 -> 0.0019s1223-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1224 -> 0.0017s1225-- 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.0018s1229-- 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.0016s1233-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1234 -> 0.0014s1235-- add_foreign_key("protected_tag_create_access_levels", "users")1236 -> 0.0017s1237-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1238 -> 0.0019s1239-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1240 -> 0.0014s1241-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1242 -> 0.0020s1243-- 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.0016s1249-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1250 -> 0.0020s1251-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1252 -> 0.0019s1253-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1254 -> 0.0017s1255-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1256 -> 0.0016s1257-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1258 -> 0.0015s1259-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1260 -> 0.0016s1261-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1262 -> 0.0018s1263-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1264 -> 0.0016s1265-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1266 -> 0.0019s1267-- 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.0015s1271-- 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.0022s1281-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1282 -> 0.0019s1283-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1284 -> 0.0014s1285-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1286 -> 0.0020s1287-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1288 -> 0.0015s1289-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1290 -> 0.0014s1291-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1292 -> 0.0015s1293-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1294 -> 0.0018s1295-- 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.0015s1299-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1300 -> 0.0020s1301-- 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.0020s1305-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1306 -> 0.0018s1307-- 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.0020s1311-- add_foreign_key("u2f_registrations", "users")1312 -> 0.0020s1313-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1314 -> 0.0018s1315-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1316 -> 0.0019s1317-- 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.0016s1321-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1322 -> 0.0020s1323-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1324 -> 0.0018s1325-- 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.0018s1329-- 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.0021s1333-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1334 -> 0.0017s1335-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1336 -> 0.0020s1337-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1338 -> 0.0020s1339-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1340 -> 0.0015s1341-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1342 -> 0.0014s1343-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1344 -> 0.0014s1345-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1346 -> 0.0020s1347-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1348 -> 0.0023s1349-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1350 -> 0.0019s1351-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1352 -> 0.0017s1353-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1354 -> 0.0018s1355-- 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.0016s1359-- 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.0018s1365-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1366 -> 0.0017s1367-- 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.0015s1375-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1376 -> 0.0013s1377-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1378 -> 0.0020s1379-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1380 -> 0.0014s1381-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1382 -> 0.0013s1383-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1384 -> 0.0013s1385-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1386 -> 0.0019s1387-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1388 -> 0.0016s1389-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1390 -> 0.0021s1391$ date1392Wed Oct 16 17:07:27 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.074509348 seconds...1407==> Setting up Gitaly...1408 Gitaly set up in 0.000291388 seconds...1409Auth::ContainerRegistryAuthenticationService1410 #full_access_token1411 behaves like an accessible1412 has the correct scope1413 behaves like a valid token1414 should include :token1415 should include "access"1416 a expirable1417 for default configuration1418 should not be within 2 of 2019-10-16 17:18:06 +00001419 for changed configuration1420 should be within 2 of 2019-10-16 17:18:06 +00001421 behaves like not a container repository factory1422 does not create a new container repository resource1423 #pull_access_token1424 behaves like an accessible1425 has the correct scope1426 behaves like a valid token1427 should include :token1428 should include "access"1429 a expirable1430 for default configuration1431 should not be within 2 of 2019-10-16 17:18:07 +00001432 for changed configuration1433 should be within 2 of 2019-10-16 17:18:07 +00001434 behaves like not a container repository factory1435 does not create a new container repository resource1436 user authorization1437 for registry catalog1438 disallow browsing for users without GitLab admin rights1439 behaves like an inaccessible1440 should include {"access" => []}1441 behaves like a valid token1442 should include :token1443 should include "access"1444 a expirable1445 for default configuration1446 should not be within 2 of 2019-10-16 17:18:07 +00001447 for changed configuration1448 should be within 2 of 2019-10-16 17:18:07 +00001449 behaves like not a container repository factory1450 does not create a new container repository resource1451 for private project1452 allow to use scope-less authentication1453 behaves like a valid token1454 should include :token1455 should include "access"1456 a expirable1457 for default configuration1458 should not be within 2 of 2019-10-16 17:18:08 +00001459 for changed configuration1460 should be within 2 of 2019-10-16 17:18:08 +00001461 allow developer to push images1462 behaves like a pushable1463 behaves like an accessible1464 has the correct scope1465 behaves like a valid token1466 should include :token1467 should include "access"1468 a expirable1469 for default configuration1470 should not be within 2 of 2019-10-16 17:18:09 +00001471 for changed configuration1472 should be within 2 of 2019-10-16 17:18:09 +00001473 behaves like container repository factory1474 creates a new container repository resource1475 disallow developer to delete images1476 behaves like an inaccessible1477 should include {"access" => []}1478 behaves like a valid token1479 should include :token1480 should include "access"1481 a expirable1482 for default configuration1483 should not be within 2 of 2019-10-16 17:18:11 +00001484 for changed configuration1485 should be within 2 of 2019-10-16 17:18:11 +00001486 behaves like not a container repository factory1487 does not create a new container repository resource1488 disallow developer to delete images since registry 2.71489 behaves like an inaccessible1490 should include {"access" => []}1491 behaves like a valid token1492 should include :token1493 should include "access"1494 a expirable1495 for default configuration1496 should not be within 2 of 2019-10-16 17:18:13 +00001497 for changed configuration1498 should be within 2 of 2019-10-16 17:18:13 +00001499 behaves like not a container repository factory1500 does not create a new container repository resource1501 allow reporter to pull images1502 when pulling from root level repository1503 behaves like a pullable1504 behaves like an accessible1505 has the correct scope1506 behaves like a valid token1507 should include :token1508 should include "access"1509 a expirable1510 for default configuration1511 should not be within 2 of 2019-10-16 17:18:14 +00001512 for changed configuration1513 should be within 2 of 2019-10-16 17:18:15 +00001514 behaves like not a container repository factory1515 does not create a new container repository resource1516 disallow reporter to delete images1517 behaves like an inaccessible1518 should include {"access" => []}1519 behaves like a valid token1520 should include :token1521 should include "access"1522 a expirable1523 for default configuration1524 should not be within 2 of 2019-10-16 17:18:16 +00001525 for changed configuration1526 should be within 2 of 2019-10-16 17:18:16 +00001527 behaves like not a container repository factory1528 does not create a new container repository resource1529 disallow reporter to delete images since registry 2.71530 behaves like an inaccessible1531 should include {"access" => []}1532 behaves like a valid token1533 should include :token1534 should include "access"1535 a expirable1536 for default configuration1537 should not be within 2 of 2019-10-16 17:18:18 +00001538 for changed configuration1539 should be within 2 of 2019-10-16 17:18:18 +00001540 behaves like not a container repository factory1541 does not create a new container repository resource1542 return a least of privileges1543 behaves like a pullable1544 behaves like an accessible1545 has the correct scope1546 behaves like a valid token1547 should include :token1548 should include "access"1549 a expirable1550 for default configuration1551 should not be within 2 of 2019-10-16 17:18:19 +00001552 for changed configuration1553 should be within 2 of 2019-10-16 17:18:20 +00001554 behaves like not a container repository factory1555 does not create a new container repository resource1556 disallow guest to pull or push images1557 behaves like an inaccessible1558 should include {"access" => []}1559 behaves like a valid token1560 should include :token1561 should include "access"1562 a expirable1563 for default configuration1564 should not be within 2 of 2019-10-16 17:18:21 +00001565 for changed configuration1566 should be within 2 of 2019-10-16 17:18:21 +00001567 behaves like not a container repository factory1568 does not create a new container repository resource1569 disallow guest to delete images1570 behaves like an inaccessible1571 should include {"access" => []}1572 behaves like a valid token1573 should include :token1574 should include "access"1575 a expirable1576 for default configuration1577 should not be within 2 of 2019-10-16 17:18:23 +00001578 for changed configuration1579 should be within 2 of 2019-10-16 17:18:23 +00001580 behaves like not a container repository factory1581 does not create a new container repository resource1582 disallow guest to delete images since registry 2.71583 behaves like an inaccessible1584 should include {"access" => []}1585 behaves like a valid token1586 should include :token1587 should include "access"1588 a expirable1589 for default configuration1590 should not be within 2 of 2019-10-16 17:18:25 +00001591 for changed configuration1592 should be within 2 of 2019-10-16 17:18:25 +00001593 behaves like not a container repository factory1594 does not create a new container repository resource1595 for public project1596 allow anyone to pull images1597 behaves like a pullable1598 behaves like an accessible1599 has the correct scope1600 behaves like a valid token1601 should include :token1602 should include "access"1603 a expirable1604 for default configuration1605 should not be within 2 of 2019-10-16 17:18:26 +00001606 for changed configuration1607 should be within 2 of 2019-10-16 17:18:26 +00001608 behaves like not a container repository factory1609 does not create a new container repository resource1610 disallow anyone to push images1611 behaves like an inaccessible1612 should include {"access" => []}1613 behaves like a valid token1614 should include :token1615 should include "access"1616 a expirable1617 for default configuration1618 should not be within 2 of 2019-10-16 17:18:27 +00001619 for changed configuration1620 should be within 2 of 2019-10-16 17:18:27 +00001621 behaves like not a container repository factory1622 does not create a new container repository resource1623 disallow anyone to delete images1624 behaves like an inaccessible1625 should include {"access" => []}1626 behaves like a valid token1627 should include :token1628 should include "access"1629 a expirable1630 for default configuration1631 should not be within 2 of 2019-10-16 17:18:28 +00001632 for changed configuration1633 should be within 2 of 2019-10-16 17:18:29 +00001634 behaves like not a container repository factory1635 does not create a new container repository resource1636 disallow anyone to delete images since registry 2.71637 behaves like an inaccessible1638 should include {"access" => []}1639 behaves like a valid token1640 should include :token1641 should include "access"1642 a expirable1643 for default configuration1644 should not be within 2 of 2019-10-16 17:18:30 +00001645 for changed configuration1646 should be within 2 of 2019-10-16 17:18:30 +00001647 behaves like not a container repository factory1648 does not create a new container repository resource1649 when repository name is invalid1650 behaves like an inaccessible1651 should include {"access" => []}1652 behaves like a valid token1653 should include :token1654 should include "access"1655 a expirable1656 for default configuration1657 should not be within 2 of 2019-10-16 17:18:30 +00001658 for changed configuration1659 should be within 2 of 2019-10-16 17:18:30 +00001660 behaves like not a container repository factory1661 does not create a new container repository resource1662 for internal project1663 for internal user1664 allow anyone to pull images1665 behaves like a pullable1666 behaves like an accessible1667 has the correct scope1668 behaves like a valid token1669 should include :token1670 should include "access"1671 a expirable1672 for default configuration1673 should not be within 2 of 2019-10-16 17:18:31 +00001674 for changed configuration1675 should be within 2 of 2019-10-16 17:18:31 +00001676 behaves like not a container repository factory1677 does not create a new container repository resource1678 disallow anyone to push images1679 behaves like an inaccessible1680 should include {"access" => []}1681 behaves like a valid token1682 should include :token1683 should include "access"1684 a expirable1685 for default configuration1686 should not be within 2 of 2019-10-16 17:18:33 +00001687 for changed configuration1688 should be within 2 of 2019-10-16 17:18:33 +00001689 behaves like not a container repository factory1690 does not create a new container repository resource1691 disallow anyone to delete images1692 behaves like an inaccessible1693 should include {"access" => []}1694 behaves like a valid token1695 should include :token1696 should include "access"1697 a expirable1698 for default configuration1699 should not be within 2 of 2019-10-16 17:18:34 +00001700 for changed configuration1701 should be within 2 of 2019-10-16 17:18:34 +00001702 behaves like not a container repository factory1703 does not create a new container repository resource1704 disallow anyone to delete images since registry 2.71705 behaves like an inaccessible1706 should include {"access" => []}1707 behaves like a valid token1708 should include :token1709 should include "access"1710 a expirable1711 for default configuration1712 should not be within 2 of 2019-10-16 17:18:35 +00001713 for changed configuration1714 should be within 2 of 2019-10-16 17:18:35 +00001715 behaves like not a container repository factory1716 does not create a new container repository resource1717 for external user1718 disallow anyone to pull or push images1719 behaves like an inaccessible1720 should include {"access" => []}1721 behaves like a valid token1722 should include :token1723 should include "access"1724 a expirable1725 for default configuration1726 should not be within 2 of 2019-10-16 17:18:36 +00001727 for changed configuration1728 should be within 2 of 2019-10-16 17:18:37 +00001729 behaves like not a container repository factory1730 does not create a new container repository resource1731 disallow anyone to delete images1732 behaves like an inaccessible1733 should include {"access" => []}1734 behaves like a valid token1735 should include :token1736 should include "access"1737 a expirable1738 for default configuration1739 should not be within 2 of 2019-10-16 17:18:38 +00001740 for changed configuration1741 should be within 2 of 2019-10-16 17:18:38 +00001742 behaves like not a container repository factory1743 does not create a new container repository resource1744 disallow anyone to delete images since registry 2.71745 behaves like an inaccessible1746 should include {"access" => []}1747 behaves like a valid token1748 should include :token1749 should include "access"1750 a expirable1751 for default configuration1752 should not be within 2 of 2019-10-16 17:18:39 +00001753 for changed configuration1754 should be within 2 of 2019-10-16 17:18:39 +00001755 behaves like not a container repository factory1756 does not create a new container repository resource1757 delete authorized as maintainer1758 behaves like a valid token1759 should include :token1760 should include "access"1761 a expirable1762 for default configuration1763 should not be within 2 of 2019-10-16 17:18:40 +00001764 for changed configuration1765 should be within 2 of 2019-10-16 17:18:41 +00001766 allow to delete images1767 behaves like a deletable1768 behaves like an accessible1769 has the correct scope1770 behaves like a valid token1771 should include :token1772 should include "access"1773 a expirable1774 for default configuration1775 should not be within 2 of 2019-10-16 17:18:42 +00001776 for changed configuration1777 should be within 2 of 2019-10-16 17:18:42 +00001778 allow to delete images since registry 2.71779 behaves like a deletable since registry 2.71780 behaves like an accessible1781 has the correct scope1782 behaves like a valid token1783 should include :token1784 should include "access"1785 a expirable1786 for default configuration1787 should not be within 2 of 2019-10-16 17:18:43 +00001788 for changed configuration1789 should be within 2 of 2019-10-16 17:18:43 +00001790 build authorized as user1791 allow to use offline_token1792 behaves like an authenticated1793 should include :token1794 should include "access"1795 behaves like a valid token1796 should include :token1797 should include "access"1798 a expirable1799 for default configuration1800 should not be within 2 of 2019-10-16 17:18:45 +00001801 for changed configuration1802 should be within 2 of 2019-10-16 17:18:45 +00001803 allow to pull and push images1804 behaves like a pullable and pushable1805 behaves like an accessible1806 has the correct scope1807 behaves like a valid token1808 should include :token1809 should include "access"1810 a expirable1811 for default configuration1812 should not be within 2 of 2019-10-16 17:18:46 +00001813 for changed configuration1814 should be within 2 of 2019-10-16 17:18:46 +00001815 behaves like container repository factory1816 creates a new container repository resource1817 allow to delete images since registry 2.71818 behaves like a deletable since registry 2.71819 behaves like an accessible1820 has the correct scope1821 behaves like a valid token1822 should include :token1823 should include "access"1824 a expirable1825 for default configuration1826 should not be within 2 of 2019-10-16 17:18:48 +00001827 for changed configuration1828 should be within 2 of 2019-10-16 17:18:48 +00001829 disallow to delete images1830 behaves like an inaccessible1831 should include {"access" => []}1832 behaves like a valid token1833 should include :token1834 should include "access"1835 a expirable1836 for default configuration1837 should not be within 2 of 2019-10-16 17:18:49 +00001838 for changed configuration1839 should be within 2 of 2019-10-16 17:18:49 +00001840 for other projects1841 when pulling1842 allow for public1843 behaves like a pullable1844 behaves like an accessible1845 has the correct scope1846 behaves like a valid token1847 should include :token1848 should include "access"1849 a expirable1850 for default configuration1851 should not be within 2 of 2019-10-16 17:18:51 +00001852 for changed configuration1853 should be within 2 of 2019-10-16 17:18:51 +00001854 behaves like not a container repository factory1855 does not create a new container repository resource1856 for private1857 behaves like pullable for being team member1858 when you are not member1859 behaves like an inaccessible1860 should include {"access" => []}1861 behaves like a valid token1862 should include :token1863 should include "access"1864 a expirable1865 for default configuration1866 should not be within 2 of 2019-10-16 17:18:53 +00001867 for changed configuration1868 should be within 2 of 2019-10-16 17:18:53 +00001869 behaves like not a container repository factory1870 does not create a new container repository resource1871 when you are member1872 behaves like a pullable1873 behaves like an accessible1874 has the correct scope1875 behaves like a valid token1876 should include :token1877 should include "access"1878 a expirable1879 for default configuration1880 should not be within 2 of 2019-10-16 17:18:56 +00001881 for changed configuration1882 should be within 2 of 2019-10-16 17:18:56 +00001883 behaves like not a container repository factory1884 does not create a new container repository resource1885 when you are owner1886 behaves like a pullable1887 behaves like an accessible1888 has the correct scope1889 behaves like a valid token1890 should include :token1891 should include "access"1892 a expirable1893 for default configuration1894 should not be within 2 of 2019-10-16 17:18:59 +00001895 for changed configuration1896 should be within 2 of 2019-10-16 17:18:59 +00001897 behaves like not a container repository factory1898 does not create a new container repository resource1899 when you are admin1900 when you are not member1901 behaves like an inaccessible1902 should include {"access" => []}1903 behaves like a valid token1904 should include :token1905 should include "access"1906 a expirable1907 for default configuration1908 should not be within 2 of 2019-10-16 17:19:01 +00001909 for changed configuration1910 should be within 2 of 2019-10-16 17:19:02 +00001911 behaves like not a container repository factory1912 does not create a new container repository resource1913 when you are member1914 behaves like a pullable1915 behaves like an accessible1916 has the correct scope1917 behaves like a valid token1918 should include :token1919 should include "access"1920 a expirable1921 for default configuration1922 should not be within 2 of 2019-10-16 17:19:04 +00001923 for changed configuration1924 should be within 2 of 2019-10-16 17:19:04 +00001925 behaves like not a container repository factory1926 does not create a new container repository resource1927 when you are owner1928 behaves like a pullable1929 behaves like an accessible1930 has the correct scope1931 behaves like a valid token1932 should include :token1933 should include "access"1934 a expirable1935 for default configuration1936 should not be within 2 of 2019-10-16 17:19:07 +00001937 for changed configuration1938 should be within 2 of 2019-10-16 17:19:07 +00001939 behaves like not a container repository factory1940 does not create a new container repository resource1941 when pushing1942 disallow for all1943 when you are member1944 behaves like an inaccessible1945 should include {"access" => []}1946 behaves like a valid token1947 should include :token1948 should include "access"1949 a expirable1950 for default configuration1951 should not be within 2 of 2019-10-16 17:19:09 +00001952 for changed configuration1953 should be within 2 of 2019-10-16 17:19:10 +00001954 behaves like not a container repository factory1955 does not create a new container repository resource1956 when you are owner1957 behaves like an inaccessible1958 should include {"access" => []}1959 behaves like a valid token1960 should include :token1961 should include "access"1962 a expirable1963 for default configuration1964 should not be within 2 of 2019-10-16 17:19:12 +00001965 for changed configuration1966 should be within 2 of 2019-10-16 17:19:12 +00001967 behaves like not a container repository factory1968 does not create a new container repository resource1969 for project without container registry1970 disallow when pulling1971 behaves like an inaccessible1972 should include {"access" => []}1973 behaves like a valid token1974 should include :token1975 should include "access"1976 a expirable1977 for default configuration1978 should not be within 2 of 2019-10-16 17:19:14 +00001979 for changed configuration1980 should be within 2 of 2019-10-16 17:19:15 +00001981 behaves like not a container repository factory1982 does not create a new container repository resource1983 registry catalog browsing authorized as admin1984 behaves like a browsable1985 has the correct scope1986 behaves like a valid token1987 should include :token1988 should include "access"1989 a expirable1990 for default configuration1991 should not be within 2 of 2019-10-16 17:19:15 +00001992 for changed configuration1993 should be within 2 of 2019-10-16 17:19:15 +00001994 behaves like not a container repository factory1995 does not create a new container repository resource1996 support for multiple scopes1997 user has access to all projects1998 behaves like a browsable1999 has the correct scope2000 behaves like a valid token2001 should include :token2002 should include "access"2003 a expirable2004 for default configuration2005 should not be within 2 of 2019-10-16 17:19:17 +00002006 for changed configuration2007 should be within 2 of 2019-10-16 17:19:17 +00002008 behaves like not a container repository factory2009 does not create a new container repository resource2010 user only has access to internal project2011 behaves like a browsable2012 has the correct scope2013 behaves like a valid token2014 should include :token2015 should include "access"2016 a expirable2017 for default configuration2018 should not be within 2 of 2019-10-16 17:19:19 +00002019 for changed configuration2020 should be within 2 of 2019-10-16 17:19:20 +00002021 behaves like not a container repository factory2022 does not create a new container repository resource2023 anonymous access is rejected2024 behaves like a forbidden2025 should include {:http_status => 403}2026 should not include :token2027 unauthorized2028 disallow to use scope-less authentication2029 behaves like a forbidden2030 should include {:http_status => 403}2031 should not include :token2032 behaves like not a container repository factory2033 does not create a new container repository resource2034 for invalid scope2035 behaves like a forbidden2036 should include {:http_status => 403}2037 should not include :token2038 behaves like not a container repository factory2039 does not create a new container repository resource2040 for private project2041 behaves like a forbidden2042 should include {:http_status => 403}2043 should not include :token2044 for public project2045 when pulling and pushing2046 behaves like a pullable2047 behaves like an accessible2048 has the correct scope2049 behaves like a valid token2050 should include :token2051 should include "access"2052 a expirable2053 for default configuration2054 should not be within 2 of 2019-10-16 17:19:22 +00002055 for changed configuration2056 should be within 2 of 2019-10-16 17:19:22 +00002057 behaves like not a container repository factory2058 does not create a new container repository resource2059 when pushing2060 behaves like a forbidden2061 should include {:http_status => 403}2062 should not include :token2063 behaves like not a container repository factory2064 does not create a new container repository resource2065 for registry catalog2066 behaves like a forbidden2067 should include {:http_status => 403}2068 should not include :token2069 behaves like not a container repository factory2070 does not create a new container repository resource2071 for deploy tokens2072 when deploy token has read_registry as a scope2073 for public project2074 when pulling2075 behaves like a pullable2076 behaves like an accessible2077 has the correct scope2078 behaves like a valid token2079 should include :token2080 should include "access"2081 a expirable2082 for default configuration2083 should not be within 2 of 2019-10-16 17:19:24 +00002084 for changed configuration2085 should be within 2 of 2019-10-16 17:19:24 +00002086 when pushing2087 behaves like an inaccessible2088 should include {"access" => []}2089 behaves like a valid token2090 should include :token2091 should include "access"2092 a expirable2093 for default configuration2094 should not be within 2 of 2019-10-16 17:19:25 +00002095 for changed configuration2096 should be within 2 of 2019-10-16 17:19:25 +00002097 for internal project2098 when pulling2099 behaves like a pullable2100 behaves like an accessible2101 has the correct scope2102 behaves like a valid token2103 should include :token2104 should include "access"2105 a expirable2106 for default configuration2107 should not be within 2 of 2019-10-16 17:19:26 +00002108 for changed configuration2109 should be within 2 of 2019-10-16 17:19:26 +00002110 when pushing2111 behaves like an inaccessible2112 should include {"access" => []}2113 behaves like a valid token2114 should include :token2115 should include "access"2116 a expirable2117 for default configuration2118 should not be within 2 of 2019-10-16 17:19:27 +00002119 for changed configuration2120 should be within 2 of 2019-10-16 17:19:27 +00002121 for private project2122 when pulling2123 behaves like a pullable2124 behaves like an accessible2125 has the correct scope2126 behaves like a valid token2127 should include :token2128 should include "access"2129 a expirable2130 for default configuration2131 should not be within 2 of 2019-10-16 17:19:28 +00002132 for changed configuration2133 should be within 2 of 2019-10-16 17:19:28 +00002134 when pushing2135 behaves like an inaccessible2136 should include {"access" => []}2137 behaves like a valid token2138 should include :token2139 should include "access"2140 a expirable2141 for default configuration2142 should not be within 2 of 2019-10-16 17:19:29 +00002143 for changed configuration2144 should be within 2 of 2019-10-16 17:19:29 +00002145 when deploy token does not have read_registry scope2146 for public project2147 when pulling2148 behaves like a pullable2149 behaves like an accessible2150 has the correct scope2151 behaves like a valid token2152 should include :token2153 should include "access"2154 a expirable2155 for default configuration2156 should not be within 2 of 2019-10-16 17:19:30 +00002157 for changed configuration2158 should be within 2 of 2019-10-16 17:19:30 +00002159 for internal project2160 when pulling2161 behaves like an inaccessible2162 should include {"access" => []}2163 behaves like a valid token2164 should include :token2165 should include "access"2166 a expirable2167 for default configuration2168 should not be within 2 of 2019-10-16 17:19:31 +00002169 for changed configuration2170 should be within 2 of 2019-10-16 17:19:31 +00002171 for private project2172 when pulling2173 behaves like an inaccessible2174 should include {"access" => []}2175 behaves like a valid token2176 should include :token2177 should include "access"2178 a expirable2179 for default configuration2180 should not be within 2 of 2019-10-16 17:19:32 +00002181 for changed configuration2182 should be within 2 of 2019-10-16 17:19:32 +00002183 when deploy token is not related to the project2184 for public project2185 when pulling2186 behaves like a pullable2187 behaves like an accessible2188 has the correct scope2189 behaves like a valid token2190 should include :token2191 should include "access"2192 a expirable2193 for default configuration2194 should not be within 2 of 2019-10-16 17:19:33 +00002195 for changed configuration2196 should be within 2 of 2019-10-16 17:19:33 +00002197 for internal project2198 when pulling2199 behaves like an inaccessible2200 should include {"access" => []}2201 behaves like a valid token2202 should include :token2203 should include "access"2204 a expirable2205 for default configuration2206 should not be within 2 of 2019-10-16 17:19:34 +00002207 for changed configuration2208 should be within 2 of 2019-10-16 17:19:34 +00002209 for private project2210 when pulling2211 behaves like an inaccessible2212 should include {"access" => []}2213 behaves like a valid token2214 should include :token2215 should include "access"2216 a expirable2217 for default configuration2218 should not be within 2 of 2019-10-16 17:19:35 +00002219 for changed configuration2220 should be within 2 of 2019-10-16 17:19:35 +00002221 when deploy token has been revoked2222 for public project2223 behaves like a pullable2224 behaves like an accessible2225 has the correct scope2226 behaves like a valid token2227 should include :token2228 should include "access"2229 a expirable2230 for default configuration2231 should not be within 2 of 2019-10-16 17:19:35 +00002232 for changed configuration2233 should be within 2 of 2019-10-16 17:19:36 +00002234 for internal project2235 behaves like an inaccessible2236 should include {"access" => []}2237 behaves like a valid token2238 should include :token2239 should include "access"2240 a expirable2241 for default configuration2242 should not be within 2 of 2019-10-16 17:19:37 +00002243 for changed configuration2244 should be within 2 of 2019-10-16 17:19:37 +00002245 for private project2246 behaves like an inaccessible2247 should include {"access" => []}2248 behaves like a valid token2249 should include :token2250 should include "access"2251 a expirable2252 for default configuration2253 should not be within 2 of 2019-10-16 17:19:38 +00002254 for changed configuration2255 should be within 2 of 2019-10-16 17:19:38 +00002256 user authorization2257 with multiple scopes2258 allow developer to push images2259 behaves like a pushable2260 behaves like an accessible2261 has the correct scope2262 behaves like a valid token2263 should include :token2264 should include "access"2265 a expirable2266 for default configuration2267 should not be within 2 of 2019-10-16 17:19:39 +00002268 for changed configuration2269 should be within 2 of 2019-10-16 17:19:39 +00002270 behaves like container repository factory2271 creates a new container repository resource2272CycleAnalytics#production2273 start condition: issue is created2274 end condition: merge request that closes issue is deployed to production22752019-10-21T17:09:40.315Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>1}22762019-10-30T17:09:43.853Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>2}22772019-11-10T17:09:45.837Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>3}22782019-11-19T17:09:47.866Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>4}22792019-11-29T17:09:49.768Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>5}2280 finds the median of available durations between the two conditions2281 when the data belongs to another project22822019-10-24T17:09:51.855Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>6}2283 returns nil2284 when the end condition happens before the start condition22852019-10-16T17:09:52.705Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>7}2286 returns nil2287 start condition NOT PRESENT: issue is created2288 end condition: merge request that closes issue is deployed to production22892019-10-24T17:09:54.097Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>8}2290 returns nil2291 start condition: issue is created2292 end condition NOT PRESENT: merge request that closes issue is deployed to production2293 returns nil2294 start condition: issue is created2295 end condition: production deploy happens after merge request is merged (along with other changes)22962019-10-19T17:09:55.071Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>9}22972019-10-30T17:09:57.191Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>10}22982019-11-07T17:09:59.160Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>11}22992019-11-18T17:10:00.968Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>12}23002019-11-30T17:10:02.957Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>13}2301 finds the median of available durations between the two conditions2302 when the data belongs to another project23032019-10-19T17:10:04.948Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>14}2304 returns nil2305 when the end condition happens before the start condition23062019-10-16T17:10:05.826Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>15}2307 returns nil2308 start condition NOT PRESENT: issue is created2309 end condition: production deploy happens after merge request is merged (along with other changes)23102019-10-23T17:10:07.523Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>16}2311 returns nil2312 start condition: issue is created2313 end condition NOT PRESENT: production deploy happens after merge request is merged (along with other changes)2314 returns nil2315 start condition: issue is created2316 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)23172019-10-19T17:10:08.430Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>17}23182019-10-19T17:10:08.430Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>18}23192019-10-28T17:10:10.948Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>19}23202019-10-28T17:10:10.948Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>20}23212019-11-09T17:10:13.481Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>21}23222019-11-09T17:10:13.481Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>22}23232019-11-16T17:10:15.944Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>23}23242019-11-16T17:10:15.944Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>24}23252019-11-26T17:10:18.457Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>25}23262019-11-26T17:10:18.457Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>26}2327 finds the median of available durations between the two conditions2328 when the data belongs to another project23292019-10-24T17:10:21.137Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>27}23302019-10-24T17:10:21.137Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>28}2331 returns nil2332 when the end condition happens before the start condition23332019-10-16T17:10:22.566Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>29}23342019-10-16T17:10:22.566Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>30}2335 returns nil2336 start condition NOT PRESENT: issue is created2337 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)23382019-10-23T17:10:24.470Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>31}23392019-10-24T17:10:24.470Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>32}2340 returns nil2341 start condition: issue is created2342 end condition NOT PRESENT: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2343 returns nil2344 when none of the start / end conditions are matched2345 returns nil2346 when a regular merge request (that doesn't close the issue) is merged and deployed23472019-10-16T17:10:27.190Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>33}2348 returns nil2349 when the deployment happens to a non-production environment23502019-10-16T17:10:29.252Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>34}2351 returns nil2352ProjectsHelper2353 #error_tracking_setting_project_json2354 error tracking setting does not exist2355 returns nil2356 error tracking setting exists2357 api_url present2358 returns error tracking json2359 api_url not present2360 returns nil2361 #project_status_css_class2362 returns appropriate class2363 can_change_visibility_level?2364 returns false if there are no appropriate permissions2365 returns true if there are permissions and it is not fork2366 allows visibility level to be changed if the project is forked2367 forks2368 returns false if there are permissions and origin project is PRIVATE2369 returns true if there are permissions and origin project is INTERNAL2370 #can_disable_emails?2371 returns true for the project owner2372 returns false for anyone else2373 returns false if group emails disabled2374 readme_cache_key2375 returns a valid cach key2376 returns a valid cache key if HEAD does not exist2377 #project_list_cache_key2378 includes the route2379 includes the project2380 includes the last activity date2381 includes the controller name2382 includes the controller action2383 includes the application settings2384 includes a version2385 includes wether or not the user can read cross project2386 includes the pipeline status when there is a status2387 includes the user max member access2388 #load_pipeline_status2389 loads the pipeline status in batch2390 #show_no_ssh_key_message?2391 user has no keys2392 returns true2393 user has an ssh key2394 returns false2395 #show_no_password_message?2396 user has password set2397 returns false2398 user has hidden the message2399 returns false2400 user requires a password for Git2401 returns true2402 user requires a personal access token for Git2403 returns true2404 #link_to_set_password2405 password authentication is enabled for Git2406 returns link to set a password2407 password authentication is disabled for Git2408 returns link to create a personal access token2409 #link_to_project2410 returns an HTML link to the project2411 #link_to_member_avatar2412 returns image tag for member avatar2413 returns image tag with avatar class2414 #link_to_member2415 using the default options2416 returns an HTML link to the user2417 HTML escapes the name of the user2418 default_clone_protocol2419 when user is not logged in and gitlab protocol is HTTP2420 returns HTTP2421 when user is not logged in and gitlab protocol is HTTPS2422 returns HTTPS2423 #last_push_event2424 returns recent push on the current project2425 when there is no current_user2426 returns nil2427 #get_project_nav_tabs2428 when builds feature is enabled2429 does include pipelines tab2430 when builds feature is disabled2431 when user has access to builds2432 does include pipelines tab2433 when user does not have access to builds2434 does not include pipelines tab2435 when project has external wiki2436 includes external wiki tab2437 when project does not have external wiki2438 does not include external wiki tab2439 #show_projects2440 returns true when there are projects2441 returns true when there are no projects but a name is given2442 returns true when there are no projects but personal is present2443 returns false when there are no projects and there is no name2444 #push_to_create_project_command2445 returns the command to push to create project over HTTP2446 returns the command to push to create project over SSH2447 #any_projects?2448 returns true when projects will be returned2449 returns false when no projects will be returned2450 returns true when using a non-empty Array2451 returns false when using an empty Array2452 only executes a single query when a LIMIT is applied2453 #git_user_name2454 parses quotes in name2455 #git_user_email2456 not logged-in2457 returns your@email.com2458 user logged in2459 user has no configured commit email2460 returns the primary email2461 user has a configured commit email2462 returns the commit email2463 show_xcode_link2464 when the repository is xcode compatible2465 returns false if the visitor is not using macos2466 returns true if the visitor is using macos2467 when the repository is not xcode compatible2468 returns false if the visitor is not using macos2469 returns false if the visitor is using macos2470 link_to_bfg2471 generates a hardcoded link to the BFG Repo-Cleaner2472 #explore_projects_tab?2473 returns true when on the "All" tab under "Explore projects"2474 returns true when on the "Trending" tab under "Explore projects"2475 returns true when on the "Starred" tab under "Explore projects"2476 returns false when on the "Your projects" tab2477 #show_merge_request_count2478 when the feature flag is enabled2479 returns true if compact mode is disabled2480 returns false if compact mode is enabled2481 when the feature flag is disabled2482 always returns false2483 disabled flag2484 returns false if disabled flag is true2485 returns true if disabled flag is false2486 #show_issue_count?2487 when the feature flag is enabled2488 returns true if compact mode is disabled2489 returns false if compact mode is enabled2490 when the feature flag is disabled2491 always returns false2492 disabled flag2493 returns false if disabled flag is true2494 returns true if disabled flag is false2495 #show_auto_devops_implicitly_enabled_banner?2496 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false2497 should eq false2498 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2499 should eq false2500 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false2501 should eq false2502 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false2503 should eq false2504 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false2505 should eq false2506 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false2507 should eq false2508 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false2509 should eq false2510 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2511 should eq false2512 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false2513 should eq false2514 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false2515 should eq false2516 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: true2517 should eq true2518 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: true2519 should eq true2520 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false2521 should eq false2522 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2523 should eq false2524 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false2525 should eq false2526 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false2527 should eq false2528 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false2529 should eq false2530 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false2531 should eq false2532 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false2533 should eq false2534 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2535 should eq false2536 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false2537 should eq false2538 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false2539 should eq false2540 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false2541 should eq false2542 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false2543 should eq false2544 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false2545 should eq false2546 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2547 should eq false2548 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false2549 should eq false2550 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false2551 should eq false2552 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false2553 should eq false2554 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false2555 should eq false2556 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false2557 should eq false2558 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false2559 should eq false2560 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false2561 should eq false2562 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false2563 should eq false2564 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false2565 should eq false2566 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false2567 should eq false2568 #can_import_members?2569 returns false if user cannot admin_project_member2570 returns true if user can admin_project_member2571 #metrics_external_dashboard_url2572 metrics_setting exists2573 returns external_dashboard_url2574 metrics_setting does not exist2575 returns nil2576 #grafana_integration_url2577 should eq nil2578 grafana integration exists2579 should eq "https://grafana.com"2580 #grafana_integration_token2581 should eq nil2582 grafana integration exists2583 should eq "d6e4d686755fa65a41ca"2584Members::DestroyService2585 with a member with access2586 when current user cannot destroy the given member2587 with a project member2588 behaves like a service raising Gitlab::Access::AccessDeniedError2589 raises Gitlab::Access::AccessDeniedError2590 behaves like a service destroying a member with access2591 invalidates cached counts for assigned issues and merge requests2592 behaves like a service destroying a member2593 destroys the member2594 destroys member notification_settings2595 with a group member2596 behaves like a service raising Gitlab::Access::AccessDeniedError2597 raises Gitlab::Access::AccessDeniedError2598 behaves like a service destroying a member with access2599 invalidates cached counts for assigned issues and merge requests2600 behaves like a service destroying a member2601 destroys the member2602 destroys member notification_settings2603 when current user can destroy the given member2604 with a project member2605 behaves like a service destroying a member with access2606 invalidates cached counts for assigned issues and merge requests2607 behaves like a service destroying a member2608 destroys the member2609 destroys member notification_settings2610 with a group member2611 behaves like a service destroying a member with access2612 invalidates cached counts for assigned issues and merge requests2613 behaves like a service destroying a member2614 destroys the member2615 destroys member notification_settings2616 with an access requester2617 when current user cannot destroy the given access requester2618 behaves like a service raising Gitlab::Access::AccessDeniedError2619 raises Gitlab::Access::AccessDeniedError2620 behaves like a service destroying a member2621 destroys the member2622 destroys member notification_settings2623 behaves like a service raising Gitlab::Access::AccessDeniedError2624 raises Gitlab::Access::AccessDeniedError2625 behaves like a service destroying a member2626 destroys the member2627 destroys member notification_settings2628 when current user can destroy the given access requester2629 behaves like a service destroying an access requester2630 calls Member#after_decline_request2631 behaves like a service destroying a member2632 destroys the member2633 destroys member notification_settings2634 when current user is the member2635 does not call Member#after_decline_request2636 behaves like a service destroying an access requester2637 calls Member#after_decline_request2638 behaves like a service destroying a member2639 destroys the member2640 destroys member notification_settings2641 when current user is the member2642 does not call Member#after_decline_request2643 with an invited user2644 when current user cannot destroy the given invited user2645 behaves like a service raising Gitlab::Access::AccessDeniedError2646 raises Gitlab::Access::AccessDeniedError2647 behaves like a service destroying a member2648 destroys the member2649 destroys member notification_settings2650 behaves like a service raising Gitlab::Access::AccessDeniedError2651 raises Gitlab::Access::AccessDeniedError2652 behaves like a service destroying a member2653 destroys the member2654 destroys member notification_settings2655 when current user can destroy the given invited user2656 behaves like a service destroying a member2657 destroys the member2658 destroys member notification_settings2659 behaves like a service destroying a member2660 destroys the member2661 destroys member notification_settings2662 subresources2663 removes the project membership2664 removes the group membership2665 removes the subgroup membership2666 removes the subsubgroup membership2667 removes the subsubproject membership2668 does not remove the user from the control project2669Ci::JobArtifact2670 should respond to #file2671 should respond to #created_at2672 should respond to #updated_at2673 should delegate #open to the #file object2674 should delegate #exists? to the #file object2675 Associations2676 should belong to project required:2677 should belong to job required:2678 behaves like having unique enum values2679 has unique values in "file_type"2680 has unique values in "file_format"2681 has unique values in "file_location"2682 behaves like UpdateProjectStatistics2683 should be a new record2684 when creating2685 updates the project statistics2686 schedules a namespace statistics worker2687 when updating2688 updates project statistics2689 schedules a namespace statistics worker2690 avoids N + 1 queries2691 when destroying2692 updates the project statistics2693 schedules a namespace statistics worker2694 when it is destroyed from the project level2695 does not update the project statistics2696 does not schedule a namespace statistics worker2697 .with_reports2698 should be empty2699 when there are reports2700 should eq [#<Ci::JobArtifact id: 12, project_id: 615, job_id: 47, file_type: "junit", size: 568, created_at: "2... file: "codequality.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil>]2701 .test_reports2702 when there is a test report2703 should eq [#<Ci::JobArtifact id: 14, project_id: 617, job_id: 49, file_type: "junit", size: 568, created_at: "2...il, file: "junit.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil>]2704 when there are no test reports2705 should be empty2706 .erasable2707 when there is an erasable artifact2708 should eq [#<Ci::JobArtifact id: 16, project_id: 619, job_id: 51, file_type: "junit", size: 568, created_at: "2...il, file: "junit.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil>]2709 when there are no erasable artifacts2710 should be empty2711 .archived_trace_exists_for?2712 when the specified job_id exists2713 should be truthy2714 when the job does have archived trace2715 should be falsy2716 when the specified job_id does not exist2717 should be falsy2718 callbacks2719 #schedule_background_upload2720 when object storage is disabled2721 does not schedule the migration2722 when object storage is enabled2723 when background upload is enabled2724 schedules the model for migration2725 when background upload is disabled2726 schedules the model for migration2727 creating the artifact2728 sets the size from the file size2729 updating the artifact file2730 updates the artifact size2731 validates file format2732 when archive type with zip format2733 should be valid2734 when archive type without format specification2735 should not be valid2736 when archive type with other formats2737 should not be valid2738 should not be valid2739 when metadata type with gzip format2740 should be valid2741 when metadata type without format specification2742 should not be valid2743 when metadata type with other formats2744 should not be valid2745 should not be valid2746 when junit type with gzip format2747 should be valid2748 when junit type without format specification2749 should not be valid2750 when junit type with other formats2751 should not be valid2752 should not be valid2753 when metrics type with gzip format2754 should be valid2755 when metrics type without format specification2756 should not be valid2757 when metrics type with other formats2758 should not be valid2759 should not be valid2760 when codequality type with raw format2761 should be valid2762 when codequality type without format specification2763 should not be valid2764 when codequality type with other formats2765 should not be valid2766 should not be valid2767 when sast type with raw format2768 should be valid2769 when sast type without format specification2770 should not be valid2771 when sast type with other formats2772 should not be valid2773 should not be valid2774 when dependency_scanning type with raw format2775 should be valid2776 when dependency_scanning type without format specification2777 should not be valid2778 when dependency_scanning type with other formats2779 should not be valid2780 should not be valid2781 when container_scanning type with raw format2782 should be valid2783 when container_scanning type without format specification2784 should not be valid2785 when container_scanning type with other formats2786 should not be valid2787 should not be valid2788 when dast type with raw format2789 should be valid2790 when dast type without format specification2791 should not be valid2792 when dast type with other formats2793 should not be valid2794 should not be valid2795 when license_management type with raw format2796 should be valid2797 when license_management type without format specification2798 should not be valid2799 when license_management type with other formats2800 should not be valid2801 should not be valid2802 when performance type with raw format2803 should be valid2804 when performance type without format specification2805 should not be valid2806 when performance type with other formats2807 should not be valid2808 should not be valid2809 validates DEFAULT_FILE_NAMES2810 expects archive to be included2811 expects metadata to be included2812 expects trace to be included2813 expects junit to be included2814 expects sast to be included2815 expects dependency_scanning to be included2816 expects container_scanning to be included2817 expects dast to be included2818 expects codequality to be included2819 expects license_management to be included2820 expects performance to be included2821 expects metrics to be included2822 validates TYPE_AND_FORMAT_PAIRS2823 expects archive to be included2824 expects metadata to be included2825 expects trace to be included2826 expects junit to be included2827 expects sast to be included2828 expects dependency_scanning to be included2829 expects container_scanning to be included2830 expects dast to be included2831 expects codequality to be included2832 expects license_management to be included2833 expects performance to be included2834 expects metrics to be included2835 #file2836 the uploader api2837 should respond to #store_dir2838 should respond to #cache_dir2839 should respond to #work_dir2840 #each_blob2841 when file format is gzip2842 when gzip file contains one file2843 iterates blob once2844 when gzip file contains three files2845 iterates blob three times2846 when file format is raw2847 iterates blob once2848 when there are no adapters for the file format2849 raises an error2850 #expire_in2851 should be nil2852 when expire_at is specified2853 should be within 5 of 604799.9996622192854 #expire_in=2855 when assigning valid duration2856 when assigning invalid duration2857 when resetting value2858 when setting to 02859 file is being stored2860 when object has nil store2861 is stored locally2862 when existing object has local store2863 is stored locally2864 when direct upload is enabled2865 when file is stored2866 is stored remotely2867Boards::Issues::MoveService2868 #execute2869 when parent is a project2870 behaves like issues move service2871 when moving an issue between lists2872 delegates the label changes to Issues::UpdateService2873 removes the label from the list it came from and adds the label of the list it goes to2874 behaves like updating timestamps2875 updates updated_at2876 when moving to closed2877 delegates the close proceedings to Issues::CloseService2878 removes all list-labels from boards and close the issue2879 behaves like updating timestamps2880 updates updated_at2881 when moving to backlog2882 keeps labels and milestone2883 behaves like updating timestamps2884 updates updated_at2885 when moving from closed2886 delegates the re-open proceedings to Issues::ReopenService2887 adds the label of the list it goes to and reopen the issue2888 behaves like updating timestamps2889 updates updated_at2890 when moving to same list2891 returns false2892 keeps issues labels2893 keeps issues assignees2894 sorts issues2895 does not update updated_at2896 when parent is a group2897 behaves like issues move service2898 when moving an issue between lists2899 delegates the label changes to Issues::UpdateService2900 removes the label from the list it came from and adds the label of the list it goes to2901 behaves like updating timestamps2902 updates updated_at2903 when moving to closed2904 delegates the close proceedings to Issues::CloseService2905 removes all list-labels from boards and close the issue2906 behaves like updating timestamps2907 updates updated_at2908 when moving to backlog2909 keeps labels and milestone2910 behaves like updating timestamps2911 updates updated_at2912 when moving from closed2913 delegates the re-open proceedings to Issues::ReopenService2914 adds the label of the list it goes to and reopen the issue2915 behaves like updating timestamps2916 updates updated_at2917 when moving to same list2918 returns false2919 keeps issues labels2920 keeps issues assignees2921 sorts issues2922 does not update updated_at2923 when on a group board2924 sends the board_group_id parameter2925 #execute_multiple2926 returns the expected result if list of issues is empty2927 moving multiple issues2928 moves multiple issues from one list to another2929 moving a single issue2930 moves one issue2931 moving issues visually after an existing issue2932 moves one issue2933 moving issues visually before an existing issue2934 moves one issue2935EnvironmentSerializer2936 when there is a single object provided2937 contains important elements of environment2938 contains relevant information about last deployment2939 when there is a collection of objects provided2940 contains important elements of environment2941 generates payload for collection2942 when representing environments within folders2943 when there is a single environment2944 represents one standalone environment2945 when there are multiple environments in folder2946 represents one item that is a folder2947 when there are multiple folders and standalone environments2948 represents multiple items grouped within folders2949 when used with pagination2950 creates a paginated serializer2951 when resource is paginatable relation2952 when there is a single environment object in relation2953 serializes environments2954 when multiple environment objects are serialized2955 serializes appropriate number of objects2956 appends relevant headers2957 when grouping environments within folders2958 paginates grouped items including ordering2959 appends correct total page count header2960 appends correct page count headers2961API::Helpers::Pagination2962 #paginate (keyset pagination)2963 when resource can be paginated2964 first page2965 returns appropriate amount of resources2966 returns the first two records (by id desc)2967 adds appropriate headers2968 second page2969 returns appropriate amount of resources2970 returns the third record2971 adds appropriate headers2972 third page2973 returns appropriate amount of resources2974 adds appropriate headers2975 if order2976 is not present2977 is not present it adds default order(:id) desc2978 is present2979 also orders by primary key2980 returns the right records (first page)2981 second page2982 returns the right records (second page)2983 returns the right link to the next page2984 third page2985 returns the right records (third page), note increased per_page2986 #paginate (default offset-based pagination)2987 when resource can be paginated2988 first page2989 when the api_kaminari_count_with_limit feature flag is unset2990 behaves like paginated response2991 returns appropriate amount of resources2992 executes only one SELECT COUNT query2993 behaves like response with pagination headers2994 adds appropriate headers2995 when the api_kaminari_count_with_limit feature flag is disabled2996 behaves like paginated response2997 returns appropriate amount of resources2998 executes only one SELECT COUNT query2999 behaves like response with pagination headers3000 adds appropriate headers3001 when the api_kaminari_count_with_limit feature flag is enabled3002 when resources count is less than MAX_COUNT_LIMIT3003 behaves like paginated response3004 returns appropriate amount of resources3005 executes only one SELECT COUNT query3006 behaves like response with pagination headers3007 adds appropriate headers3008 when resources count is more than MAX_COUNT_LIMIT3009 does not return the X-Total and X-Total-Pages headers3010 behaves like paginated response3011 returns appropriate amount of resources3012 executes only one SELECT COUNT query3013 second page3014 returns appropriate amount of resources3015 adds appropriate headers3016 if order3017 is not present it adds default order(:id) if no order is present3018 is present it does not add anything3019 when resource empty3020 first page3021 returns appropriate amount of resources3022 adds appropriate headers3023Gitlab::Gfm::ReferenceRewriter3024 #rewrite3025 multiple issues and merge requests referenced3026 plain text description3027 should include "old-project#1"3028 should include "old-project#2"3029 should include "old-project!1"3030 description with ignored elements3031 should include "old-project#1"3032 should not include "old-project#2"3033 should not include "old-project!1"3034 rewrite ambigous references3035 url3036 should include "http://gitlab.com/#1"3037 code3038 should eq "old-project#1, but not `[#1]`"3039 code reverse3040 should eq "not `#1`, but old-project#1"3041 code in random order3042 should eq "old-project#1, `#1`, old-project#1, `#1`"3043 description with project labels3044 label referenced by id3045 should eq "old-project#1 and old-project~123"3046 label referenced by text3047 should eq "old-project#1 and old-project~123"3048 description with group labels3049 label referenced by id3050 should eq "group94/old-project#1 and group94/old-project~321"3051 label referenced by text3052 should eq "group96/old-project#1 and group96/old-project~321"3053 with a commit3054 reference to an absolute URL to a commit3055 should eq "http://localhost/group97/old-project/commit/b83d6e391c22777fca1ed3012fce84f633d7fed0"3056 reference to a commit3057 should eq "old-project@b83d6e391c22777fca1ed3012fce84f633d7fed0"3058 reference contains project milestone3059 should eq "milestone: old-project%\"9.0\""3060 when referring to group milestone3061 should eq "milestone %\"10.0\""3062 when referable has a nil reference3063 raises an error that should be fixed3064Issues::BuildService3065 for a single discussion3066 #execute3067 references the noteable title in the issue title3068 adds the note content to the description3069 for discussions in a merge request3070 #items_for_discussions3071 has an item for each discussion3072 #item_for_discussion3073 mentions the author of the note3074 wraps the note in a blockquote3075 #execute3076 uses provided title if title param given3077 uses provided description if description param given3078 without additional params3079 has the merge request reference in the title3080 has the reference of the merge request in the description3081 with multiple discussions3082 mentions all the authors in the description3083 has a link for each unresolved discussion in the description3084 mentions additional notes3085 For a merge request without discussions3086 #execute3087 mentions the merge request in the description3088 #execute3089 builds a new issues with given params3090 sets milestone to nil if it is not available for the project3091Banzai::Pipeline::WikiPipeline3092 TableOfContents3093 replaces the tag with the TableOfContentsFilter result3094 is case-sensitive3095 handles an empty pipeline result3096 Links3097 when GitLab is hosted at a root URL3098 linking to pages within the wiki3099 when creating hierarchical links to the current directory3100 rewrites non-file links to be at the scope of the current directory3101 rewrites file links to be at the scope of the current directory3102 when creating hierarchical links to the parent directory3103 rewrites non-file links to be at the scope of the parent directory3104 rewrites file links to be at the scope of the parent directory3105 when creating hierarchical links to a sub-directory3106 rewrites non-file links to be at the scope of the sub-directory3107 rewrites file links to be at the scope of the sub-directory3108 when creating non-hierarchical links3109 rewrites non-file links to be at the scope of the wiki root3110 rewrites non-file links (with spaces) to be at the scope of the wiki root3111 rewrites file links to be at the scope of the current directory3112 rewrites links with anchor3113 rewrites links (with spaces) with anchor3114 when creating root links3115 rewrites non-file links to be at the scope of the wiki root3116 rewrites file links to be at the scope of the wiki root3117 linking to pages outside the wiki (absolute)3118 doesn't rewrite links3119 when GitLab is hosted at a relative URL3120 linking to pages within the wiki3121 when creating hierarchical links to the current directory3122 rewrites non-file links to be at the scope of the current directory3123 rewrites file links to be at the scope of the current directory3124 when creating hierarchical links to the parent directory3125 rewrites non-file links to be at the scope of the parent directory3126 rewrites file links to be at the scope of the parent directory3127 when creating hierarchical links to a sub-directory3128 rewrites non-file links to be at the scope of the sub-directory3129 rewrites file links to be at the scope of the sub-directory3130 when creating non-hierarchical links3131 rewrites non-file links to be at the scope of the wiki root3132 rewrites non-file links (with spaces) to be at the scope of the wiki root3133 rewrites file links to be at the scope of the current directory3134 rewrites links with anchor3135 rewrites links (with spaces) with anchor3136 when creating root links3137 rewrites non-file links to be at the scope of the wiki root3138 rewrites file links to be at the scope of the wiki root3139 linking to pages outside the wiki (absolute)3140 doesn't rewrite links3141 checking slug validity when assembling links3142 with a valid slug3143 includes the slug in a (.) relative link3144 includeds the slug in a (..) relative link3145 when the slug is deemed unsafe or invalid3146 with the invalid slug javascript:3147 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3148 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3149 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3150 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3151 with the invalid slug JaVaScRiPt:3152 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3153 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3154 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3155 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3156 with the invalid slug javascript:3157 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3158 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3159 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3160 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3161 with the invalid slug javascript :3162 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3163 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3164 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3165 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3166 with the invalid slug javascript:3167 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3168 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3169 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3170 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3171 with the invalid slug javascript :3172 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3173 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3174 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3175 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3176 with the invalid slug :javascript:3177 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3178 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3179 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3180 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3181 with the invalid slug javascript:3182 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3183 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3184 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3185 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3186 with the invalid slug javascript:3187 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3188 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3189 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3190 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3191 with the invalid slug javascript:3192 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3193 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3194 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3195 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3196 with the invalid slug javascript:3197 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3198 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3199 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3200 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3201 with the invalid slug java script:3202 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3203 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3204 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3205 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3206 with the invalid slug  javascript:3207 doesn't include a prohibited slug in a (.) relative link 'alert(1);'3208 doesn't include a prohibited slug in a (..) relative link 'alert(1);'3209 doesn't include a prohibited slug in a (.) relative link 'alert(document.location);'3210 doesn't include a prohibited slug in a (..) relative link 'alert(document.location);'3211 videos and audio3212 generates video html structure3213 rewrites and replaces video links names with white spaces to %203214 generates audio html structure3215 rewrites and replaces audio links names with white spaces to %203216AttachmentUploader3217 behaves like builds correct paths3218 #store_dir3219 behaves like matches the method pattern3220 should match /uploads\/-\/system\/note\/attachment\//3221 #cache_dir3222 behaves like matches the method pattern3223 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3224 #work_dir3225 behaves like matches the method pattern3226 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3227 #upload_path3228 behaves like matches the method pattern3229 should match /uploads\/-\/system\/note\/attachment\//3230 #relative_path3231 is relative3232 .absolute_path3233 behaves like matches the method pattern3234 should match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/note\/attachment\//3235 .base_dir3236 behaves like matches the method pattern3237 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3238 object_store is REMOTE3239 behaves like builds correct paths3240 #store_dir3241 behaves like matches the method pattern3242 should match /note\/attachment\//3243 #cache_dir3244 behaves like matches the method pattern3245 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3246 #work_dir3247 behaves like matches the method pattern3248 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3249 #upload_path3250 behaves like matches the method pattern3251 should match /note\/attachment\//3252 #relative_path3253 is relative3254 .absolute_path3255 behaves like matches the method pattern3256 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3257 .base_dir3258 behaves like matches the method pattern3259 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3260 #migrate!3261 behaves like migrates3262 returns corresponding file type3263 does nothing when migrating to the current store3264 migrate to the specified store3265 removes the original file after the migration3266 can access to the original file during migration3267 when migrate! is not occupied by another process3268 executes migrate!3269 executes use_file3270 when migrate! is occupied by another process3271 does not execute migrate!3272 does not execute use_file3273 migration is unsuccessful3274 when the store is not supported3275 does not update the object_store3276 does not delete the original file3277 upon a fog failure3278 does not update the object_store3279 does not delete the original file3280 upon a database failure3281 does not update the object_store3282 does not delete the original file3283 behaves like migrates3284 returns corresponding file type3285 does nothing when migrating to the current store3286 migrate to the specified store3287 removes the original file after the migration3288 can access to the original file during migration3289 when migrate! is not occupied by another process3290 executes migrate!3291 executes use_file3292 when migrate! is occupied by another process3293 does not execute migrate!3294 does not execute use_file3295 migration is unsuccessful3296 when the store is not supported3297 does not update the object_store3298 does not delete the original file3299 upon a fog failure3300 does not update the object_store3301 does not delete the original file3302 upon a database failure3303 does not update the object_store3304 does not delete the original file3305Ci::Runner3306 behaves like having unique enum values3307 has unique values in "access_level"3308 has unique values in "runner_type"3309 validation3310 should validate that :access_level cannot be empty/falsy3311 should validate that :runner_type cannot be empty/falsy3312 when runner is not allowed to pick untagged jobs3313 when runner does not have tags3314 is not valid3315 when runner has tags3316 is valid3317 #exactly_one_group3318 disallows assigning group if already assigned to a group3319 runner_type validations3320 disallows assigning group to project_type runner3321 disallows assigning group to instance_type runner3322 disallows assigning project to group_type runner3323 disallows assigning project to instance_type runner3324 fails to save a group assigned to a project runner even if the runner is already saved3325 constraints3326 .UPDATE_CONTACT_COLUMN_EVERY3327 #access_level3328 when creating new runner and access_level is nil3329 object is invalid3330 when creating new runner and access_level is defined in enum3331 object is valid3332 when creating new runner and access_level is not defined in enum3333 raises an error3334 .instance_type3335 returns only shared runners3336 .belonging_to_project3337 returns the specific project runner3338 .belonging_to_parent_group_of_project3339 returns the specific group runner3340 with a parent group with a runner3341 returns the group runner from the parent group3342 .owned_or_instance_wide3343 returns a globally shared, a project specific and a group specific runner3344 #display_name3345 returns the description if it has a value3346 returns the token if it does not have a description3347 returns the token if the description is an empty string3348 #assign_to3349 with shared_runner3350 transitions shared runner to project runner and assigns project3351 with group runner3352 raises an error3353 .online3354 should eq [#<Ci::Runner id: 23, token: nil, created_at: "2019-10-16 17:13:23", updated_at: "2019-10-16 17:13:23...instance_type", token_encrypted: "oTQFD7X5sMqll/YUIz+SbL6Qmk1zUW3DA0iaDMy2Tf8PmvtA", tag_list: nil>]3355 #online?3356 no cache value3357 never contacted3358 should be falsey3359 contacted long time ago time3360 should be falsey3361 contacted 1s ago3362 should be truthy3363 with cache value3364 contacted long time ago time3365 should be falsey3366 contacted 1s ago3367 should be truthy3368 .offline3369 should eq [#<Ci::Runner id: 29, token: nil, created_at: "2019-10-16 17:13:23", updated_at: "2019-10-16 17:13:23...instance_type", token_encrypted: "kAQyKKLIs5PlqvobYReqaaeF5WQhRZ9qNBHZTplZMsa9VfTp", tag_list: nil>]3370 #can_pick?3371 a different runner3372 cannot handle builds3373 when runner does not have tags3374 can handle builds without tags3375 cannot handle build with tags3376 when runner has tags3377 when runner can pick untagged jobs3378 can handle builds without tags3379 behaves like tagged build picker3380 can handle build with matching tags3381 cannot handle build without matching tags3382 when runner cannot pick untagged jobs3383 cannot handle builds without tags3384 behaves like tagged build picker3385 can handle build with matching tags3386 cannot handle build without matching tags3387 when runner is shared3388 can handle builds3389 when runner is locked3390 can handle builds3391 when runner is not shared3392 when runner is assigned to a project3393 can handle builds3394 when runner is assigned to another project3395 cannot handle builds3396 when runner is assigned to a group3397 can handle builds3398 when access_level of runner is not_protected3399 when build is protected3400 should be truthy3401 when build is unprotected3402 should be truthy3403 when access_level of runner is ref_protected3404 when build is protected3405 should be truthy3406 when build is unprotected3407 should be falsey3408 #status3409 never connected3410 should eq :not_connected3411 contacted 1s ago3412 should eq :online3413 contacted long time ago3414 should eq :offline3415 inactive3416 should eq :paused3417 #tick_runner_queue3418 returns a new last_update value3419 #ensure_runner_queue_value3420 sets a new last_update value when it is called the first time3421 does not change if it is not expired and called again3422 updates runner queue after changing editable value3423 sets a new last_update value3424 does not update runner value after save3425 has an old last_update value3426 #update_cached_info3427 when database was updated recently3428 updates cache3429 when database was not updated recently3430 updates redis cache and database3431 with invalid runner3432 still updates redis cache and database3433 #destroy3434 when there is a tick in the queue3435 cleans up the queue3436 .assignable_for3437 with already assigned project3438 should be empty3439 with a different project3440 should include #<Ci::Runner id: 66, token: nil, created_at: "2019-10-16 17:13:26", updated_at: "2019-10-16 17:13:26"... "project_type", token_encrypted: "hBwRKafbpZ+bn8YqQjLIGeeghE29kf9t66yRcKFaHVp+OvUF", tag_list: nil>3441 should not include #<Ci::Runner id: 72, token: nil, created_at: "2019-10-16 17:13:27", updated_at: "2019-10-16 17:13:27"...e: "group_type", token_encrypted: "gQAbCp7+p86lkPA4djKEHLmjhFDuUcBqjE4S51wa8nVk/KL/", tag_list: nil>3442 should not include #<Ci::Runner id: 75, token: nil, created_at: "2019-10-16 17:13:27", updated_at: "2019-10-16 17:13:27"... "project_type", token_encrypted: "tB0OJv6h0tTqgu1DU36Me7S5qnOMKK63NeH84GyCtf17pL6P", tag_list: nil>3443 should not include #<Ci::Runner id: 81, token: nil, created_at: "2019-10-16 17:13:28", updated_at: "2019-10-16 17:13:28"..."instance_type", token_encrypted: "5gIpHqjd0IOIutAhe3OGSJeL42iCjalUuFLImtitUbzC3AsC", tag_list: nil>3444 belongs_to_one_project?3445 returns false if there are two projects runner assigned to3446 returns true3447 #has_tags?3448 when runner has tags3449 should have tags3450 when runner does not have tags3451 should not have tags3452 .search3453 returns runners with a matching token3454 returns runners with a partially matching token3455 returns runners with a matching token regardless of the casing3456 returns runners with a matching description3457 returns runners with a partially matching description3458 returns runners with a matching description regardless of the casing3459 #assigned_to_group?3460 when project runner3461 should be falsey3462 when shared runner3463 should be falsey3464 when group runner3465 should be truthy3466 #assigned_to_project?3467 when group runner3468 should be falsey3469 when shared runner3470 should be falsey3471 when project runner3472 should be truthy3473 #pick_build!3474 runner can pick the build3475 calls #tick_runner_queue3476 runner cannot pick the build3477 does not call #tick_runner_queue3478 project runner without projects is destroyable3479 does not have projects3480 can be destroyed3481 .order_by3482 supports ordering by the contact date3483 supports ordering by the creation date3484 #uncached_contacted_at3485 should eq 2019-10-16 16:13:30.000000000 +00003486GroupDescendantsFinder3487 #has_children?3488 is true when there are projects3489 when there are subgroups3490 is true when there are projects3491 #execute3492 includes projects3493 does not include archived projects3494 sorts elements by latest created as default3495 does not include projects shared with the group3496 when archived is `true`3497 includes archived projects3498 when archived is `only`3499 includes only archived projects3500 with a filter3501DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3502DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3503 includes only projects matching the filter3504 sorting by name3505 sorts elements by name3506 with nested groups3507 sorts elements by name3508 with nested groups3509 #execute3510 contains projects and subgroups3511 does not include subgroups the user does not have access to3512 only includes public groups when no user is given3513 when archived is `true`3514 includes archived projects in the count of subgroups3515 with a filter3516DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3517DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3518 contains only matching projects and subgroups3519DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3520DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3521 does not include subgroups the user does not have access to3522 with matching children3523DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3524DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3525 includes a group that has a subgroup matching the query and its parent3526DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3527DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3528 includes the parent of a matching project3529DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3530DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3531 does not include the parent itself3532 with a small page size3533DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3534DEPRECATION WARNING: Delegating as to arel is deprecated and will be removed in Rails 6.0. (called from all_visible_descendant_groups at /builds/gitlab-org/gitlab/app/finders/group_descendants_finder.rb:83)3535 contains all the ancestors of a matching subgroup regardless the page size3536Gitlab::Asciidoc3537 without project3538 converts the input using Asciidoctor and default options3539 with asciidoc_opts3540 merges the options with default ones3541 XSS3542 does not convert dangerous link with extra attribute into HTML3543 does not convert dangerous link with unsafe scheme into HTML3544 does not convert dangerous image with onerror into HTML3545asciidoctor: WARNING: <stdin>: line 1: unterminated listing block3546 does not convert dangerous fenced code with inline script into HTML3547 with admonition3548 preserves classes3549 with passthrough3550 removes non heading ids3551 removes non footnote def ids3552 removes non footnote ref ids3553 with footnotes3554 preserves ids and links3555 with section anchors3556 preserves ids and links3557 with checklist3558 preserves classes3559 with marks3560 preserves classes3561 with fenced block3562 highlights syntax3563 with listing block3564 highlights syntax3565 with stem block3566 does not apply syntax highlighting3567 external links3568 adds the `rel` attribute to the link3569 LaTex code3570 adds class js-render-math to the output3571 outfilesuffix3572 defaults to adoc3573 with project3574 include directive3575 with path to non-existing file3576 renders Unresolved directive placeholder3577 with path to a binary file3578 does not read the blob3579 renders Unresolved directive placeholder3580 with path to file in external storage3581 does not read the blob3582 renders Unresolved directive placeholder3583 with path to a textual file3584 when requested path is a file in the repo3585 the file is specified by absolute path3586 includes content of the file3587 the file is specified by relative path3588 includes content of the file3589 the file is specified by relative path with leading ./3590 includes content of the file3591 the file is specified by relative path to a file up one directory3592 includes content of the file3593 the file is specified by relative path for a file up multiple directories3594 includes content of the file3595 without a commit (only ref)3596 the file is specified by absolute path3597 includes content of the file3598 the file is specified by relative path3599 includes content of the file3600 the file is specified by relative path with leading ./3601 includes content of the file3602 the file is specified by relative path to a file up one directory3603 includes content of the file3604 the file is specified by relative path for a file up multiple directories3605 includes content of the file3606 when requested path is a directory in the repo3607 the file is specified by absolute path3608 includes content of the file3609 the file is specified by relative path3610 includes content of the file3611 the file is specified by relative path with leading ./3612 includes content of the file3613 the file is specified by relative path to a file up one directory3614 includes content of the file3615 the file is specified by relative path for a file up multiple directories3616 includes content of the file3617 without a commit (only ref)3618 the file is specified by absolute path3619 includes content of the file3620 the file is specified by relative path3621 includes content of the file3622 the file is specified by relative path with leading ./3623 includes content of the file3624 the file is specified by relative path to a file up one directory3625 includes content of the file3626 the file is specified by relative path for a file up multiple directories3627 includes content of the file3628 recursive includes with relative paths3629 includes content of the included files recursively3630Projects::AutocompleteService3631 #issues3632 confidential issues3633 does not list project confidential issues for guests3634 does not list project confidential issues for non project members3635 does not list project confidential issues for project members with guest role3636 lists project confidential issues for author3637 lists project confidential issues for assignee3638 lists project confidential issues for project members3639 lists all project issues for admin3640 #milestones3641 includes project and group milestones and sorts them correctly3642 does not include closed milestones3643 does not include milestones from other projects in the group3644 with nested groups3645 includes project milestones and all acestors milestones3646 #labels_as_hash3647 returns labels from project and ancestor groups3648 some labels are already assigned3649 marks already assigned as set3650Ci::PipelineTriggerService3651 #execute3652 with a trigger token3653 when trigger belongs to a different project3654 does nothing3655 when params have an existsed trigger token3656 when params have an existsed ref3657 triggers a pipeline3658 when commit message has [ci skip]3659 ignores [ci skip] and create as general3660 when params have a variable3661 has a variable3662 when params have a non-existsed ref3663 does not trigger a pipeline3664 when params have a non-existsed trigger token3665 does not trigger a pipeline3666 with a pipeline job token3667 when job user does not have a permission to read a project3668 does nothing3669 when job is not running3670 does nothing3671 when params have an existsed job token3672 when params have an existsed ref3673 triggers a pipeline3674 when commit message has [ci skip]3675 ignores [ci skip] and create as general3676 when params have a variable3677 has a variable3678 when params have a non-existsed ref3679 does not job a pipeline3680 when params have a non-existsed trigger token3681 does not trigger a pipeline3682Wikis::CreateAttachmentService3683 initialization3684 author commit info3685 does not raise error if user is nil3686 fills file_path from the repository uploads folder3687 when no author info provided3688 fills author_email and author_name from current_user info3689 when author info provided3690 fills author_email and author_name from params3691 commit message3692 when no commit message provided3693 sets a default commit message3694 when commit message provided3695 use the commit message from params3696 branch name3697 when no branch provided3698 sets the branch from the wiki default_branch3699 when branch provided3700 use the commit message from params3701 #parse_file_name3702 when file_name3703 has white spaces3704 replaces all of them with '_'3705 has other invalid characters3706 replaces all of them with '_'3707 is not present3708 returns error3709 length3710 is bigger than 2553711 truncates file name3712 is less or equal to 255 does not return error3713 does not return error3714 when user3715 does not have permission3716 behaves like wiki attachment user validations3717 returns error3718 is nil3719 behaves like wiki attachment user validations3720 returns error3721 #execute3722 adds file to the repository3723 creates branch if it does not exists3724 should eq "new_branch"3725 returns3726 returns the file name3727 returns the path where file was stored3728 returns the branch where the file was pushed3729 returns the commit id3730Gitlab::Conflict::File3731 #resolve_lines3732 raises ResolutionError when passed a hash without resolutions for all sections3733 when resolving everything to the same side3734 has the correct number of lines3735 has content matching the chosen lines3736 with mixed resolutions3737 has the correct number of lines3738 returns a file containing only the chosen parts of the resolved sections3739 #highlight_lines!3740 is called implicitly when rich_text is accessed on a line3741 sets the rich_text of the lines matching the text content3742 highlights the lines correctly3743 #sections3744 only inserts match lines when there is a gap between sections3745 sets conflict to false for sections with only unchanged lines3746 only includes a maximum of CONTEXT_LINES (plus an optional match line) in context sections3747 sets conflict to true for sections with only changed lines3748 adds unique IDs to conflict sections, and not to other sections3749 with an example file3750 sets the correct match line headers3751 does not add match lines where they are not needed3752 creates context sections of the correct length3753 #as_json3754 includes the blob path for the file3755 includes the blob icon for the file3756 with the full_content option passed3757 includes the full content of the conflict3758Members::UpdateService3759 when current user cannot update the given member3760 behaves like a service raising Gitlab::Access::AccessDeniedError3761 raises Gitlab::Access::AccessDeniedError3762 behaves like a service raising Gitlab::Access::AccessDeniedError3763 raises Gitlab::Access::AccessDeniedError3764 when current user can update the given member3765 behaves like a service updating a member3766 updates the member3767 when member is downgraded to guest3768 schedules to delete confidential todos3769 behaves like a service updating a member3770 updates the member3771 when member is downgraded to guest3772 schedules to delete confidential todos3773TestHooks::ProjectService3774 #execute3775 allows to set a custom project3776 hook with not implemented test3777 returns error message3778 push_events3779 returns error message if not enough data3780 executes hook3781 tag_push_events3782 returns error message if not enough data3783 executes hook3784 note_events3785 returns error message if not enough data3786 executes hook3787 issues_events3788 returns error message if not enough data3789 executes hook3790 confidential_issues_events3791 returns error message if not enough data3792 executes hook3793 merge_requests_events3794 returns error message if not enough data3795 executes hook3796 job_events3797 returns error message if not enough data3798 executes hook3799 pipeline_events3800 returns error message if not enough data3801 executes hook3802 wiki_page_events3803 returns error message if wiki disabled3804 returns error message if not enough data3805 executes hook3806AvatarUploader3807 behaves like builds correct paths3808 #store_dir3809 behaves like matches the method pattern3810 should match /uploads\/-\/system\/user\/avatar\//3811 #cache_dir3812 behaves like matches the method pattern3813 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3814 #work_dir3815 behaves like matches the method pattern3816 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3817 #upload_path3818 behaves like matches the method pattern3819 should match /uploads\/-\/system\/user\/avatar\//3820 #relative_path3821 is relative (PENDING: Path not set, skipping.)3822 .absolute_path3823 behaves like matches the method pattern3824 should match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/user\/avatar\//3825 .base_dir3826 behaves like matches the method pattern3827 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3828 object_store is REMOTE3829 behaves like builds correct paths3830 #store_dir3831 behaves like matches the method pattern3832 should match /user\/avatar\//3833 #cache_dir3834 behaves like matches the method pattern3835 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3836 #work_dir3837 behaves like matches the method pattern3838 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3839 #upload_path3840 behaves like matches the method pattern3841 should match /user\/avatar\//3842 #relative_path3843 is relative (PENDING: Path not set, skipping.)3844 .absolute_path3845 behaves like matches the method pattern3846 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3847 .base_dir3848 behaves like matches the method pattern3849 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3850 with a file3851 sets the right absolute path3852 behaves like migrates3853 returns corresponding file type3854 does nothing when migrating to the current store3855 migrate to the specified store3856 removes the original file after the migration3857 can access to the original file during migration3858 when migrate! is not occupied by another process3859 executes migrate!3860 executes use_file3861 when migrate! is occupied by another process3862 does not execute migrate!3863 does not execute use_file3864 migration is unsuccessful3865 when the store is not supported3866 does not update the object_store3867 does not delete the original file3868 upon a fog failure3869 does not update the object_store3870 does not delete the original file3871 upon a database failure3872 does not update the object_store3873 does not delete the original file3874 behaves like migrates3875 returns corresponding file type3876 does nothing when migrating to the current store3877 migrate to the specified store3878 removes the original file after the migration3879 can access to the original file during migration3880 when migrate! is not occupied by another process3881 executes migrate!3882 executes use_file3883 when migrate! is occupied by another process3884 does not execute migrate!3885 does not execute use_file3886 migration is unsuccessful3887 when the store is not supported3888 does not update the object_store3889 does not delete the original file3890 upon a fog failure3891 does not update the object_store3892 does not delete the original file3893 upon a database failure3894 does not update the object_store3895 does not delete the original file3896Clusters::ClustersHierarchy3897 #base_and_ancestors3898 project in nested group with clusters at every level3899 returns clusters for project3900 returns clusters for child_group3901 returns clusters for parent_group3902 returns clusters for ancestor_group3903 project in a namespace3904 returns clusters for project3905 cluster has management project3906 returns clusters for management_project3907 returns nothing if include_management_project is false3908 returns clusters for project3909 returns clusters for group3910 project in nested group with clusters at some levels3911 returns clusters for management_project3912 returns clusters for project3913 returns clusters for child_group3914 returns clusters for parent_group3915 returns clusters for ancestor_group3916ProjectAPICompatibility3917 converts build_git_strategy=fetch to build_allow_git_fetch=true3918 converts build_git_strategy=clone to build_allow_git_fetch=false3919 #auto_devops_enabled3920 initial: :missing, final: nil3921 sets the correct value3922 initial: :missing, final: false3923 sets the correct value3924 initial: :missing, final: true3925 sets the correct value3926 initial: nil, final: nil3927 sets the correct value3928 initial: nil, final: false3929 sets the correct value3930 initial: nil, final: true3931 sets the correct value3932 initial: false, final: nil3933 sets the correct value3934 initial: false, final: false3935 sets the correct value3936 initial: false, final: true3937 sets the correct value3938 initial: true, final: nil3939 sets the correct value3940 initial: true, final: false3941 sets the correct value3942 initial: true, final: true3943 sets the correct value3944 #auto_devops_deploy_strategy3945 initial: :missing, final: "continuous"3946 sets the correct value3947 initial: :missing, final: "manual"3948 sets the correct value3949 initial: :missing, final: "timed_incremental"3950 sets the correct value3951 initial: "continuous", final: "continuous"3952 sets the correct value3953 initial: "continuous", final: "manual"3954 sets the correct value3955 initial: "continuous", final: "timed_incremental"3956 sets the correct value3957 initial: "manual", final: "continuous"3958 sets the correct value3959 initial: "manual", final: "manual"3960 sets the correct value3961 initial: "manual", final: "timed_incremental"3962 sets the correct value3963 initial: "timed_incremental", final: "continuous"3964 sets the correct value3965 initial: "timed_incremental", final: "manual"3966 sets the correct value3967 initial: "timed_incremental", final: "timed_incremental"3968 sets the correct value3969CommitRange3970 raises ArgumentError when given an invalid range string3971 modules3972 should includes the Referable module3973 #initialize3974 does not modify strings in-place3975 #to_s3976 is correct for three-dot syntax3977 is correct for two-dot syntax3978 #to_reference3979 returns a String reference to the object3980 returns a String reference to the object3981 supports a cross-project reference3982 #reference_link_text3983 returns a String reference to the object3984 returns a String reference to the object3985 supports a cross-project reference3986 #to_param3987 includes the correct keys3988 includes the correct values for a three-dot range3989 includes the correct values for a two-dot range3990 #exclude_start?3991 is false for three-dot ranges3992 is true for two-dot ranges3993 #valid_commits?3994 with a valid repo3995 is false when `sha_from` is invalid3996 is false when `sha_to` is invalid3997 is true when both `sha_from` and `sha_to` are valid3998 without a valid repo3999 returns false4000 #has_been_reverted?4001 returns true if the commit has been reverted4002 returns false if the commit has not been reverted4003Suggestions::CreateService4004 #execute4005 should not try to parse suggestions4006 when not a diff note for merge requests4007 does not try to parse suggestions4008 when diff note is not for text4009 does not try to parse suggestions4010 should not create suggestions4011 creates no suggestion when diff file is not found4012 should create suggestions4013 persists suggestion records4014 persists suggestions data correctly4015 outdated position note4016 uses the correct position when creating the suggestion4017 when a patch removes an empty line4018 creates an appliable suggestion4019Gitlab::Kubernetes::Helm::Certificate4020 .generate_root4021 generates a root CA that expires a long way in the future4022 #issue4023 generates a cert that expires soon4024 passing in INFINITE_EXPIRY4025 generates a cert that expires a long way in the future4026Banzai::Filter::ReferenceRedactorFilter4027 ignores non-GFM links4028 skips when the skip_redaction flag is set4029 with data-project4030 valid projects4031 allows permitted Project references4032 invalid projects4033 removes unpermitted references4034 handles invalid references4035 with data-issue4036 allows references for non confidential issues4037 for confidential issues4038 removes references for non project members4039 removes references for project members with guest role4040 allows references for author4041 allows references for assignee4042 allows references for project members4043 allows references for admin4044 for user references4045 with data-group4046 removes unpermitted Group references4047 allows permitted Group references4048 handles invalid Group references4049 with data-user4050 allows any User reference4051Gitlab::Verify::JobArtifacts4052 behaves like Gitlab::Verify::BatchVerifier subclass4053 batching4054 iterates through objects in batches4055 allows the starting ID to be specified4056 allows the finishing ID to be specified4057 #run_batches4058 passes artifacts with the correct file4059 fails artifacts with a missing file4060 fails artifacts with a mismatched checksum4061 with remote files4062 passes artifacts in object storage that exist4063 fails artifacts in object storage that do not exist4064Gitlab::SlashCommands::Deploy4065 #execute4066 if no environment is defined4067 does not execute an action4068 with environment4069 without actions4070 does not execute an action4071 when single action has been matched4072 returns success result4073 when more than one action has been matched4074 when there is no specific actions with a environment name4075 returns error about too many actions defined4076 when one of the actions is environement specific action4077 deploys to production4078 when one of the actions is a teardown action4079 deploys to production4080 self.match4081 matches the environment4082Gitlab::Badge::Coverage::Report4083 #entity4084 describes a coverage4085 #metadata4086 returns correct metadata4087 #template4088 returns correct template4089 when latest successful pipeline exists4090 when particular job specified4091 returns coverage for the particular job4092 when particular job not specified4093 returns arithemetic mean for the pipeline4094 when only failed pipeline exists4095 behaves like unknown coverage report4096 particular job specified4097 returns nil4098 particular job not specified4099 returns nil4100 particular job specified4101 retruns nil4102 pipeline does not exist4103 behaves like unknown coverage report4104 particular job specified4105 returns nil4106 particular job not specified4107 returns nil4108WikiPages::UpdateService4109 #execute4110 updates the wiki page4111 executes webhooks4112 counts edit events4113 when the options are bad4114 does not count an edit event4115 reports the error4116TreeHelper4117 .render_tree4118 displays all entries without a warning4119 truncates entries and adds a warning4120 .fast_project_blob_path4121 generates the same path as project_blob_path4122 generates the same path with encoded file names4123 respects a configured relative URL4124 encodes files starting with #4125 .fast_project_tree_path4126 generates the same path as project_tree_path4127 respects a configured relative URL4128 encodes files starting with #4129 flatten_tree4130 on a directory containing more than one file/directory4131 returns the directory name4132 on a directory containing only one directory4133 returns the flattened path4134 with a nested root path4135 returns the flattened path with the root path suffix removed4136 when the root path contains a plus character4137 returns the flattened path4138 #commit_in_single_accessible_branch4139 escapes HTML from the branch name4140Gitlab::Ci::Status::Build::Cancelable4141 #text4142 does not override status text4143 #icon4144 does not override status icon4145 #label4146 does not override status label4147 #group4148 does not override status group4149 #status_tooltip4150 does not override status status_tooltip4151 #badge_tooltip4152 returns the status4153 action details4154 #has_action?4155 when user is allowed to update build4156 should have action4157 when user is not allowed to update build4158 should not have action4159 #action_path4160 should include "218/cancel"4161 #action_icon4162 should eq "cancel"4163 #action_title4164 should eq "Cancel"4165 #action_button_title4166 should eq "Cancel this job"4167 .matches?4168 when build is cancelable4169 is a correct match4170 when build is not cancelable4171 does not match4172Gitlab::SlashCommands::Command4173 #execute4174 when no command is available4175 displays 404 messages4176 when an unknown command is triggered4177 displays the help message4178 the user can not create an issue4179 rejects the actions4180 when trying to do deployment4181 and user can not create deployment4182 returns action4183 and user has deployment permission4184 returns action4185 when duplicate action exists4186 returns error4187 #match_command4188 IssueShow is triggered4189 should eq Gitlab::SlashCommands::IssueShow4190 IssueCreate is triggered4191 should eq Gitlab::SlashCommands::IssueNew4192 IssueSearch is triggered4193 should eq Gitlab::SlashCommands::IssueSearch4194 IssueMove is triggered4195 should eq Gitlab::SlashCommands::IssueMove4196Gitlab::UrlBuilder4197 .build4198 when passing a Commit4199 returns a proper URL4200 when passing an Issue4201 returns a proper URL4202 when passing a Milestone4203 belonging to a project4204 returns a proper URL4205 belonging to a group4206 returns a proper URL4207 when passing a MergeRequest4208 returns a proper URL4209 when passing a Note4210 on a Commit4211 returns a proper URL4212 on a Commit Diff4213 returns a proper URL4214 on an Issue4215 returns a proper URL4216 on a MergeRequest4217 returns a proper URL4218 on a MergeRequest Diff4219 returns a proper URL4220 on a ProjectSnippet4221 returns a proper URL4222 on a PersonalSnippet4223 returns a proper URL4224 on another object4225 returns a proper URL4226 when passing a WikiPage4227 returns a proper URL4228GroupClusterablePresenter4229 #can_create_cluster?4230 when user can create4231 should be truthy4232 when user cannot create4233 should be falsey4234 #index_path4235 should eq "/groups/group214/-/clusters"4236 #new_path4237 should eq "/groups/group215/-/clusters/new"4238 #create_user_clusters_path4239 should eq "/groups/group216/-/clusters/create_user"4240 #create_gcp_clusters_path4241 should eq "/groups/group217/-/clusters/create_gcp"4242 #cluster_status_cluster_path4243 should eq "/groups/group218/-/clusters/56/cluster_status"4244 #install_applications_cluster_path4245 should eq "/groups/group219/-/clusters/59/applications/helm"4246 #update_applications_cluster_path4247 should eq "/groups/group220/-/clusters/62/applications/helm"4248 #cluster_path4249 should eq "/groups/group221/-/clusters/65"4250projects/_home_panel4251 notifications4252 when user is signed in4253 makes it possible to set notification level4254 when user is signed out4255 is not possible to set notification level4256 badges4257 has no badges4258 does not render any badge4259 only has group badges4260 behaves like show badges4261 renders the all badges4262 only has project badges4263 behaves like show badges4264 renders the all badges4265 has both group and project badges4266 behaves like show badges4267 renders the all badges4268 project id4269 user can read project4270 is shown4271 user cannot read project4272 is not shown4273StuckMergeJobsWorker4274 perform4275 merge job identified as completed4276 updates merge request to merged when locked but has merge_commit_sha4277 updates merge request to opened when locked but has not been merged4278 logs updated stuck merge job ids4279 merge job not identified as completed4280 does not change merge request state when job is not completed yet4281Users::BuildService4282 #execute4283 with an admin user4284 returns a valid user4285 allowed params4286 sets all allowed attributes4287 with "user_default_external" application setting4288 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4289 correctly sets user.external4290 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4291 correctly sets user.external4292 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4293 correctly sets user.external4294 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4295 correctly sets user.external4296 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4297 correctly sets user.external4298 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4299 correctly sets user.external4300 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4301 correctly sets user.external4302 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4303 correctly sets user.external4304 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4305 correctly sets user.external4306 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4307 correctly sets user.external4308 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4309 correctly sets user.external4310 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4311 correctly sets user.external4312 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4313 correctly sets user.external4314 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4315 correctly sets user.external4316 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4317 correctly sets user.external4318 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4319 correctly sets user.external4320 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4321 correctly sets user.external4322 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4323 correctly sets user.external4324 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4325 correctly sets user.external4326 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4327 correctly sets user.external4328 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4329 correctly sets user.external4330 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4331 correctly sets user.external4332 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4333 correctly sets user.external4334 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4335 correctly sets user.external4336 with non admin user4337 raises AccessDeniedError exception4338 with nil user4339 returns a valid user4340 when "send_user_confirmation_email" application setting is true4341 does not confirm the user4342 when "send_user_confirmation_email" application setting is false4343 confirms the user4344 with "user_default_external" application setting4345 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4346 sets the value of Gitlab::CurrentSettings.user_default_external4347 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4348 sets the value of Gitlab::CurrentSettings.user_default_external4349 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true4350 sets the value of Gitlab::CurrentSettings.user_default_external4351 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4352 sets the value of Gitlab::CurrentSettings.user_default_external4353 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4354 sets the value of Gitlab::CurrentSettings.user_default_external4355 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true4356 sets the value of Gitlab::CurrentSettings.user_default_external4357 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4358 sets the value of Gitlab::CurrentSettings.user_default_external4359 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4360 sets the value of Gitlab::CurrentSettings.user_default_external4361 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4362 sets the value of Gitlab::CurrentSettings.user_default_external4363 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4364 sets the value of Gitlab::CurrentSettings.user_default_external4365 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4366 sets the value of Gitlab::CurrentSettings.user_default_external4367 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4368 sets the value of Gitlab::CurrentSettings.user_default_external4369 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4370 sets the value of Gitlab::CurrentSettings.user_default_external4371 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false4372 sets the value of Gitlab::CurrentSettings.user_default_external4373 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4374 sets the value of Gitlab::CurrentSettings.user_default_external4375 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4376 sets the value of Gitlab::CurrentSettings.user_default_external4377 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false4378 sets the value of Gitlab::CurrentSettings.user_default_external4379 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4380 sets the value of Gitlab::CurrentSettings.user_default_external4381 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4382 sets the value of Gitlab::CurrentSettings.user_default_external4383 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4384 sets the value of Gitlab::CurrentSettings.user_default_external4385 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4386 sets the value of Gitlab::CurrentSettings.user_default_external4387 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4388 sets the value of Gitlab::CurrentSettings.user_default_external4389 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4390 sets the value of Gitlab::CurrentSettings.user_default_external4391 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4392 sets the value of Gitlab::CurrentSettings.user_default_external4393Gitlab::Template::MergeRequestTemplate4394 .all4395 strips the md suffix4396 combines the globals and rest4397 .find4398 returns nil if the file does not exist4399 returns the merge request object of a valid file4400 .by_category4401 return array of templates4402 when repo is bare or empty4403 returns empty array4404 #content4405 loads the full file4406 raises error when file is not found4407 when repo is empty4408 raises file not found4409LabelNote4410 when resource is issue4411 behaves like label note created from events4412 .from_events4413 returns system note with expected attributes4414 updates markdown cache if reference is not set yet4415 updates markdown cache if label was deleted4416 returns html note4417 returns text note for added labels4418 returns text note for removed labels4419 returns text note for added and removed labels4420 returns text note for cross-project label4421 returns text note for cross-group label4422 when resource is merge request4423 behaves like label note created from events4424 .from_events4425 returns system note with expected attributes4426 updates markdown cache if reference is not set yet4427 updates markdown cache if label was deleted4428 returns html note4429 returns text note for added labels4430 returns text note for removed labels4431 returns text note for added and removed labels4432 returns text note for cross-project label4433 returns text note for cross-group label4434Labels::FindOrCreateService4435 #execute4436 when acting on behalf of a specific user4437 when finding labels on project level4438 when label does not exist at group level4439 creates a new label at project level4440 when label exists at group level4441 returns the group label4442 when label exists at project level4443 returns the project label4444 when include_ancestor_groups is true4445 returns the ancestor group labels4446 creates new labels if labels are not found4447 when finding labels on group level4448 when label does not exist at group level4449 creates a new label at group level4450 when label exists at group level4451 returns the group label4452 when authorization is not required4453 when finding labels on project level4454 returns the project label4455 when finding labels on group level4456 returns the group label4457ProjectCacheWorker4458 #perform4459 with a non-existing project4460 does nothing4461 with an existing project without a repository4462 updates statistics but does not refresh the method cashes4463 with an existing project4464 refreshes the method caches4465 with statistics disabled4466 does not update the project statistics4467 with statistics4468 updates the project statistics4469 with plain readme4470 refreshes the method caches4471 #update_statistics4472 when a lease could not be obtained4473 does not update the project statistics4474 when a lease could be obtained4475 updates the project statistics twice4476Gitlab::BackgroundMigration::DigestColumn4477NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4478NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4479NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4480 #perform4481 token is not yet hashed4482 saves token digest4483 erases token4484 token is already hashed4485 does not change existing token digest4486 leaves token empty4487NOTICE: table "design_management_designs" does not exist, skipping4488NOTICE: table "design_management_designs_versions" does not exist, skipping4489NOTICE: table "design_management_versions" does not exist, skipping4490NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4491NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4492NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4493NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4494Gitlab::UrlBlocker4495 #validate!4496 when URI is nil4497 behaves like validates URI and hostname4498 runs the url validations4499 when URI is internal4500 behaves like validates URI and hostname4501 runs the url validations4502 when the URL hostname is a domain4503 when domain can be resolved4504 behaves like validates URI and hostname4505 runs the url validations4506 when domain cannot be resolved4507 raises an error4508 when domain is too long4509 raises an error4510 when the URL hostname is an IP address4511 behaves like validates URI and hostname4512 runs the url validations4513 when the address is invalid4514 raises an error4515 disabled DNS rebinding protection4516 when URI is internal4517 behaves like validates URI and hostname4518 runs the url validations4519 when the URL hostname is a domain4520 when domain can be resolved4521 behaves like validates URI and hostname4522 runs the url validations4523 when domain cannot be resolved4524 behaves like validates URI and hostname4525 runs the url validations4526 when the URL hostname is an IP address4527 behaves like validates URI and hostname4528 runs the url validations4529 when it is invalid4530 behaves like validates URI and hostname4531 runs the url validations4532 #blocked_url?4533 allows imports from configured web host and port4534 allows mirroring from configured SSH host and port4535 returns true for bad localhost hostname4536 returns true for bad port4537 returns true for bad scheme4538 returns true for bad protocol on configured web/SSH host and ports4539 returns true for localhost IPs4540 returns true for loopback IP4541 returns true for alternative version of 127.0.0.1 (0177.1)4542 returns true for alternative version of 127.0.0.1 (017700000001)4543 returns true for alternative version of 127.0.0.1 (0x7f.1)4544 returns true for alternative version of 127.0.0.1 (0x7f.0.0.1)4545 returns true for alternative version of 127.0.0.1 (0x7f000001)4546 returns true for alternative version of 127.0.0.1 (2130706433)4547 returns true for alternative version of 127.0.0.1 (127.000.000.001)4548 returns true for alternative version of 127.0.0.1 (127.0.1)4549 returns true for a non-alphanumeric hostname4550 returns true for invalid URL4551 returns false for legitimate URL4552 blocks urls with invalid ip address4553 blocks urls whose hostname cannot be resolved4554 with ipv6 mapped address4555 returns true for localhost IPs4556 returns true for loopback IPs4557 when allow_local_network is4558 true (default)4559 behaves like allows local requests4560 does not block urls from private networks4561 allows localhost endpoints4562 allows loopback endpoints4563 allows IPv4 link-local endpoints4564 allows IPv6 link-local endpoints4565 false4566 blocks urls from private networks4567 blocks IPv4 link-local endpoints4568 blocks IPv6 link-local endpoints4569 when local domain/IP is whitelisted4570 with IPs in whitelist4571 whitelists IP when dns_rebind_protection is disabled4572 behaves like allows local requests4573 does not block urls from private networks4574 allows localhost endpoints4575 allows loopback endpoints4576 allows IPv4 link-local endpoints4577 allows IPv6 link-local endpoints4578 with domains in whitelist4579 allows domains present in whitelist4580 works with unicode and idna encoded domains4581 when the domain cannot be resolved4582 behaves like dns rebinding checks4583 when dns_rebinding_setting is4584 enabled4585 behaves like whitelists the domain4586 should not be blocked url "http://foobar.x" and {:dns_rebind_protection=>true}4587 disabled4588 behaves like whitelists the domain4589 should not be blocked url "http://foobar.x" and {:dns_rebind_protection=>false}4590 when the domain can be resolved4591 behaves like dns rebinding checks4592 when dns_rebinding_setting is4593 enabled4594 behaves like whitelists the domain4595 should not be blocked url "http://example.com" and {:dns_rebind_protection=>true}4596 disabled4597 behaves like whitelists the domain4598 should not be blocked url "http://example.com" and {:dns_rebind_protection=>false}4599 with ip ranges in whitelist4600 blocks ipv4 range when not in whitelist4601 allows all ipv4s in the range when in whitelist4602 blocks ipv6 range when not in whitelist4603 allows all ipv6s in the range when in whitelist4604 blocks IPs outside the range4605 when enforce_user is4606 false (default)4607 does not block urls with a non-alphanumeric username4608 true4609 blocks urls with a non-alphanumeric username4610 when ascii_only is true4611 returns true for unicode domain4612 returns true for unicode tld4613 returns true for unicode path4614 returns true for IDNA deviations4615 #validate_hostname4616 does not raise error for valid Ip addresses4617Ci::BuildTraceChunks::Redis4618 #available?4619 should be truthy4620 #data4621 when data exists4622 returns the data4623 when data does not exist4624 returns nil4625 #set_data4626 when data exists4627 overwrites data4628 when data does not exist4629 sets new data4630 #delete_data4631 when data exists4632 deletes data4633 when data does not exist4634 does nothing4635 #keys4636 returns keys4637 #delete_keys4638 deletes multiple data4639Ci::RunScheduledBuildService4640 when user can update build4641 when build is scheduled4642 when scheduled_at is expired4643 can run the build4644 when scheduled_at is not expired4645 can not run the build4646 when build is not scheduled4647 can not run the build4648 when user can not update build4649 when build is scheduled4650 can not run the build4651Gitlab::Ci::Pipeline::Chain::Populate4652 when pipeline doesn not have seeds block4653 does not persist the pipeline4654 does not break the chain4655 populates pipeline with stages4656 correctly assigns user4657 has pipeline iid4658 when pipeline is empty4659 breaks the chain4660 appends an error about missing stages4661 wastes pipeline iid4662 pipeline protect4663 when ref is protected4664 does not protect the pipeline4665 when ref is not protected4666 does not protect the pipeline4667 when pipeline has validation errors4668 breaks the chain4669 appends validation error4670 wastes pipeline iid4671 when there is a seed blocks present4672 when seeds block builds some resources4673 populates pipeline with resources described in the seeds block4674 has pipeline iid4675 when seeds block tries to persist some resources4676 wastes pipeline iid4677 when pipeline gets persisted during the process4678 raises error4679 when variables policy is specified4680 when using only/except build policies4681 behaves like a correct pipeline4682 populates pipeline according to used policies4683 when variables expression is specified4684 when pipeline iid is the subject4685 behaves like a correct pipeline4686 populates pipeline according to used policies4687ChatMessage::DeploymentMessage4688 #pretext4689 returns a message with the data returned by the deployment data builder4690 returns a message for a successful deployment4691 returns a message for a failed deployment4692 returns a message for a canceled deployment4693 returns a message for a deployment to another environment4694 returns a message for a deployment with any other status4695 #attachments4696 returns attachments with the data returned by the deployment data builder4697 returns attachments for a failed deployment4698 returns attachments for a canceled deployment4699 uses a neutral color for a deployment with any other status4700WikiPages::DestroyService4701 #execute4702 executes webhooks4703 increments the delete count4704 does not increment the delete count if the deletion failed4705ScheduleSyncIssuablesStateId4706NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4707NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4708NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4709 #up4710 issues4711 migrates state column to integer4712 behaves like scheduling migrations4713 correctly schedules issuable sync background migration4714 merge requests4715 migrates state column to integer4716 behaves like scheduling migrations4717 correctly schedules issuable sync background migration4718NOTICE: table "design_management_designs" does not exist, skipping4719NOTICE: table "design_management_designs_versions" does not exist, skipping4720NOTICE: table "design_management_versions" does not exist, skipping4721NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4722NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4723NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4724NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4725ScheduleCalculateWikiSizes4726NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4727NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4728NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4729 when missing wiki sizes exist4730 schedules a background migration4731 calculates missing wiki sizes4732 when missing wiki sizes do not exist4733 does not schedule a background migration4734NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4735NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4736NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4737NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4738Clusters::UpdateService4739 #execute4740 when correct params4741 when enabled is true4742 enables cluster4743 when enabled is false4744 disables cluster4745 when namespace is specified4746 updates namespace4747 when invalid params4748 returns false4749 when cluster is provided by GCP4750 does not change cluster name4751 when cluster is being created4752 rejects changes4753Gitlab::GithubImport::StageMethods4754 #perform4755 returns if no project could be found4756 imports the data when the project exists4757 #try_import4758 imports the project4759 reschedules the worker if RateLimitError was raised4760 #find_project4761 returns a Project for an existing ID4762 returns nil for a project that failed importing4763 returns nil for a non-existing project ID4764Gitlab::Ci::Trace::Stream4765 delegates4766 should delegate #close to the #stream object4767 should delegate #tell to the #stream object4768 should delegate #seek to the #stream object4769 should delegate #size to the #stream object4770 should delegate #path to the #stream object4771 should delegate #truncate to the #stream object4772 should delegate #valid? to the #stream object as #present?4773 #limit4774 when stream is StringIO4775 behaves like limits4776 if size is larger we start from beginning4777 if size is smaller we start from the end4778 when the trace contains ANSI sequence and Unicode4779 forwards to the next linefeed, case 14780 forwards to the next linefeed, case 24781 reads in binary, output as Encoding.default_external4782 when stream is ChunkedIO4783 behaves like limits4784 if size is larger we start from beginning4785 if size is smaller we start from the end4786 when the trace contains ANSI sequence and Unicode4787 forwards to the next linefeed, case 14788 forwards to the next linefeed, case 24789 reads in binary, output as Encoding.default_external4790 #append4791 when stream is Tempfile4792 behaves like appends4793 truncates and append content4794 appends in binary mode4795 when stream is ChunkedIO4796 behaves like appends4797 truncates and append content4798 appends in binary mode4799 #set4800 when stream is StringIO4801 behaves like sets4802 overwrite content4803 when stream is ChunkedIO4804 behaves like sets4805 overwrite content4806 #raw4807 when stream is File4808 behaves like sets4809 returns all contents if last_lines is not specified4810 limit max lines4811 returns last few lines4812 returns everything if trying to get too many lines4813 when stream is ChunkedIO4814 behaves like sets4815 returns all contents if last_lines is not specified4816 limit max lines4817 returns last few lines4818 returns everything if trying to get too many lines4819 #html_with_state4820 when stream is StringIO4821 behaves like html_with_states4822 returns html content with state4823 follow-up state4824 returns appended trace4825 when stream is ChunkedIO4826 behaves like html_with_states4827 returns html content with state4828 follow-up state4829 returns appended trace4830 #html4831 when stream is StringIO4832 behaves like htmls4833 returns html4834 returns html for last line only4835 when stream is ChunkedIO4836 behaves like htmls4837 returns html4838 returns html for last line only4839 #extract_coverage4840 when stream is StringIO4841 behaves like extract_coverages4842 valid content & regex4843 should eq "98.29"4844 valid content & bad regex4845 should be nil4846 no coverage content & regex4847 should be nil4848 multiple results in content & regex4849 returns the last matched coverage4850 when BUFFER_SIZE is smaller than stream.size4851 should eq "98.29"4852 when regex is multi-byte char4853 should eq "95.0"4854 when BUFFER_SIZE is equal to stream.size4855 should eq "98.29"4856 using a regex capture4857 should eq "65"4858 malicious regexp4859 takes under a second4860 multi-line data with rooted regexp4861 should eq "65"4862 long line4863 should eq "100"4864 many lines4865 should eq "100"4866 empty regex4867 skips processing4868 nil regex4869 skips processing4870 when stream is ChunkedIO4871 behaves like extract_coverages4872 valid content & regex4873 should eq "98.29"4874 valid content & bad regex4875 should be nil4876 no coverage content & regex4877 should be nil4878 multiple results in content & regex4879 returns the last matched coverage4880 when BUFFER_SIZE is smaller than stream.size4881 should eq "98.29"4882 when regex is multi-byte char4883 should eq "95.0"4884 when BUFFER_SIZE is equal to stream.size4885 should eq "98.29"4886 using a regex capture4887 should eq "65"4888 malicious regexp4889 takes under a second4890 multi-line data with rooted regexp4891 should eq "65"4892 long line4893 should eq "100"4894 many lines4895 should eq "100"4896 empty regex4897 skips processing4898 nil regex4899 skips processing4900LfsFileLock4901 should belong to project required:4902 should belong to user required:4903 should validate that :project_id cannot be empty/falsy4904 should validate that :user_id cannot be empty/falsy4905 should validate that :path cannot be empty/falsy4906 #can_be_unlocked_by?4907 when it's forced4908 can be unlocked by the author4909 can be unlocked by a maintainer4910 can't be unlocked by other user4911 when it isn't forced4912 can be unlocked by the author4913 can't be unlocked by a maintainer4914 can't be unlocked by other user4915CreateGpgSignatureWorker4916 when GpgKey is found4917 calls Gitlab::Gpg::Commit#signature4918 can recover from exception and continue the signature process4919 handles when a string is passed in for the commit SHA4920 creates a signature once4921 when Commit is not found4922 does not raise errors4923 when Project is not found4924 does not raise errors4925 does not call Gitlab::Gpg::Commit#signature4926StarredProjectsFinder4927 #execute4928 as same user4929 should contain exactly #<Project id:1534 namespace1382/project1350> and #<Project id:1535 namespace1383/project1351>4930 as other user4931 should contain exactly #<Project id:1536 namespace1384/project1352> and #<Project id:1537 namespace1385/project1353>4932 as no user4933 should contain exactly #<Project id:1538 namespace1386/project1354> and #<Project id:1539 namespace1387/project1355>4934Gitlab::Database::Count::ExactCountStrategy4935 #count4936 counts all models4937 returns default value if count times out4938ProjectDeployToken4939 should belong to project required:4940 should belong to deploy_token required:4941 should validate that :deploy_token cannot be empty/falsy4942 should validate that :project cannot be empty/falsy4943 should validate that :deploy_token_id is case-sensitively unique within the scope of :project_id4944DeployTokenPolicy4945 creating a deploy key4946 when user is maintainer4947 should be allowed :create_deploy_token4948 when user is not maintainer4949 should be disallowed :create_deploy_token4950 updating a deploy key4951 when user is maintainer4952 should be allowed :update_deploy_token4953 when user is not maintainer4954 should be disallowed :update_deploy_token4955Projects::Operations::UpdateService4956 #execute4957 metrics dashboard setting4958 without existing metrics dashboard setting4959 creates a setting4960 with existing metrics dashboard setting4961 updates the settings4962 with blank external_dashboard_url in params4963 destroys the metrics_setting entry in DB4964 error tracking4965 with existing error tracking setting4966 updates the settings4967 disable error tracking4968 can set api_url to nil4969 without an existing error tracking setting4970 creates a setting4971 with invalid parameters4972 does nothing4973 with inappropriate params4974 ignores params4975 grafana integration4976 without existing grafana integration4977 creates an integration4978 with an existing grafana integration4979 updates the settings4980 with all grafana attributes blank in params4981 destroys the metrics_setting entry in DB4982UsersStarProjectsFinder4983 #execute4984 as same user4985 should contain exactly #<UsersStarProject id: 8, project_id: 1556, user_id: 2493, created_at: "2019-10-16 17:17:01", updated_at: "2019-10-16 17:17:01"> and #<UsersStarProject id: 7, project_id: 1556, user_id: 2491, created_at: "2019-10-16 17:17:01", updated_at: "2019-10-16 17:17:01">4986 as other user4987 should contain exactly #<UsersStarProject id: 9, project_id: 1557, user_id: 2494, created_at: "2019-10-16 17:17:02", updated_at: "2019-10-16 17:17:02">4988 as no user4989 should contain exactly #<UsersStarProject id: 11, project_id: 1558, user_id: 2498, created_at: "2019-10-16 17:17:02", updated_at: "2019-10-16 17:17:02">4990Gitlab::LoopHelpers4991 #loop_until4992 when limit is not given4993 raises an error4994 when timeout is specified4995 returns false after it's expired4996 executes the block at least once4997 when iteration limit is specified4998 returns false after it's expired4999 executes the block once5000notify/pipeline_failed_email.text.erb5001 renders the email correctly5002 behaves like correct pipeline information for pipelines for merge requests5003 when pipeline for merge request5004 renders a source ref of the pipeline5005layouts/nav/sidebar/_admin5006 on home page5007 behaves like page has active tab5008 activates Overview tab5009 behaves like has nav sidebar5010 has collapsed nav sidebar on mobile5011 on projects5012 behaves like page has active tab5013 activates Overview tab5014 behaves like page has active sub tab5015 activates Projects sub tab5016 on groups5017 behaves like page has active tab5018 activates Overview tab5019 behaves like page has active sub tab5020 activates Groups sub tab5021 on users5022 behaves like page has active tab5023 activates Overview tab5024 behaves like page has active sub tab5025 activates Users sub tab5026 on logs5027 behaves like page has active tab5028 activates Monitoring tab5029 behaves like page has active sub tab5030 activates Logs sub tab5031 on messages5032 behaves like page has active tab5033 activates Messages tab5034 on hooks5035 behaves like page has active tab5036 activates Hooks tab5037 on background jobs5038 behaves like page has active tab5039 activates Monitoring tab5040 behaves like page has active sub tab5041 activates Background Jobs sub tab5042ObjectStorage::BackgroundMoveWorker5043 for LFS5044 when object storage is enabled5045 uploads object to storage5046 when background upload is disabled5047 is skipped5048 when object storage is disabled5049 doesn't migrate files5050 for job artifacts5051 when local storage is used5052 and remote storage is defined5053 migrates file to remote storage5054 for uploads5055 when local storage is used5056 and remote storage is defined5057 supports using the model5058 migrates file to remote storage5059 supports using the Upload5060 migrates file to remote storage5061ReleasesFinder5062 #execute5063 when the user is not part of the project5064 returns no releases5065 when the user is a project developer5066 sorts by release date5067Gitlab::Ci::Status::Pipeline::Common5068 #has_action?5069 should not have action5070 #has_details?5071 when user has access to read pipeline5072 should have details5073 when user does not have access to read pipeline5074 should not have details5075 #details_path5076 links to the pipeline details page5077Quality::Seeders::Issues5078 #seed5079 seeds issues5080Gitlab::Ci::Build::Credentials::Registry5081 contains valid DockerRegistry credentials5082 .valid?5083 when registry is enabled5084 should be truthy5085 when registry is disabled5086 should be falsey5087Gitlab::Ci::Pipeline::Chain::Build5088 never breaks the chain5089 fills pipeline object with data5090 sets a valid config source5091 returns a valid pipeline5092 does not persist a pipeline5093 when pipeline is running for a tag5094 correctly indicated that this is a tagged pipeline5095 when pipeline is running for a merge request5096 correctly indicated that this is a merge request pipeline5097 correctly sets souce sha and target sha to pipeline5098 when pipeline is running for an external pull request5099 correctly indicated that this is an external pull request pipeline5100 correctly sets source sha and target sha to pipeline5101gitlab:git rake tasks5102 fsck5103 outputs the integrity check for a repo5104RescheduleBuildsStagesMigration5105NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping5106NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5107NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5108NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping5109 schedules delayed background migrations in batches in bulk5110NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping5111NOTICE: table "design_management_designs" does not exist, skipping5112NOTICE: table "design_management_designs_versions" does not exist, skipping5113NOTICE: table "design_management_versions" does not exist, skipping5114NOTICE: table "geo_container_repository_updated_events" does not exist, skipping5115NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5116NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5117NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping5118ScheduleSetConfidentialNoteEventsOnWebhooks5119NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping5120NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5121NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5122NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping5123 schedules background migrations at correct time5124 correctly processes web hooks5125NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping5126NOTICE: table "design_management_designs" does not exist, skipping5127NOTICE: table "design_management_designs_versions" does not exist, skipping5128NOTICE: table "design_management_versions" does not exist, skipping5129NOTICE: table "geo_container_repository_updated_events" does not exist, skipping5130NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5131NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5132NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping5133gitlab:uploads rake tasks5134 check5135 outputs the integrity check for each batch5136 errors out about missing files on the file system5137 errors out about invalid checksum5138Projects::EnableDeployKeyService5139 enables the key5140 trying to add an unaccessable key5141 returns nil if the key cannot be added5142 add the same key twice5143 returns existing key5144UsersWithPendingTodosFinder5145 #execute5146 returns the users for all pending todos of a target5147MergeRequestDiffEntity5148 as json5149 exposes needed attributes5150ProjectCiCdSetting5151 .available?5152 returns true5153 memoizes the schema version5154 validations5155 validates default_git_depth is between 0 and 1000 or nil5156 #default_git_depth5157 sets default value for new records5158 does not set default value if present5159 when feature flag :ci_set_project_default_git_depth is disabled5160 does not set default value for new records5161UpdateSnippetService5162 When public visibility is restricted5163 non-admins should not be able to update to public visibility5164 admins should be able to update to public visibility5165 when visibility level is passed as a string5166 assigns the correct visibility level5167 usage counter5168 increments count5169 does not increment count if create fails5170ResourceLabelEventPolicy5171 #read_resource_label_event5172 with non-member user5173 does not allow to read event5174 with member user5175 allows to read event for accessible label5176 does not allow to read event for not accessible label5177 #read_label5178 allows to read deleted label5179 allows to read accessible label5180 does not allow to read not accessible label5181StealFillStoreUpload5182NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping5183NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5184NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5185 #up5186 steals the FillStoreUpload background migration5187 does not run migration if not needed5188DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gitlab-org/gitlab/db/post_migrate/20181105201455_steal_fill_store_upload.rb:22)5189 ensures all rows are migrated5190NOTICE: table "design_management_designs" does not exist, skipping5191NOTICE: table "design_management_designs_versions" does not exist, skipping5192NOTICE: table "design_management_versions" does not exist, skipping5193NOTICE: table "geo_container_repository_updated_events" does not exist, skipping5194NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5195NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5196NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping5197RescheduleCommitsCountForMergeRequestDiff5198NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping5199NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5200NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5201NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping5202DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gitlab-org/gitlab/db/migrate/20180309121820_reschedule_commits_count_for_merge_request_diff.rb:24)5203DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gitlab-org/gitlab/db/migrate/20180309121820_reschedule_commits_count_for_merge_request_diff.rb:24)5204DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id), MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/gitlab-org/gitlab/db/migrate/20180309121820_reschedule_commits_count_for_merge_request_diff.rb:24)5205 correctly schedules background migrations5206NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping5207NOTICE: table "design_management_designs" does not exist, skipping5208NOTICE: table "design_management_designs_versions" does not exist, skipping5209NOTICE: table "design_management_versions" does not exist, skipping5210NOTICE: table "geo_container_repository_updated_events" does not exist, skipping5211NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping5212NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping5213NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping5214Gitlab::Graphql::Loaders::BatchProjectStatisticsLoader5215 #find5216 only queries once for project statistics5217notify/changed_milestone_email.html.haml5218 milestone without start and due dates5219 renders without date range5220 milestone with start and due dates5221 renders with date range5222AbuseReport5223 should be valid5224 associations5225 should belong to reporter class_name => User required:5226 should belong to user required:5227 aliases reporter to author5228 validations5229 should validate that :reporter cannot be empty/falsy5230 should validate that :user cannot be empty/falsy5231 should validate that :message cannot be empty/falsy5232 should validate that :user_id is case-sensitively unique, producing a custom validation error on failure5233 #remove_user5234 blocks the user5235 lets a worker delete the user5236 #notify5237 delivers5238 returns early when not persisted5239VariableEntity5240 #as_json5241 contains required fields5242Gitlab::Auth::LDAP::DN5243 #normalize_value5244 behaves like normalizes a DN attribute value5245 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"5246 normalizes the DN attribute value5247 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"5248 normalizes the DN attribute value5249 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"5250 normalizes the DN attribute value5251 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"5252 normalizes the DN attribute value5253 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "5254 normalizes the DN attribute value5255 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"5256 normalizes the DN attribute value5257 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"5258 normalizes the DN attribute value5259 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"5260 normalizes the DN attribute value5261 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"5262 normalizes the DN attribute value5263 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"5264 normalizes the DN attribute value5265 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"5266 normalizes the DN attribute value5267 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"5268 normalizes the DN attribute value5269 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"5270 normalizes the DN attribute value5271 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"5272 normalizes the DN attribute value5273 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"5274 normalizes the DN attribute value5275 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"5276 normalizes the DN attribute value5277 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"5278 normalizes the DN attribute value5279 when the given DN is malformed5280 when ending with a comma5281 raises MalformedError5282 when given a BER encoded attribute value with a space in it5283 raises MalformedError5284 when given a BER encoded attribute value with a non-hex character in it5285 raises MalformedError5286 when given a BER encoded attribute value with a non-hex character in it5287 raises MalformedError5288 when given a hex pair with a non-hex character in it, inside double quotes5289 raises MalformedError5290 with an open (as opposed to closed) double quote5291 raises MalformedError5292 with an invalid escaped hex code5293 raises MalformedError5294 with a value ending with the escape character5295 raises MalformedError5296 #to_normalized_s5297 behaves like normalizes a DN5298 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"5299 normalizes the DN5300 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"5301 normalizes the DN5302 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"5303 normalizes the DN5304 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5305 normalizes the DN5306 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""5307 normalizes the DN5308 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"5309 normalizes the DN5310 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"5311 normalizes the DN5312 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5313 normalizes the DN5314 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5315 normalizes the DN5316 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "5317 normalizes the DN5318 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"5319 normalizes the DN5320 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5321 normalizes the DN5322 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5323 normalizes the DN5324 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5325 normalizes the DN5326 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"5327 normalizes the DN5328 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5329 normalizes the DN5330 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5331 normalizes the DN5332 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5333 normalizes the DN5334 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"5335 normalizes the DN5336 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"5337 normalizes the DN5338 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5339 normalizes the DN5340 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5341 normalizes the DN5342 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"5343 normalizes the DN5344 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"5345 normalizes the DN5346 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"5347 normalizes the DN5348 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5349 normalizes the DN5350 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5351 normalizes the DN5352 when we do not support the given DN format5353 multivalued RDNs5354 without extraneous whitespace5355 raises UnsupportedError5356 with extraneous whitespace5357 around the phone number plus sign5358 raises UnsupportedError5359 not around the phone number plus sign5360 raises UnsupportedError5361 when the given DN is malformed5362 when ending with a comma5363 raises MalformedError5364 when given a BER encoded attribute value with a space in it5365 raises MalformedError5366 when given a BER encoded attribute value with a non-hex character in it5367 raises MalformedError5368 when given a BER encoded attribute value with a non-hex character in it5369 raises MalformedError5370 when given a hex pair with a non-hex character in it, inside double quotes5371 raises MalformedError5372 without a name value pair5373 raises MalformedError5374 with an open (as opposed to closed) double quote5375 raises MalformedError5376 with an invalid escaped hex code5377 raises MalformedError5378 with a value ending with the escape character5379 raises MalformedError5380 with an invalid OID attribute type name5381 raises MalformedError5382 with a period in a non-OID attribute type name5383 raises MalformedError5384 when starting with non-space, non-alphanumeric character5385 raises MalformedError5386 when given a UID with an escaped equal sign5387 raises MalformedError5388projects/imports/new.html.haml5389 when import fails5390 escapes HTML in import errors5391GroupCustomAttribute5392 assocations5393 should belong to group required:5394 validations5395 should validate that :group cannot be empty/falsy5396 should validate that :key cannot be empty/falsy5397 should validate that :value cannot be empty/falsy5398 should validate that :key is case-sensitively unique within the scope of :group_id5399Gitlab::PathRegex5400 TOP_LEVEL_ROUTES5401 includes all the top level namespaces5402 GROUP_ROUTES5403 don't contain a second wildcard5404 PROJECT_WILDCARD_ROUTES5405 includes all paths that can be used after a namespace/project path5406 .root_namespace_route_regex5407 rejects top level routes5408 accepts project wildcard routes5409 accepts group routes5410 is not case sensitive5411 does not allow extra slashes5412 .full_namespace_path_regex5413 is not case sensitive5414 does not allow extra slashes5415 at the top level5416 when the final level5417 rejects top level routes5418 accepts project wildcard routes5419 accepts group routes5420 when more levels follow5421 rejects top level routes5422 accepts project wildcard routes5423 accepts group routes5424 at the second level5425 when the final level5426 accepts top level routes5427 rejects project wildcard routes5428 rejects group routes5429 when more levels follow5430 accepts top level routes5431 rejects project wildcard routes5432 rejects group routes5433 .project_route_regex5434 accepts top level routes5435 rejects project wildcard routes5436 accepts group routes5437 is not case sensitive5438 does not allow extra slashes5439 .full_project_path_regex5440 accepts top level routes5441 rejects project wildcard routes5442 accepts group routes5443 is not case sensitive5444 does not allow extra slashes5445 .namespace_format_regex5446 should match "gitlab-ce"5447 should match "gitlab_git"5448 should match "_underscore.js"5449 should match "100px.com"5450 should match "gitlab.org"5451 should not match "?gitlab"5452 should not match "git lab"5453 should not match "gitlab.git"5454 should not match "gitlab.org."5455 should not match "gitlab.org/"5456 should not match "/gitlab.org"5457 should not match "gitlab git"5458 .project_path_format_regex5459 should match "gitlab-ce"5460 should match "gitlab_git"5461 should match "_underscore.js"5462 should match "100px.com"5463 should not match "?gitlab"5464 should not match "git lab"5465 should not match "gitlab.git"5466ProjectDailyStatisticsWorker#perform5467 #perform5468 calls daily_statistics_service with the given project5469 with a non-existing project5470 does nothing5471 with an existing project without a repository5472 does nothing5473Gitlab::ManifestImport::Manifest5474 #valid?5475 valid file5476 should equal true5477 missing or invalid attributes5478 should equal false5479 errors5480 should include "Make sure a <remote> tag is present and is valid."5481 should include "Make sure every <project> tag has name and path attributes."5482 #projects5483 should eq 6605484 should eq "platform/build"5485 should eq "build/make"5487layouts/_head5488 escapes HTML-safe strings in page_title5489 escapes HTML-safe strings in page_description5490 escapes HTML-safe strings in page_image5491DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.5492This behavior is deprecated and will be removed.5493To bypass the asset pipeline and preserve this behavior,5494use the `skip_pipeline: true` option.5495 (called from _app_views_layouts__head_html_haml___139317534653061520_47406641259100 at /builds/gitlab-org/gitlab/app/views/layouts/_head.html.haml:49)5496 adds selected syntax highlight stylesheet5497 when an asset_host is set and feature is activated in the config it will5498 add a link dns-prefetch tag5499 add a link preconnect tag5500 when an asset_host is set and feature is not activated in the config it will5501 not add a link dns-prefetch tag5502 when an asset_host is set and snowplow url is set5503 add a snowplow script tag with asset host5504 when a Piwik config is set5505 add a Piwik Javascript5506Gitlab::Graphql::Loaders::PipelineForShaLoader5507 #find_last5508 batch-resolves latest pipeline5509MigrateUpdateHeadPipelineForMergeRequestSidekiqQueue5510 when there are jobs in the queues5511 correctly migrates queue when migrating up5512 does not affect other queues under the same namespace5513 correctly migrates queue when migrating down5514 when there are no jobs in the queues5515 does not raise error when migrating up5516 does not raise error when migrating down5517PushEventPayload5518 behaves like having unique enum values5519 has unique values in "action"5520 has unique values in "ref_type"5521 saving payloads5522 does not allow commit messages longer than 70 characters5523AnalyticsBuildSerializer5524 when there is a single object provided5525 contains important elements of analyticsBuild5526RemoteMirrorEntity55272019-10-16T17:19:03.005Z 91 TID-gsy8bxm3v INFO: Removing remote remote_mirror_1 from project 160655282019-10-16T17:19:03.017Z 91 TID-gsy8bxm3v ERROR: Could not remove remote remote_mirror_1 from project 16065529 exposes remote-mirror-specific elements5530RuboCop::Cop::PreferClassMethodsOverModule5531 flags violation when using module ClassMethods5532 doesn't flag violation when using class_methods5533 doesn't flag violation when module is not extending ActiveSupport::Concern5534 doesn't flag violation when ClassMethods is used inside a class5535 doesn't flag violation when not using either class_methods or ClassMethods5536 autocorrects ClassMethods into class_methods5537OmniAuth::Strategies::SAML5538 POST /users/auth/saml5539I, [2019-10-16T17:19:03.692108 #91] INFO -- omniauth: (saml) Request phase initiated.5540 redirects to the provider login page5541I, [2019-10-16T17:19:03.864001 #91] INFO -- omniauth: (saml) Request phase initiated.5542 stores request ID during request phase5543RuboCop::Cop::Migration::AddLimitToStringColumns5544 in migration5545 when creating a table5546 with string columns and limit5547 register no offense5548 with limit in a different position5549 registers an offense5550 with string columns and no limit5551 registers an offense5552 with no string columns5553 register no offense5554 when adding columns5555 with string columns with limit5556 registers no offense5557 with limit in a different position5558 registers no offense5559 with string columns with no limit5560 registers offense5561 with no string columns5562 registers no offense5563 with add_column_with_default5564 with a limit5565 registers no offense5566 without a limit5567 registers an offense5568 with methods5569 registers no offense5570 outside of migrations5571 registers no offense5572Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker5573 #import5574 imports the issues and diff notes5575Evidences::IssueEntity5576 exposes the expected fields5577AfterCommitQueue5578 runs after transaction is committed5579Gitlab::Ci::Pipeline::Expression::Lexeme::NotEquals5580 .build5581 with non-evaluable operands5582 creates a new instance of the token5583 with evaluable operands5584 creates a new instance of the token5585 .type5586 is an operator5587 .precedence5588 has a precedence5589 #evaluate5590 when left and right are equal5591 left_value: "string", right_value: "string"5592 should eq false5593 left_value: 1, right_value: 15594 should eq false5595 left_value: "", right_value: ""5596 should eq false5597 left_value: nil, right_value: nil5598 should eq false5599 when left and right are not equal5600 left_value: "one string", right_value: "two string"5601 should eq true5602 left_value: "one string", right_value: 15603 should eq true5604 left_value: "one string", right_value: 25605 should eq true5606 left_value: "one string", right_value: ""5607 should eq true5608 left_value: "one string", right_value: nil5609 should eq true5610 left_value: "one string", right_value: false5611 should eq true5612 left_value: "one string", right_value: true5613 should eq true5614 left_value: "two string", right_value: "one string"5615 should eq true5616 left_value: "two string", right_value: 15617 should eq true5618 left_value: "two string", right_value: 25619 should eq true5620 left_value: "two string", right_value: ""5621 should eq true5622 left_value: "two string", right_value: nil5623 should eq true5624 left_value: "two string", right_value: false5625 should eq true5626 left_value: "two string", right_value: true5627 should eq true5628 left_value: 1, right_value: "one string"5629 should eq true5630 left_value: 1, right_value: "two string"5631 should eq true5632 left_value: 1, right_value: 25633 should eq true5634 left_value: 1, right_value: ""5635 should eq true5636 left_value: 1, right_value: nil5637 should eq true5638 left_value: 1, right_value: false5639 should eq true5640 left_value: 1, right_value: true5641 should eq true5642 left_value: 2, right_value: "one string"5643 should eq true5644 left_value: 2, right_value: "two string"5645 should eq true5646 left_value: 2, right_value: 15647 should eq true5648 left_value: 2, right_value: ""5649 should eq true5650 left_value: 2, right_value: nil5651 should eq true5652 left_value: 2, right_value: false5653 should eq true5654 left_value: 2, right_value: true5655 should eq true5656 left_value: "", right_value: "one string"5657 should eq true5658 left_value: "", right_value: "two string"5659 should eq true5660 left_value: "", right_value: 15661 should eq true5662 left_value: "", right_value: 25663 should eq true5664 left_value: "", right_value: nil5665 should eq true5666 left_value: "", right_value: false5667 should eq true5668 left_value: "", right_value: true5669 should eq true5670 left_value: nil, right_value: "one string"5671 should eq true5672 left_value: nil, right_value: "two string"5673 should eq true5674 left_value: nil, right_value: 15675 should eq true5676 left_value: nil, right_value: 25677 should eq true5678 left_value: nil, right_value: ""5679 should eq true5680 left_value: nil, right_value: false5681 should eq true5682 left_value: nil, right_value: true5683 should eq true5684 left_value: false, right_value: "one string"5685 should eq true5686 left_value: false, right_value: "two string"5687 should eq true5688 left_value: false, right_value: 15689 should eq true5690 left_value: false, right_value: 25691 should eq true5692 left_value: false, right_value: ""5693 should eq true5694 left_value: false, right_value: nil5695 should eq true5696 left_value: false, right_value: true5697 should eq true5698 left_value: true, right_value: "one string"5699 should eq true5700 left_value: true, right_value: "two string"5701 should eq true5702 left_value: true, right_value: 15703 should eq true5704 left_value: true, right_value: 25705 should eq true5706 left_value: true, right_value: ""5707 should eq true5708 left_value: true, right_value: nil5709 should eq true5710 left_value: true, right_value: false5711 should eq true5712Gitlab::Auth::LDAP::Authentication5713 login5714 finds the user if authentication is successful5715 is false if the user does not exist5716 is false if authentication fails5717 fails if ldap is disabled5718 fails if no login is supplied5719 fails if no password is supplied5720PagesDomainVerificationCronWorker5721 #perform5722 does nothing if the database is read-only5723 enqueues a PagesDomainVerificationWorker for domains needing verification5724Gitlab::QuickActions::CommandDefinition5725 #all_names5726 when the command has aliases5727 returns an array with the name and aliases5728 when the command doesn't have aliases5729 returns an array with the name5730 #noop?5731 when the command has an action block5732 returns false5733 when the command doesn't have an action block5734 returns true5735 #available?5736 when the command has a condition block5737 when the condition block returns true5738 returns true5739 when the condition block returns false5740 returns false5741 when the command doesn't have a condition block5742 returns true5743 when the command has types5744 when the command target type is allowed5745 returns true5746 when the command target type is not allowed5747 returns true5748 when the command has no types5749 any target type is allowed5750 #execute5751 when the command is a noop5752 doesn't execute the command5753 when the command is not a noop5754 when the command is not available5755 doesn't execute the command5756 when the command is available5757 when the commnd has no arguments5758 when the command is provided an argument5759 executes the command5760 when the command is not provided an argument5761 executes the command5762 when the command has 1 required argument5763 when the command is provided an argument5764 executes the command5765 when the command is not provided an argument5766 doesn't execute the command5767 when the command has 1 optional argument5768 when the command is provided an argument5769 executes the command5770 when the command is not provided an argument5771 executes the command5772 when the command defines parse_params block5773 executes the command passing the parsed param5774 #execute_message5775 when the command is a noop5776 returns nil5777 when the command is not a noop5778 when the command is not available5779 returns nil5780 when the command is available5781 when the execution_message is a static string5782 returns this static string5783 when the explanation is dynamic5784 invokes the proc5785 #explain5786 when the command is not available5787 returns nil5788 when the explanation is a static string5789 returns this static string5790 when warning is set5791 returns this static string5792 when the explanation is dynamic5793 invokes the proc5794BlobViewer::ServerSide5795 #prepare!5796 loads all blob data5797 #render_error5798 when the blob is stored externally5799 return :server_side_but_stored_externally5800Gitlab::Ci::Pipeline::Chain::Sequence5801 when one of steps breaks the chain5802 does not process the second step5803 returns a pipeline object5804 when all chains are executed correctly5805 iterates through entire sequence5806 returns a pipeline object5807BlobViewer::RouteMap5808 #validation_message5809 calls prepare! on the viewer5810 when the configuration is valid5811 returns nil5812 when the configuration is invalid5813 returns the error message5814Gitlab::Redis::Queues5815 .params5816 withstands mutation5817 when url contains unix socket reference5818 with old format5819 returns path key instead5820 with new format5821 returns path key instead5822 when url is host based5823 with old format5824 returns hash with host, port, db, and password5825 with new format5826 returns hash with host, port, db, and password5827 .url5828 withstands mutation5829 when yml file with env variable5830 reads redis url from env variable5831 ._raw_config5832 is frozen5833 returns false when the file does not exist5834 returns false when the filename can't be determined5835 .with5836 when running not on sidekiq workers5837 instantiates a connection pool with size 55838 when running on sidekiq workers5839 instantiates a connection pool with a size based on the concurrency of the worker5840 #sentinels5841 when sentinels are defined5842 returns an array of hashes with host and port keys5843 when sentinels are not defined5844 returns nil5845 #sentinels?5846 when sentinels are defined5847 returns true5848 when sentinels are not defined5849 returns false5850 #raw_config_hash5851 returns default redis url when no config file is present5852 returns old-style single url config in a hash5853 #fetch_config5854 returns false when no config file is present5855 returns false when config file is present but has invalid YAML5856ProjectMetricsSetting5857 Associations5858 should belong to project required:5859 Validations5860 when external_dashboard_url is over 255 chars5861 fails validation5862 with unsafe url5863 should be invalid5864 non ascii chars in external_dashboard_url5865 should be invalid5866 internal url in external_dashboard_url5867 should be valid5868 external_dashboard_url is blank5869 should be invalid5870CalendarHelper5871 #calendar_url_options5872 when signed in5873 includes the current_user's feed_token5874 when signed out5875 does not have a feed_token5876Gitlab::Git::Blame5877 blaming a file5878 each count5879 should be a String with encoding UTF-85880 ISO-8859 encoding5881 converts to UTF-85882 unknown encoding5883 converts to UTF-85884TaskListToggleService5885 checks Task 15886 unchecks Item 15887 checks task in loose list5888 returns false if line_source does not match the text5889 tolerates \r\n line endings5890 returns false if markdown is nil5891 returns false if markdown_html is nil5892 properly handles tasks in a blockquote5893 properly handles a GitLab blockquote5894Gitlab::UsageDataCounters::CycleAnalyticsCounter5895 behaves like a redis usage counter5896 .count(views)5897 increments the CycleAnalytics views counter by 15898 .read(views)5899 returns the total number of views events5900 behaves like a redis usage counter with totals5901 totals5902 can report all totals5903 unknown events5904 cannot increment5905 cannot read5906Gitlab::SQL::RecursiveCTE5907 #to_arel5908 generates an Arel relation for the CTE body5909 #alias_to5910 returns an alias for the CTE5911 replaces dots with an underscore5912 #apply_to5913 applies a CTE to an ActiveRecord::Relation5914PaginationHelper5915 #paginate_collection5916 paginates a collection without using a COUNT5917 paginates a collection using a COUNT5918Gitlab::DependencyLinker::GodepsJsonLinker5919 .support?5920 supports Godeps.json5921 does not support other files5922 #link5923 links the package name5924 links GitHub repos5925 links GitLab projects5926 links Golang packages5927Resolvers::EchoResolver5928 #resolve5929 echoes text and username5930 echoes text and nil as username5931Gitlab::Ci::Config::Entry::Key5932 validations5933 when entry config value is correct5934 #value5935 returns key value5936 #valid?5937 is valid5938 when entry value is not correct5939 #errors5940 saves errors5941 when entry value contains slash5942 behaves like key with slash5943 is invalid5944 reports errors with config value5945 when entry value contains URI encoded slash (%2F)5946 behaves like key with slash5947 is invalid5948 reports errors with config value5949 when entry value is a dot5950 behaves like key with only dots5951 is invalid5952 reports errors with config value5953 when entry value is two dots5954 behaves like key with only dots5955 is invalid5956 reports errors with config value5957 when entry value is a URI encoded dot (%2E)5958 behaves like key with only dots5959 is invalid5960 reports errors with config value5961 when entry value is two URI encoded dots (%2E)5962 behaves like key with only dots5963 is invalid5964 reports errors with config value5965 when entry value is one dot and one URI encoded dot5966 behaves like key with only dots5967 is invalid5968 reports errors with config value5969 .default5970 returns default key5971Gitlab::TimeTrackingFormatter5972 #parse5973 positive durations5974 should eq 120005975 negative durations5976 should eq -120005977 durations with months5978 uses our custom conversions5979 #output5980 time_tracking_limit_to_hours setting is true5981 should eq "49h 40m"5982 time_tracking_limit_to_hours setting is false5983 should eq "1w 1d 1h 40m"5984ProtectedBranch::PushAccessLevel5985 should validate that :access_level is either ‹40›, ‹30›, or ‹0›5986Banzai::Filter::MathFilter5987 leaves regular inline code unchanged5988 removes surrounding dollar signs and adds class code, math and js-render-math5989 only removes surrounding dollar signs5990 only removes surrounding single dollar sign5991 adds data-math-style inline attribute to inline math5992 adds class code and math to inline math5993 adds js-render-math class to inline math5994 ignores cases with missing dolar sign at the end5995 ignores cases with missing dolar sign at the beginning5996 ignores dollar signs if it is not adjacent5997 ignores dollar signs if they are inside another element5998 adds data-math-style display attribute to display math5999 adds js-render-math class to display math6000 ignores code blocks that are not math6001 requires the pre to contain both code and math6002 dollar signs around to display math6003Board6004 relationships6005 should belong to project required:6006 should have many lists order => {:list_type=>:asc, :position=>:asc} dependent => delete_all6007 validations6008 should validate that :project cannot be empty/falsy6009QualifiedDomainArrayValidator6010 validations6011 returns error when attribute is nil6012 allows when domain is valid6013 returns error when domain contains unicode6014 returns error when entry is larger than 255 chars6015 returns error when entry contains HTML tags6016 behaves like can be blank6017 allows when attribute is blank6018 when allow_nil is set to true6019 behaves like can be nil6020 allows when attribute is nil6021 behaves like can be blank6022 allows when attribute is blank6023 when allow_blank is set to true6024 behaves like can be nil6025 allows when attribute is nil6026 behaves like can be blank6027 allows when attribute is blank6028ServiceResponse6029 .success6030 creates a successful response without a message6031 creates a successful response with a message6032 creates a successful response with payload6033 creates a successful response with default HTTP status6034 creates a successful response with custom HTTP status6035 .error6036 creates a failed response without HTTP status6037 creates a failed response with HTTP status6038 creates a failed response with payload6039 #success?6040 returns true for a successful response6041 returns false for a failed response6042 #error?6043 returns false for a successful response6044 returns true for a failed response6045RuboCop::Cop::Migration::Timestamps6046 in migration6047 registers an offense when the "timestamps" method is used6048 does not register an offense when the "timestamps" method is not used6049 does not register an offense when the "timestamps_with_timezone" method is used6050 outside of migration6051 registers no offense6052Gitlab::Email::Hook::AdditionalHeadersInterceptor6053 adds Auto-Submitted header6054 when the same mail object is sent twice6055 does not add the Auto-Submitted header twice6056Clusters::Project6057 should belong to cluster required:6058 should belong to project required:6059 should have many kubernetes_namespaces6060Gitlab::Ci::Config::Entry::Default6061 .nodes6062 returns a hash6063 when filtering all the entry/node names6064 contains the expected node names6065 validations6066 when default entry value is correct6067 #valid?6068 is valid6069 when default entry is empty6070 #valid6071 is valid6072 when default entry is not correct6073 incorrect config value type6074 #errors6075 reports error about a config type6076 when unknown keys detected6077 #valid6078 is not valid6079 #compose!6080 when default entry inherits configuration from root6081 raises error6082 when default entry inherits a non-defined configuration from root6083 inherits non-defined configuration entries6084Gitlab::Auth::IpRateLimiter6085 #register_fail!6086 bans after 3 consecutive failures6087 with a whitelisted netmask6088 behaves like whitelisted IPs6089 does not ban after max retry limit6090 with a whitelisted IP6091 behaves like whitelisted IPs6092 does not ban after max retry limit6093Gitlab::Ci::Build::Artifacts::Path6094 #valid?6095 when path contains a zero character6096 is not valid6097 when path is not utf8 string6098 is not valid6099 when path is valid6100 is valid6101 #directory?6102 when path ends with a directory indicator6103 is a directory6104 when path does not end with a directory indicator6105 is not a directory6106 #name6107 returns a base name6108 #nodes6109 returns number of path nodes6110 #to_s6111 when path is valid6112 returns a string representation of a path6113 when path is invalid6114 raises an error6115Gitlab::SidekiqVersioning::Manager6116 #initialize61172019-10-16T17:19:16.364Z 91 TID-gsy8bxm3v INFO: Listening on queues ["cronjob", "cronjob:admin_email", "cronjob:ci_archive_traces_cron", "cronjob:expire_build_artifacts", "cronjob:gitlab_usage_ping", "cronjob:import_export_project_cleanup", "cronjob:issue_due_scheduler", "cronjob:namespaces_prune_aggregation_schedules", "cronjob:pages_domain_removal_cron", "cronjob:pages_domain_ssl_renewal_cron", "cronjob:pages_domain_verification_cron", "cronjob:pipeline_schedule", "cronjob:prune_old_events", "cronjob:prune_web_hook_logs", "cronjob:remove_expired_group_links", "cronjob:remove_expired_members", "cronjob:remove_unreferenced_lfs_objects", "cronjob:repository_archive_cache", "cronjob:repository_check_dispatch", "cronjob:requests_profiles", "cronjob:schedule_migrate_external_diffs", "cronjob:stuck_ci_jobs", "cronjob:stuck_import_jobs", "cronjob:stuck_merge_jobs", "cronjob:trending_projects", "post_receive", "repository_fork", "unknown"]6118 listens on all expanded queues6119Gitlab::Ci::Trace::SectionParser6120 #sections6121 empty trace6122 should be empty6123 with a sectionless trace6124 should be empty6125 with trace markers6126 should eq 26127 should eq "b"6128 should eq 2017-10-05 00:00:00.000000000 +00006129 should eq 2017-10-05 00:00:01.000000000 +00006130 #parse!6131 multiple "section_" but no complete markers6132 must find 3 possible section start but no complete sections6133 trace with UTF-8 chars6134 must handle correctly byte positioning6135RuboCop::Cop::Scalability::FileUploads6136 with required params6137 detects File in types array6138 detects File as type argument6139 with optional params6140 detects File in types array6141 detects File as type argument6142Gitlab::Config::Entry::Factory6143 #create!6144 when setting a concrete value6145 creates entry with valid value6146 when setting description6147 configures description6148 creates entry with description6149 when setting inherit6150 makes object inheritable6151 when setting key6152 creates entry with custom key6153 when setting a parent6154 creates entry with valid parent6155 when not setting a value6156 raises error6157 when creating entry with nil value6158 creates an unspecified entry6159 when passing metadata6160 passes metadata as a parameter6161DetectRepositoryLanguagesWorker6162 #perform6163 calls de DetectRepositoryLanguages service6164 when invalid ids are used6165 does not raise when the project could not be found6166Gitlab::Sherlock::FileSample6167 #id6168 returns the ID6169 #file6170 returns the file path6171 #line_samples6172 returns the line samples6173 #events6174 returns the total number of events6175 #duration6176 returns the total execution time6177 #relative_path6178 returns the relative path6179 #to_param6180 returns the sample ID6181 #source6182 returns the contents of the file6183Gitlab::CycleAnalytics::ProductionStage6184 behaves like base stage6185 has the median data value6186 has the median data stage6187 has the median data description6188 has the title6189 has the events6190TimeHelper6191 #time_interval_in_words6192 returns minutes and seconds6193 #duration_in_numbers6194 duration: 0, formatted_string: "00:00"6195 should eq "00:00"6196 duration: 1 second, formatted_string: "00:01"6197 should eq "00:01"6198 duration: 42 seconds, formatted_string: "00:42"6199 should eq "00:42"6200 duration: 2 minutes and 1 second, formatted_string: "02:01"6201 should eq "02:01"6202 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"6203 should eq "03:02:01"6204 duration: 30 hours, formatted_string: "30:00:00"6205 should eq "30:00:00"6206SystemNotes::BaseService6207 #noteable6208 should eq #<Double (anonymous)>6209 returns nil if no arguments are given6210 #project6211 should eq #<Double (anonymous)>6212 returns nil if no arguments are given6213 #author6214 should eq #<Double (anonymous)>6215 returns nil if no arguments are given6216Gitlab::ColorSchemes6217 .body_classes6218 returns a space-separated list of class names6219 .by_id6220 returns a scheme by its ID6221 .default6222 returns the default scheme6223 .each6224 passes the block to the SCHEMES Array6225 .for_user6226 returns default when user is nil6227 returns user's preferred color scheme6228Gitlab::Git::LfsPointerFile6229 #size6230 counts the bytes6231 handles non ascii data6232 #sha2566233 hashes the content correctly6234 #pointer6235 starts with the LFS version6236 includes sha2566237 ends with the size6238GravatarService6239 #execute6240 replaces the placeholders6241Banzai::Renderer6242 #cache_collection_render6243 when an item has a rendered field6244 does not touch redis if the field is in the cache6245 #render_field6246 without cache6247 returns cacheless render field6248 with cache6249 with a stale cache6250 caches and returns the result6251 skips database caching on a GitLab read-only instance6252 with an up-to-date cache6253 uses the cache6254RootStorageStatistics6255 should eq "RootStorageStatistics"6256 has all the required fields6257 should require graphql authorizations :read_statistics6258Gitlab::Ci::Status::Success6259 #text6260 should eq "passed"6261 #label6262 should eq "passed"6263 #icon6264 should eq "status_success"6265 #favicon6266 should eq "favicon_status_success"6267 #group6268 should eq "success"6269Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit6270 behaves like cycle analytics event6271 should be a kind of String6272 should be a kind of Symbol6273 should include ApplicationRecord(abstract)6274 should respond to #timestamp_projection6275 #apply_query_customization6276 expects an ActiveRecord::Relation object as argument and returns a modified version of it6277MergeRequest6278 should expose permissions using Types::PermissionTypes::MergeRequest6279 should require graphql authorizations :read_merge_request6280 should include Noteable6281 has the expected fields6282Gitlab::PhabricatorImport::Representation::Task6283 #issue_attributes6284 contains the expected values6285 #author_phid6286 returns the correct field6287 #owner_phid6288 returns the correct field6289Gitlab::TcpChecker6290 #check6291 can connect to an open port6292 fails to connect to a closed port6293MergeRequestState6294 should eq "MergeRequestState"6295 exposes all the existing merge request states6296 behaves like issuable state6297 exposes all the existing issuable states6298Gitlab::Metrics::BackgroundTransaction6299 #action6300 returns transaction action name6301 #label6302 returns labels based on class name6303SessionsHelper6304 #unconfirmed_email?6305 returns true when the flash alert contains a devise failure unconfirmed message6306 returns false when the flash alert does not contain a devise failure unconfirmed message6307RuboCop::Cop::Gitlab::Union6308 flags the use of Gitlab::SQL::Union.new6309Gitlab::Routing6310 when module is included6311 makes it possible to access url helpers6312 when module is not included6313 exposes url helpers module through a method6314Types::Tree::TreeType6315 should eq "Tree"6316 should have graphql fields :trees, :submodules, :blobs, and :last_commit6317Banzai::Filter::MermaidFilter6318 adds `js-render-mermaid` class to the `code` tag6319GitHelper6320 #short_sha6321 should eq "d4e043f6"6322ProviderRepoEntity6323 #as_json6324 includes required fields6325Gitlab::InsecureKeyFingerprint6326 #fingerprint6327 generates the key's fingerprint6328Deployments::AfterCreateService6329 #execute63302019-10-16T17:19:25.420Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>257}6331 invalidates the environment etag cache63322019-10-16T17:19:26.384Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>258}6333 creates ref63342019-10-16T17:19:27.038Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>259}6335 updates merge request metrics63362019-10-16T17:19:27.685Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>260}6337 returns the deployment63382019-10-16T17:19:28.334Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>261}6339 returns the deployment when could not save the environment63402019-10-16T17:19:28.980Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>262}6341 returns the deployment when environment is stopped6342 when start action is defined6343 and environment is stopped63442019-10-16T17:19:29.614Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>263}6345 makes environment available6346 when variables are used63472019-10-16T17:19:30.305Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>264}6348 does not create a new environment63492019-10-16T17:19:31.148Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>265}6350 updates external url6351 #expanded_environment_url6352 when yaml environment uses $CI_COMMIT_REF_NAME63532019-10-16T17:19:31.935Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>266}6354 should eq "http://review/master"6355 when yaml environment uses $CI_ENVIRONMENT_SLUG63562019-10-16T17:19:32.796Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>267}6357 should eq "http://review/prod-slug"6358 when yaml environment uses yaml_variables containing symbol keys63592019-10-16T17:19:33.527Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>268}6360 should eq "http://review/host"6361 when yaml environment does not have url63622019-10-16T17:19:34.405Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>269}6363 returns the external_url from persisted environment6364 merge request metrics6365 while updating the 'first_deployed_to_production_at' time6366 for merge requests merged before the current deploy63672019-10-16T17:19:35.012Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>270}6368 sets the time if the deploy's environment is 'production'63692019-10-16T17:19:35.959Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>271}6370 does not raise errors if the merge request does not have a metrics record6371 when job deploys to staging63722019-10-16T17:19:36.762Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>272}6373 doesn't set the time if the deploy's environment is not 'production'6374 for merge requests merged before the previous deploy6375 if the 'first_deployed_to_production_at' time is already set63762019-10-16T17:19:37.546Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>273}6377 does not overwrite the older 'first_deployed_to_production_at' time6378 if the 'first_deployed_to_production_at' time is not already set63792019-10-16T17:19:38.560Z 91 TID-gsy8bxm3v WARN: {:class=>"ArchiveTraceWorker", :message=>"The job does not have live trace but going to be archived.", :job_id=>274}6380 does not overwrite the older 'first_deployed_to_production_at' time6381Knapsack report was generated. Preview:6382{6383 "spec/services/auth/container_registry_authentication_service_spec.rb": 93.58261752128601,6384 "spec/models/cycle_analytics/production_spec.rb": 49.38255500793457,6385 "spec/helpers/projects_helper_spec.rb": 23.737587451934814,6386 "spec/services/members/destroy_service_spec.rb": 24.60603141784668,6387 "spec/models/ci/job_artifact_spec.rb": 21.32468891143799,6388 "spec/services/boards/issues/move_service_spec.rb": 18.617564916610718,6389 "spec/serializers/environment_serializer_spec.rb": 11.064632654190063,6390 "spec/lib/api/helpers/pagination_spec.rb": 15.712701082229614,6391 "spec/lib/gitlab/gfm/reference_rewriter_spec.rb": 14.938065767288208,6392 "spec/services/issues/build_service_spec.rb": 9.496463060379028,6393 "spec/lib/banzai/pipeline/wiki_pipeline_spec.rb": 13.530575513839722,6394 "spec/uploaders/attachment_uploader_spec.rb": 10.024495601654053,6395 "spec/models/ci/runner_spec.rb": 9.941931247711182,6396 "spec/finders/group_descendants_finder_spec.rb": 8.57170557975769,6397 "spec/lib/gitlab/asciidoc_spec.rb": 8.93409276008606,6398 "spec/services/projects/autocomplete_service_spec.rb": 4.857630252838135,6399 "spec/services/ci/pipeline_trigger_service_spec.rb": 8.23815369606018,6400 "spec/services/wikis/create_attachment_service_spec.rb": 6.332857608795166,6401 "spec/lib/gitlab/conflict/file_spec.rb": 6.491319894790649,6402 "spec/services/members/update_service_spec.rb": 3.0309722423553467,6403 "spec/services/test_hooks/project_service_spec.rb": 5.679198980331421,6404 "spec/uploaders/avatar_uploader_spec.rb": 5.806068420410156,6405 "spec/models/clusters/clusters_hierarchy_spec.rb": 5.7266106605529785,6406 "spec/models/concerns/project_api_compatibility_spec.rb": 4.901829719543457,6407 "spec/models/commit_range_spec.rb": 4.852022886276245,6408 "spec/services/suggestions/create_service_spec.rb": 3.2811970710754395,6409 "spec/lib/gitlab/kubernetes/helm/certificate_spec.rb": 5.1334850788116455,6410 "spec/lib/banzai/filter/reference_redactor_filter_spec.rb": 2.895272731781006,6411 "spec/lib/gitlab/verify/job_artifacts_spec.rb": 3.9308533668518066,6412 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 2.9229722023010254,6413 "spec/lib/gitlab/badge/coverage/report_spec.rb": 3.303818464279175,6414 "spec/services/wiki_pages/update_service_spec.rb": 2.5533618927001953,6415 "spec/helpers/tree_helper_spec.rb": 2.146838665008545,6416 "spec/lib/gitlab/ci/status/build/cancelable_spec.rb": 2.5488224029541016,6417 "spec/lib/gitlab/slash_commands/command_spec.rb": 2.7071750164031982,6418 "spec/lib/gitlab/url_builder_spec.rb": 2.0743515491485596,6419 "spec/presenters/group_clusterable_presenter_spec.rb": 2.0159575939178467,6420 "spec/views/projects/_home_panel.html.haml_spec.rb": 2.533097743988037,6421 "spec/workers/stuck_merge_jobs_worker_spec.rb": 2.2390522956848145,6422 "spec/services/users/build_service_spec.rb": 2.3172171115875244,6423 "spec/lib/gitlab/template/merge_request_template_spec.rb": 2.5917067527770996,6424 "spec/models/label_note_spec.rb": 1.465519905090332,6425 "spec/services/labels/find_or_create_service_spec.rb": 1.79134202003479,6426 "spec/workers/project_cache_worker_spec.rb": 1.9444360733032227,6427 "spec/lib/gitlab/background_migration/digest_column_spec.rb": 0.8313083648681641,6428 "spec/lib/gitlab/url_blocker_spec.rb": 1.514279842376709,6429 "spec/models/ci/build_trace_chunks/redis_spec.rb": 2.6789939403533936,6430 "spec/services/ci/run_scheduled_build_service_spec.rb": 1.5288126468658447,6431 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 1.354522943496704,6432 "spec/models/project_services/chat_message/deployment_message_spec.rb": 1.20389723777771,6433 "spec/services/wiki_pages/destroy_service_spec.rb": 1.3550734519958496,6434 "spec/migrations/schedule_sync_issuables_state_id_spec.rb": 1.4210662841796875,6435 "spec/lib/gitlab/background_migration/schedule_calculate_wiki_sizes_spec.rb": 1.6781325340270996,6436 "spec/services/clusters/update_service_spec.rb": 2.1913559436798096,6437 "spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb": 0.8864691257476807,6438 "spec/lib/gitlab/ci/trace/stream_spec.rb": 1.4360706806182861,6439 "spec/models/lfs_file_lock_spec.rb": 1.2665870189666748,6440 "spec/workers/create_gpg_signature_worker_spec.rb": 1.2743053436279297,6441 "spec/finders/starred_projects_finder_spec.rb": 1.2490942478179932,6442 "spec/lib/gitlab/database/count/exact_count_strategy_spec.rb": 0.874354362487793,6443 "spec/models/project_deploy_token_spec.rb": 1.121877908706665,6444 "spec/policies/deploy_token_policy_spec.rb": 1.0725908279418945,6445 "spec/services/projects/operations/update_service_spec.rb": 0.8698868751525879,6446 "spec/finders/users_star_projects_finder_spec.rb": 1.0300023555755615,6447 "spec/lib/gitlab/loop_helpers_spec.rb": 1.1525850296020508,6448 "spec/views/notify/pipeline_failed_email.text.erb_spec.rb": 1.2625610828399658,6449 "spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb": 0.9425289630889893,6450 "spec/uploaders/workers/object_storage/background_move_worker_spec.rb": 0.8664710521697998,6451 "spec/finders/releases_finder_spec.rb": 0.9481420516967773,6452 "spec/lib/gitlab/ci/status/pipeline/common_spec.rb": 1.4574034214019775,6453 "spec/lib/quality/seeders/issues_spec.rb": 1.418818473815918,6454 "spec/lib/gitlab/ci/build/credentials/registry_spec.rb": 0.7475910186767578,6455 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 0.7734787464141846,6456 "spec/tasks/gitlab/git_rake_spec.rb": 0.7644181251525879,6457 "spec/migrations/reschedule_builds_stages_migration_spec.rb": 0.5312104225158691,6458 "spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb": 0.6685290336608887,6459 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 1.2145659923553467,6460 "spec/services/projects/enable_deploy_key_service_spec.rb": 0.7070281505584717,6461 "spec/finders/users_with_pending_todos_finder_spec.rb": 0.7947745323181152,6462 "spec/serializers/merge_request_diff_entity_spec.rb": 0.4570491313934326,6463 "spec/models/project_ci_cd_setting_spec.rb": 0.4886658191680908,6464 "spec/services/update_snippet_service_spec.rb": 0.5815272331237793,6465 "spec/policies/resource_label_event_policy_spec.rb": 0.7675418853759766,6466 "spec/migrations/steal_fill_store_upload_spec.rb": 0.7938797473907471,6467 "spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb": 0.4774632453918457,6468 "spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb": 0.7434744834899902,6469 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 0.476731538772583,6470 "spec/models/abuse_report_spec.rb": 0.39774370193481445,6471 "spec/serializers/variable_entity_spec.rb": 0.19571471214294434,6472 "spec/lib/gitlab/auth/ldap/dn_spec.rb": 0.15306353569030762,6473 "spec/views/projects/imports/new.html.haml_spec.rb": 0.4057910442352295,6474 "spec/models/group_custom_attribute_spec.rb": 0.2678208351135254,6475 "spec/lib/gitlab/path_regex_spec.rb": 0.2672584056854248,6476 "spec/workers/project_daily_statistics_worker_spec.rb": 0.3452579975128174,6477 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 0.3822946548461914,6478 "spec/views/layouts/_head.html.haml_spec.rb": 0.3497893810272217,6479 "spec/lib/gitlab/graphql/loaders/pipeline_for_sha_loader_spec.rb": 0.2975618839263916,6480 "spec/migrations/migrate_update_head_pipeline_for_merge_request_sidekiq_queue_spec.rb": 0.30906081199645996,6481 "spec/models/push_event_payload_spec.rb": 0.3191409111022949,6482 "spec/serializers/analytics_build_serializer_spec.rb": 0.37639689445495605,6483 "spec/serializers/remote_mirror_entity_spec.rb": 0.2613964080810547,6484 "spec/rubocop/cop/prefer_class_methods_over_module_spec.rb": 0.19333624839782715,6485 "spec/lib/omni_auth/strategies/saml_spec.rb": 0.17591190338134766,6486 "spec/rubocop/cop/migration/add_limit_to_string_columns_spec.rb": 0.3936004638671875,6487 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 0.1738905906677246,6488 "spec/serializers/evidences/issue_entity_spec.rb": 0.20650410652160645,6489 "spec/lib/after_commit_queue_spec.rb": 0.11012816429138184,6490 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb": 0.16603350639343262,6491 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 0.14148807525634766,6492 "spec/workers/pages_domain_verification_cron_worker_spec.rb": 0.13290858268737793,6493 "spec/lib/gitlab/quick_actions/command_definition_spec.rb": 0.1062631607055664,6494 "spec/models/blob_viewer/server_side_spec.rb": 0.10742568969726562,6495 "spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb": 0.11053347587585449,6496 "spec/models/blob_viewer/route_map_spec.rb": 0.07537555694580078,6497 "spec/lib/gitlab/redis/queues_spec.rb": 0.34465718269348145,6498 "spec/models/project_metrics_setting_spec.rb": 0.06086325645446777,6499 "spec/helpers/calendar_helper_spec.rb": 0.07017135620117188,6500 "spec/lib/gitlab/git/blame_spec.rb": 0.06828522682189941,6501 "spec/services/task_list_toggle_service_spec.rb": 0.06579113006591797,6502 "spec/lib/gitlab/usage_data_counters/cycle_analytics_counter_spec.rb": 0.033223628997802734,6503 "spec/lib/gitlab/sql/recursive_cte_spec.rb": 0.060015201568603516,6504 "spec/helpers/pagination_helper_spec.rb": 0.04373669624328613,6505 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.06139779090881348,6506 "spec/graphql/resolvers/echo_resolver_spec.rb": 0.04972481727600098,6507 "spec/lib/gitlab/ci/config/entry/key_spec.rb": 0.05540204048156738,6508 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 0.04989147186279297,6509 "spec/models/protected_branch/push_access_level_spec.rb": 0.02168750762939453,6510 "spec/lib/banzai/filter/math_filter_spec.rb": 0.04540586471557617,6511 "spec/models/board_spec.rb": 0.03148150444030762,6512 "spec/validators/qualified_domain_array_validator_spec.rb": 0.02380657196044922,6513 "spec/services/service_response_spec.rb": 0.022313833236694336,6514 "spec/rubocop/cop/migration/timestamps_spec.rb": 0.03302264213562012,6515 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.028088092803955078,6516 "spec/models/clusters/project_spec.rb": 0.02085256576538086,6517 "spec/lib/gitlab/ci/config/entry/default_spec.rb": 0.0200347900390625,6518 "spec/lib/gitlab/auth/ip_rate_limiter_spec.rb": 0.020788908004760742,6519 "spec/lib/gitlab/ci/build/artifacts/path_spec.rb": 0.3114933967590332,6520 "spec/lib/gitlab/sidekiq_versioning/manager_spec.rb": 0.008049964904785156,6521 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.024572372436523438,6522 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.021447420120239258,6523 "spec/lib/gitlab/config/entry/factory_spec.rb": 0.02471470832824707,6524 "spec/workers/detect_repository_languages_worker_spec.rb": 0.01731729507446289,6525 "spec/lib/gitlab/sherlock/file_sample_spec.rb": 0.020653486251831055,6526 "spec/lib/gitlab/cycle_analytics/production_stage_spec.rb": 0.01879715919494629,6527 "spec/helpers/time_helper_spec.rb": 0.020072221755981445,6528 "spec/services/system_notes/base_service_spec.rb": 0.015918493270874023,6529 "spec/lib/gitlab/color_schemes_spec.rb": 0.0161287784576416,6530 "spec/lib/gitlab/git/lfs_pointer_file_spec.rb": 0.015783309936523438,6531 "spec/services/gravatar_service_spec.rb": 0.009749650955200195,6532 "spec/lib/banzai/renderer_spec.rb": 0.01602959632873535,6533 "spec/graphql/types/root_storage_statistics_type_spec.rb": 0.007977962493896484,6534 "spec/lib/gitlab/ci/status/success_spec.rb": 0.011799812316894531,6535 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 0.01176762580871582,6536 "spec/graphql/types/merge_request_type_spec.rb": 0.010943889617919922,6537 "spec/lib/gitlab/phabricator_import/representation/task_spec.rb": 0.013787984848022461,6538 "spec/lib/gitlab/tcp_checker_spec.rb": 0.0063512325286865234,6539 "spec/graphql/types/merge_request_state_enum_spec.rb": 0.00745701789855957,6540 "spec/lib/gitlab/metrics/background_transaction_spec.rb": 0.005192995071411133,6541 "spec/helpers/sessions_helper_spec.rb": 0.006643533706665039,6542 "spec/rubocop/cop/gitlab/union_spec.rb": 0.0042383670806884766,6543 "spec/lib/gitlab/routing_spec.rb": 0.0054357051849365234,6544 "spec/graphql/types/tree/tree_type_spec.rb": 0.005117177963256836,6545 "spec/lib/banzai/filter/mermaid_filter_spec.rb": 0.0035822391510009766,6546 "spec/helpers/git_helper_spec.rb": 0.0032501220703125,6547 "spec/serializers/provider_repo_entity_spec.rb": 0.0028748512268066406,6548 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.0024976730346679688,6549 "spec/services/deployments/after_create_service_spec.rb": 14.0113198757171636550}6551Knapsack global time execution for tests: 08m 27s6552Pending: (Failures listed here are expected and do not affect your suite's status)6553 1) AttachmentUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 6554 # No pattern provided, skipping.6555 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86556 2) AttachmentUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 6557 # No pattern provided, skipping.6558 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86559 3) AttachmentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6560 # No pattern provided, skipping.6561 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86562 4) AttachmentUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6563 # No pattern provided, skipping.6564 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86565 5) AttachmentUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6566 # No pattern provided, skipping.6567 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86568 6) AttachmentUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6569 # No pattern provided, skipping.6570 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86571 7) AttachmentUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6572 # No pattern provided, skipping.6573 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86574 8) AvatarUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 6575 # No pattern provided, skipping.6576 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86577 9) AvatarUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 6578 # No pattern provided, skipping.6579 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86580 10) AvatarUploader behaves like builds correct paths #relative_path is relative6581 # Path not set, skipping.6582 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396583 11) AvatarUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6584 # No pattern provided, skipping.6585 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86586 12) AvatarUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 6587 # No pattern provided, skipping.6588 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86589 13) AvatarUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 6590 # No pattern provided, skipping.6591 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86592 14) AvatarUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative6593 # Path not set, skipping.6594 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:396595 15) AvatarUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 6596 # No pattern provided, skipping.6597 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86598 16) AvatarUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 6599 # No pattern provided, skipping.6600 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86601Finished in 11 minutes 35 seconds (files took 32.63 seconds to load)66022420 examples, 0 failures, 16 pending6603Wed Oct 16 17:19:45 UTC 20196605$ date6606Wed Oct 16 17:19:46 UTC 20196609coverage/: found 5 matching files 6610knapsack/: found 6 matching files 6611rspec_flaky/: found 4 matching files 6612rspec_profiling/: found 1 matching files 6613WARNING: tmp/capybara/: no matching files 6614tmp/memory_test/: found 2 matching files 6615Uploading artifacts to coordinator... ok id=322922898 responseStatus=201 Created token=wnzBys7Y6616Uploading artifacts...6617junit_rspec.xml: found 1 matching files 6618Uploading artifacts to coordinator... ok id=322922898 responseStatus=201 Created token=wnzBys7Y6619Job succeeded