[0KRunning with gitlab-runner 12.1.0 (de7731dd) [0;m[0K on docker-auto-scale-com 8a6210b8 [0;msection_start:1566556738:prepare_executor [0K[0KUsing Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ... [0;m[0KStarting service postgres:10.9 ... [0;m[0KPulling docker image postgres:10.9 ... [0;m[0KUsing docker image sha256:897b33033d6498ba789d2ad5b305209106c8b45622b37ad135440a584ec885d3 for postgres:10.9 ... [0;m[0KStarting service redis:alpine ... [0;m[0KPulling docker image redis:alpine ... [0;m[0KUsing docker image sha256:ed7d2ff5a6232b43bdc89a2220ed989f532c3794422aa2a86823b8bc62e71447 for redis:alpine ... [0;m[0KWaiting for services to be up and running... [0;m[0KPulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ... [0;m[0KUsing docker image sha256:f56a8963ab3ec0167e7f96d50025946a254a4069e01e0a2e6c3731fc19cb5c27 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ... [0;msection_end:1566556749:prepare_executor [0Ksection_start:1566556749:prepare_script [0KRunning on runner-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1566545057-fc349dbb... section_end:1566556751:prepare_script [0Ksection_start:1566556751:get_sources [0K[32;1mFetching changes with git depth set to 20...[0;m Reinitialized existing Git repository in /builds/gitlab-org/gitlab-ee/.git/ From https://gitlab.com/gitlab-org/gitlab-ee 5c1b8d03..4447c081 master -> origin/master [32;1mChecking out 4447c081 as master...[0;m Removing .gitlab_shell_secret Removing .gitlab_workhorse_secret Removing config/database.yml Removing config/database_geo.yml Removing config/gitlab.yml Removing config/redis.cache.yml Removing config/redis.queues.yml Removing config/redis.shared_state.yml Removing config/resque.yml Removing config/secrets.yml Removing locale/ar_SA/gitlab.edit.po Removing locale/ar_SA/gitlab.po.time_stamp Removing locale/bg/gitlab.edit.po Removing locale/bn_BD/gitlab.edit.po Removing locale/bn_BD/gitlab.po.time_stamp Removing locale/bn_IN/gitlab.edit.po Removing locale/bn_IN/gitlab.po.time_stamp Removing locale/ca_ES/gitlab.edit.po Removing locale/ca_ES/gitlab.po.time_stamp Removing locale/cs_CZ/gitlab.edit.po Removing locale/cs_CZ/gitlab.po.time_stamp Removing locale/cy_GB/gitlab.edit.po Removing locale/cy_GB/gitlab.po.time_stamp Removing locale/da_DK/gitlab.edit.po Removing locale/da_DK/gitlab.po.time_stamp Removing locale/de/gitlab.edit.po Removing locale/el_GR/gitlab.edit.po Removing locale/el_GR/gitlab.po.time_stamp Removing locale/en/gitlab.edit.po Removing locale/eo/gitlab.edit.po Removing locale/es/gitlab.edit.po Removing locale/et_EE/gitlab.edit.po Removing locale/et_EE/gitlab.po.time_stamp Removing locale/fil_PH/gitlab.edit.po Removing locale/fil_PH/gitlab.po.time_stamp Removing locale/fr/gitlab.edit.po Removing locale/gl_ES/gitlab.edit.po Removing locale/gl_ES/gitlab.po.time_stamp Removing locale/he_IL/gitlab.edit.po Removing locale/he_IL/gitlab.po.time_stamp Removing locale/hi_IN/gitlab.edit.po Removing locale/hi_IN/gitlab.po.time_stamp Removing locale/hr_HR/gitlab.edit.po Removing locale/hr_HR/gitlab.po.time_stamp Removing locale/hu_HU/gitlab.edit.po Removing locale/hu_HU/gitlab.po.time_stamp Removing locale/id_ID/gitlab.edit.po Removing locale/id_ID/gitlab.po.time_stamp Removing locale/it/gitlab.edit.po Removing locale/ja/gitlab.edit.po Removing locale/ka_GE/gitlab.edit.po Removing locale/ka_GE/gitlab.po.time_stamp Removing locale/ko/gitlab.edit.po Removing locale/mn_MN/gitlab.edit.po Removing locale/mn_MN/gitlab.po.time_stamp Removing locale/nb_NO/gitlab.edit.po Removing locale/nb_NO/gitlab.po.time_stamp Removing locale/nl_NL/gitlab.edit.po Removing locale/nl_NL/gitlab.po.time_stamp Removing locale/pa_IN/gitlab.edit.po Removing locale/pa_IN/gitlab.po.time_stamp Removing locale/pl_PL/gitlab.edit.po Removing locale/pl_PL/gitlab.po.time_stamp Removing locale/pt_BR/gitlab.edit.po Removing locale/pt_PT/gitlab.edit.po Removing locale/pt_PT/gitlab.po.time_stamp Removing locale/ro_RO/gitlab.edit.po Removing locale/ro_RO/gitlab.po.time_stamp Removing locale/ru/gitlab.edit.po Removing locale/sk_SK/gitlab.edit.po Removing locale/sk_SK/gitlab.po.time_stamp Removing locale/sq_AL/gitlab.edit.po Removing locale/sq_AL/gitlab.po.time_stamp Removing locale/sr_CS/gitlab.edit.po Removing locale/sr_CS/gitlab.po.time_stamp Removing locale/sr_SP/gitlab.edit.po Removing locale/sr_SP/gitlab.po.time_stamp Removing locale/sv_SE/gitlab.edit.po Removing locale/sv_SE/gitlab.po.time_stamp Removing locale/sw_KE/gitlab.edit.po Removing locale/sw_KE/gitlab.po.time_stamp Removing locale/tr_TR/gitlab.edit.po Removing locale/tr_TR/gitlab.po.time_stamp Removing locale/uk/gitlab.edit.po Removing locale/zh_CN/gitlab.edit.po Removing locale/zh_HK/gitlab.edit.po Removing locale/zh_TW/gitlab.edit.po Removing log/api_json.log Removing log/grpc.log Removing log/test_json.log Removing node_modules/ Removing public/assets/ Removing tmp/cache/ Removing tmp/rubocop_cache/ Removing tmp/tests/ Removing vendor/gitaly-ruby/ Removing vendor/ruby/ [32;1mSkipping Git submodules setup[0;m section_end:1566556767:get_sources [0Ksection_start:1566556767:restore_cache [0K[32;1mChecking cache for debian-stretch-ruby-2.6.3-node-12.x-2...[0;m Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2[0;m [32;1mSuccessfully extracted cache[0;m section_end:1566556792:restore_cache [0Ksection_start:1566556792:download_artifacts [0K[32;1mDownloading artifacts for compile-assets (278682829)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=278682829 responseStatus[0;m=200 OK token[0;m=GD3tnYdc [32;1mDownloading artifacts for setup-test-env (278682830)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=278682830 responseStatus[0;m=200 OK token[0;m=M-vJJYAX [0;33mWARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats)[0;m [32;1mDownloading artifacts for retrieve-tests-metadata (278682832)...[0;m Downloading artifacts from coordinator... ok [0;m id[0;m=278682832 responseStatus[0;m=200 OK token[0;m=Nc9UNA_2 section_end:1566556900:download_artifacts [0Ksection_start:1566556900:build_script [0K[32;1m$ date[0;m Fri Aug 23 10:41:40 UTC 2019 [32;1m$ source scripts/utils.sh[0;m [32;1m$ source scripts/prepare_build.sh[0;m Bundler version 1.17.2 Warning: 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`. The Gemfile's dependencies are satisfied Successfully installed knapsack-1.17.2 1 gem installed CREATE ROLE GRANT Dropped database 'gitlabhq_test' Created database 'gitlabhq_test' -- enable_extension("pg_trgm") -> 0.0302s -- enable_extension("plpgsql") -> 0.0024s -- create_table("abuse_reports", {:id=>:serial, :force=>:cascade}) -> 0.0039s -- create_table("allowed_email_domains", {:force=>:cascade}) -> 0.0048s -- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade}) -> 0.0128s -- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade}) -> 0.0127s -- create_table("appearances", {:id=>:serial, :force=>:cascade}) -> 0.0033s -- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade}) -> 0.0023s -- create_table("application_settings", {:id=>:serial, :force=>:cascade}) -> 0.0795s -- create_table("approval_merge_request_rule_sources", {:force=>:cascade}) -> 0.0058s -- create_table("approval_merge_request_rules", {:force=>:cascade}) -> 0.0123s -- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade}) -> 0.0058s -- create_table("approval_merge_request_rules_groups", {:force=>:cascade}) -> 0.0056s -- create_table("approval_merge_request_rules_users", {:force=>:cascade}) -> 0.0063s -- create_table("approval_project_rules", {:force=>:cascade}) -> 0.0074s -- create_table("approval_project_rules_groups", {:force=>:cascade}) -> 0.0057s -- create_table("approval_project_rules_users", {:force=>:cascade}) -> 0.0077s -- create_table("approvals", {:id=>:serial, :force=>:cascade}) -> 0.0057s -- create_table("approver_groups", {:id=>:serial, :force=>:cascade}) -> 0.0075s -- create_table("approvers", {:id=>:serial, :force=>:cascade}) -> 0.0063s -- create_table("audit_events", {:id=>:serial, :force=>:cascade}) -> 0.0064s -- create_table("award_emoji", {:id=>:serial, :force=>:cascade}) -> 0.0063s -- create_table("badges", {:id=>:serial, :force=>:cascade}) -> 0.0061s -- create_table("board_assignees", {:id=>:serial, :force=>:cascade}) -> 0.0056s -- create_table("board_group_recent_visits", {:force=>:cascade}) -> 0.0102s -- create_table("board_labels", {:id=>:serial, :force=>:cascade}) -> 0.0057s -- create_table("board_project_recent_visits", {:force=>:cascade}) -> 0.0098s -- create_table("boards", {:id=>:serial, :force=>:cascade}) -> 0.0085s -- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade}) -> 0.0046s -- create_table("chat_names", {:id=>:serial, :force=>:cascade}) -> 0.0065s -- create_table("chat_teams", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade}) -> 0.0042s -- create_table("ci_build_trace_chunks", {:force=>:cascade}) -> 0.0046s -- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade}) -> 0.0042s -- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade}) -> 0.0081s -- create_table("ci_builds", {:id=>:serial, :force=>:cascade}) -> 0.0504s -- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade}) -> 0.0068s -- create_table("ci_builds_runner_session", {:force=>:cascade}) -> 0.0042s -- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade}) -> 0.0057s -- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade}) -> 0.0105s -- create_table("ci_job_variables", {:force=>:cascade}) -> 0.0069s -- create_table("ci_pipeline_chat_data", {:force=>:cascade}) -> 0.0061s -- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade}) -> 0.0047s -- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade}) -> 0.0088s -- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade}) -> 0.0048s -- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade}) -> 0.0269s -- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade}) -> 0.0057s -- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade}) -> 0.0058s -- create_table("ci_runners", {:id=>:serial, :force=>:cascade}) -> 0.0162s -- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade}) -> 0.0115s -- create_table("ci_stages", {:id=>:serial, :force=>:cascade}) -> 0.0104s -- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("ci_triggers", {:id=>:serial, :force=>:cascade}) -> 0.0061s -- create_table("ci_variables", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("cluster_groups", {:id=>:serial, :force=>:cascade}) -> 0.0057s -- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade}) -> 0.0041s -- create_table("cluster_projects", {:id=>:serial, :force=>:cascade}) -> 0.0055s -- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade}) -> 0.0048s -- create_table("clusters", {:id=>:serial, :force=>:cascade}) -> 0.0085s -- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade}) -> 0.0045s -- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade}) -> 0.0045s -- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade}) -> 0.0045s -- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade}) -> 0.0063s -- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade}) -> 0.0044s -- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade}) -> 0.0072s -- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade}) -> 0.0063s -- create_table("clusters_kubernetes_namespaces", {:force=>:cascade}) -> 0.0142s -- create_table("container_repositories", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade}) -> 0.0064s -- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade}) -> 0.0042s -- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade}) -> 0.0073s -- create_table("deployments", {:id=>:serial, :force=>:cascade}) -> 0.0218s -- create_table("design_management_designs", {:force=>:cascade}) -> 0.0064s -- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade}) -> 0.0093s -- create_table("design_management_versions", {:force=>:cascade}) -> 0.0060s -- create_table("draft_notes", {:force=>:cascade}) -> 0.0090s -- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade}) -> 0.0028s -- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade}) -> 0.0029s -- create_table("emails", {:id=>:serial, :force=>:cascade}) -> 0.0081s -- create_table("environments", {:id=>:serial, :force=>:cascade}) -> 0.0110s -- create_table("epic_issues", {:id=>:serial, :force=>:cascade}) -> 0.0059s -- create_table("epic_metrics", {:id=>:serial, :force=>:cascade}) -> 0.0038s -- create_table("epics", {:id=>:serial, :force=>:cascade}) -> 0.0206s -- create_table("events", {:id=>:serial, :force=>:cascade}) -> 0.0147s -- create_table("feature_gates", {:id=>:serial, :force=>:cascade}) -> 0.0047s -- create_table("features", {:id=>:serial, :force=>:cascade}) -> 0.0044s -- create_table("fork_network_members", {:id=>:serial, :force=>:cascade}) -> 0.0079s -- create_table("fork_networks", {:id=>:serial, :force=>:cascade}) -> 0.0044s -- create_table("forked_project_links", {:id=>:serial, :force=>:cascade}) -> 0.0039s -- create_table("geo_cache_invalidation_events", {:force=>:cascade}) -> 0.0022s -- create_table("geo_container_repository_updated_events", {:force=>:cascade}) -> 0.0039s -- create_table("geo_event_log", {:force=>:cascade}) -> 0.0289s -- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade}) -> 0.0042s -- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade}) -> 0.0045s -- create_table("geo_job_artifact_deleted_events", {:force=>:cascade}) -> 0.0051s -- create_table("geo_lfs_object_deleted_events", {:force=>:cascade}) -> 0.0043s -- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade}) -> 0.0078s -- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade}) -> 0.0056s -- create_table("geo_nodes", {:id=>:serial, :force=>:cascade}) -> 0.0122s -- create_table("geo_repositories_changed_events", {:force=>:cascade}) -> 0.0039s -- create_table("geo_repository_created_events", {:force=>:cascade}) -> 0.0047s -- create_table("geo_repository_deleted_events", {:force=>:cascade}) -> 0.0044s -- create_table("geo_repository_renamed_events", {:force=>:cascade}) -> 0.0046s -- create_table("geo_repository_updated_events", {:force=>:cascade}) -> 0.0069s -- create_table("geo_reset_checksum_events", {:force=>:cascade}) -> 0.0038s -- create_table("geo_upload_deleted_events", {:force=>:cascade}) -> 0.0041s -- create_table("gitlab_subscriptions", {:force=>:cascade}) -> 0.0069s -- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade}) -> 0.0080s -- create_table("gpg_keys", {:id=>:serial, :force=>:cascade}) -> 0.0080s -- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade}) -> 0.0131s -- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("historical_data", {:id=>:serial, :force=>:cascade}) -> 0.0020s -- create_table("identities", {:id=>:serial, :force=>:cascade}) -> 0.0106s -- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade}) -> 0.0063s -- create_table("index_statuses", {:id=>:serial, :force=>:cascade}) -> 0.0045s -- create_table("insights", {:id=>:serial, :force=>:cascade}) -> 0.0056s -- create_table("internal_ids", {:force=>:cascade}) -> 0.0100s -- create_table("ip_restrictions", {:force=>:cascade}) -> 0.0042s -- create_table("issue_assignees", {:id=>false, :force=>:cascade}) -> 0.0051s -- create_table("issue_links", {:id=>:serial, :force=>:cascade}) -> 0.0077s -- create_table("issue_metrics", {:id=>:serial, :force=>:cascade}) -> 0.0037s -- create_table("issue_tracker_data", {:force=>:cascade}) -> 0.0049s -- create_table("issues", {:id=>:serial, :force=>:cascade}) -> 0.0360s -- create_table("jira_connect_installations", {:force=>:cascade}) -> 0.0045s -- create_table("jira_connect_subscriptions", {:force=>:cascade}) -> 0.0080s -- create_table("jira_tracker_data", {:force=>:cascade}) -> 0.0048s -- create_table("keys", {:id=>:serial, :force=>:cascade}) -> 0.0092s -- create_table("label_links", {:id=>:serial, :force=>:cascade}) -> 0.0068s -- create_table("label_priorities", {:id=>:serial, :force=>:cascade}) -> 0.0082s -- create_table("labels", {:id=>:serial, :force=>:cascade}) -> 0.0134s -- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade}) -> 0.0025s -- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade}) -> 0.0066s -- create_table("lfs_objects", {:id=>:serial, :force=>:cascade}) -> 0.0062s -- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade}) -> 0.0058s -- create_table("licenses", {:id=>:serial, :force=>:cascade}) -> 0.0023s -- create_table("lists", {:id=>:serial, :force=>:cascade}) -> 0.0125s -- create_table("members", {:id=>:serial, :force=>:cascade}) -> 0.0150s -- create_table("merge_request_assignees", {:force=>:cascade}) -> 0.0079s -- create_table("merge_request_blocks", {:force=>:cascade}) -> 0.0060s -- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade}) -> 0.0059s -- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade}) -> 0.0039s -- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade}) -> 0.0069s -- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade}) -> 0.0168s -- create_table("merge_requests", {:id=>:serial, :force=>:cascade}) -> 0.0460s -- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade}) -> 0.0062s -- create_table("merge_trains", {:force=>:cascade}) -> 0.0104s -- create_table("milestones", {:id=>:serial, :force=>:cascade}) -> 0.0148s -- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0032s -- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0057s -- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade}) -> 0.0045s -- create_table("namespaces", {:id=>:serial, :force=>:cascade}) -> 0.0436s -- create_table("note_diff_files", {:id=>:serial, :force=>:cascade}) -> 0.0049s -- create_table("notes", {:id=>:serial, :force=>:cascade}) -> 0.0233s -- create_table("notification_settings", {:id=>:serial, :force=>:cascade}) -> 0.0094s -- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade}) -> 0.0047s -- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade}) -> 0.0085s -- create_table("oauth_applications", {:id=>:serial, :force=>:cascade}) -> 0.0074s -- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("operations_feature_flag_scopes", {:force=>:cascade}) -> 0.0084s -- create_table("operations_feature_flags", {:force=>:cascade}) -> 0.0046s -- create_table("operations_feature_flags_clients", {:force=>:cascade}) -> 0.0062s -- create_table("packages_maven_metadata", {:force=>:cascade}) -> 0.0045s -- create_table("packages_package_files", {:force=>:cascade}) -> 0.0048s -- create_table("packages_packages", {:force=>:cascade}) -> 0.0044s -- create_table("pages_domain_acme_orders", {:force=>:cascade}) -> 0.0066s -- create_table("pages_domains", {:id=>:serial, :force=>:cascade}) -> 0.0176s -- create_table("path_locks", {:id=>:serial, :force=>:cascade}) -> 0.0082s -- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade}) -> 0.0079s -- create_table("plans", {:id=>:serial, :force=>:cascade}) -> 0.0047s -- create_table("pool_repositories", {:force=>:cascade}) -> 0.0084s -- create_table("programming_languages", {:id=>:serial, :force=>:cascade}) -> 0.0042s -- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0019s -- create_table("project_aliases", {:force=>:cascade}) -> 0.0063s -- create_table("project_authorizations", {:id=>false, :force=>:cascade}) -> 0.0051s -- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade}) -> 0.0052s -- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade}) -> 0.0067s -- create_table("project_daily_statistics", {:force=>:cascade}) -> 0.0040s -- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0024s -- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0075s -- create_table("project_features", {:id=>:serial, :force=>:cascade}) -> 0.0049s -- create_table("project_group_links", {:id=>:serial, :force=>:cascade}) -> 0.0068s -- create_table("project_import_data", {:id=>:serial, :force=>:cascade}) -> 0.0044s -- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade}) -> 0.0031s -- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade}) -> 0.0019s -- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade}) -> 0.0154s -- create_table("project_repositories", {:force=>:cascade}) -> 0.0106s -- create_table("project_repository_states", {:id=>:serial, :force=>:cascade}) -> 0.0150s -- create_table("project_statistics", {:id=>:serial, :force=>:cascade}) -> 0.0087s -- create_table("project_tracing_settings", {:force=>:cascade}) -> 0.0053s -- create_table("projects", {:id=>:serial, :force=>:cascade}) -> 0.0676s -- create_table("prometheus_alert_events", {:force=>:cascade}) -> 0.0073s -- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade}) -> 0.0087s -- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade}) -> 0.0112s -- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade}) -> 0.0084s -- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade}) -> 0.0088s -- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade}) -> 0.0088s -- create_table("protected_branches", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade}) -> 0.0082s -- create_table("protected_environments", {:id=>:serial, :force=>:cascade}) -> 0.0064s -- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade}) -> 0.0087s -- create_table("protected_tags", {:id=>:serial, :force=>:cascade}) -> 0.0066s -- create_table("push_event_payloads", {:id=>false, :force=>:cascade}) -> 0.0038s -- create_table("push_rules", {:id=>:serial, :force=>:cascade}) -> 0.0095s -- create_table("redirect_routes", {:id=>:serial, :force=>:cascade}) -> 0.0066s -- create_table("release_links", {:force=>:cascade}) -> 0.0065s -- create_table("releases", {:id=>:serial, :force=>:cascade}) -> 0.0095s -- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade}) -> 0.0076s -- create_table("repository_languages", {:id=>false, :force=>:cascade}) -> 0.0031s -- create_table("resource_label_events", {:force=>:cascade}) -> 0.0127s -- create_table("reviews", {:force=>:cascade}) -> 0.0085s -- create_table("routes", {:id=>:serial, :force=>:cascade}) -> 0.0088s -- create_table("saml_providers", {:id=>:serial, :force=>:cascade}) -> 0.0053s -- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade}) -> 0.0046s -- create_table("sent_notifications", {:id=>:serial, :force=>:cascade}) -> 0.0047s -- create_table("services", {:id=>:serial, :force=>:cascade}) -> 0.0151s -- create_table("shards", {:id=>:serial, :force=>:cascade}) -> 0.0046s -- create_table("slack_integrations", {:id=>:serial, :force=>:cascade}) -> 0.0068s -- create_table("smartcard_identities", {:force=>:cascade}) -> 0.0064s -- create_table("snippets", {:id=>:serial, :force=>:cascade}) -> 0.0149s -- create_table("software_license_policies", {:id=>:serial, :force=>:cascade}) -> 0.0062s -- create_table("software_licenses", {:id=>:serial, :force=>:cascade}) -> 0.0042s -- create_table("spam_logs", {:id=>:serial, :force=>:cascade}) -> 0.0031s -- create_table("subscriptions", {:id=>:serial, :force=>:cascade}) -> 0.0068s -- create_table("suggestions", {:force=>:cascade}) -> 0.0060s -- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade}) -> 0.0043s -- create_table("taggings", {:id=>:serial, :force=>:cascade}) -> 0.0111s -- create_table("tags", {:id=>:serial, :force=>:cascade}) -> 0.0067s -- create_table("term_agreements", {:id=>:serial, :force=>:cascade}) -> 0.0083s -- create_table("timelogs", {:id=>:serial, :force=>:cascade}) -> 0.0080s -- create_table("todos", {:id=>:serial, :force=>:cascade}) -> 0.0213s -- create_table("trending_projects", {:id=>:serial, :force=>:cascade}) -> 0.0038s -- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade}) -> 0.0066s -- create_table("uploads", {:id=>:serial, :force=>:cascade}) -> 0.0109s -- create_table("user_agent_details", {:id=>:serial, :force=>:cascade}) -> 0.0049s -- create_table("user_callouts", {:id=>:serial, :force=>:cascade}) -> 0.0056s -- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade}) -> 0.0065s -- create_table("user_interacted_projects", {:id=>false, :force=>:cascade}) -> 0.0050s -- create_table("user_preferences", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade}) -> 0.0046s -- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade}) -> 0.0061s -- create_table("users", {:id=>:serial, :force=>:cascade}) -> 0.0586s -- create_table("users_ops_dashboard_projects", {:force=>:cascade}) -> 0.0063s -- create_table("users_star_projects", {:id=>:serial, :force=>:cascade}) -> 0.0060s -- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade}) -> 0.0144s -- create_table("vulnerability_identifiers", {:force=>:cascade}) -> 0.0046s -- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade}) -> 0.0058s -- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade}) -> 0.0061s -- create_table("vulnerability_occurrences", {:force=>:cascade}) -> 0.0109s -- create_table("vulnerability_scanners", {:force=>:cascade}) -> 0.0046s -- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade}) -> 0.0070s -- create_table("web_hooks", {:id=>:serial, :force=>:cascade}) -> 0.0123s -- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0039s -- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade}) -> 0.0027s -- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify}) -> 0.0027s -- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify}) -> 0.0026s -- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify}) -> 0.0022s -- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify}) -> 0.0029s -- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade}) -> 0.0024s -- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade}) -> 0.0020s -- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("badges", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade}) -> 0.0025s -- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify}) -> 0.0019s -- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade}) -> 0.0020s -- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify}) -> 0.0013s -- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify}) -> 0.0013s -- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("clusters", "users", {:on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify}) -> 0.0014s -- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade}) -> 0.0023s -- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify}) -> 0.0013s -- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify}) -> 0.0017s -- add_foreign_key("container_repositories", "projects") -> 0.0018s -- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade}) -> 0.0021s -- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("epics", "milestones", {:on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify}) -> 0.0017s -- add_foreign_key("events", "projects", {:on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade}) -> 0.0020s -- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify}) -> 0.0019s -- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify}) -> 0.0012s -- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("insights", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify}) -> 0.0013s -- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade}) -> 0.0024s -- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("lists", "milestones", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify}) -> 0.0017s -- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade}) -> 0.0027s -- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"}) -> 0.0024s -- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("path_locks", "users") -> 0.0016s -- add_foreign_key("personal_access_tokens", "users") -> 0.0017s -- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict}) -> 0.0013s -- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict}) -> 0.0012s -- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade}) -> 0.0020s -- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify}) -> 0.0018s -- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("protected_branch_merge_access_levels", "users") -> 0.0016s -- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("protected_branch_push_access_levels", "users") -> 0.0016s -- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("protected_tag_create_access_levels", "users") -> 0.0015s -- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade}) -> 0.0021s -- add_foreign_key("release_links", "releases", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade}) -> 0.0021s -- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify}) -> 0.0012s -- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify}) -> 0.0021s -- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("reviews", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade}) -> 0.0020s -- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"}) -> 0.0014s -- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade}) -> 0.0019s -- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("u2f_registrations", "users") -> 0.0016s -- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify}) -> 0.0019s -- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify}) -> 0.0017s -- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify}) -> 0.0016s -- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify}) -> 0.0014s -- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade}) -> 0.0015s -- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify}) -> 0.0015s -- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade}) -> 0.0013s -- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade}) -> 0.0018s -- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade}) -> 0.0012s -- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade}) -> 0.0014s -- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade}) -> 0.0017s -- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade}) -> 0.0016s -- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade}) -> 0.0017s Dropped database 'gitlabhq_geo_test' Created database 'gitlabhq_geo_test' -- enable_extension("plpgsql") -> 0.0163s -- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade}) -> 0.0118s -- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade}) -> 0.0018s -- create_table("file_registry", {:id=>:serial, :force=>:cascade}) -> 0.0120s -- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade}) -> 0.0087s -- create_table("project_registry", {:id=>:serial, :force=>:cascade}) -> 0.0413s [32;1m$ date[0;m Fri Aug 23 10:42:19 UTC 2019 [32;1m$ JOB_NAME=( $CI_JOB_NAME )[0;m [32;1m$ TEST_TOOL=${JOB_NAME[0]}[0;m [32;1m$ TEST_LEVEL=${JOB_NAME[1]}[0;m [32;1m$ DATABASE=${JOB_NAME[2]}[0;m [32;1m$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json[0;m [32;1m$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec[0;m [32;1m$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}[0;m [32;1m$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json[0;m [32;1m$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json[0;m [32;1m$ export FLAKY_RSPEC_GENERATE_REPORT=true[0;m [32;1m$ export CACHE_CLASSES=true[0;m [32;1m$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}[0;m [32;1m$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}[0;m [32;1m$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}[0;m [32;1m$ scripts/gitaly-test-spawn[0;m Checking gitaly-ruby bundle... Warning: 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`. The Gemfile's dependencies are satisfied Trying to connect to gitaly: ..... OK [32;1m$ date[0;m Fri Aug 23 10:42:20 UTC 2019 [32;1m$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")[0;m [32;1m$ mkdir -p tmp/memory_test[0;m [32;1m$ export MEMORY_TEST_PATH="tmp/memory_test/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"[0;m [32;1m$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"[0;m Knapsack report generator started! Run options: include {:focus=>true, :level=>"unit"} exclude {:geo=>true} ==> Setting up GitLab Shell... GitLab Shell set up in 0.73699962 seconds... ==> Setting up Gitaly... Gitaly set up in 0.000243281 seconds... ==> Setting up GitLab Elasticsearch Indexer... GitLab Elasticsearch Indexer set up in 0.000327169 seconds... MergeRequests::PushOptionsHandlerService `create` push option with a new branch behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project with an existing branch but no open MR behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` `merge_when_pipeline_succeeds` push option with a new branch adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the merge request to merge when pipeline succeeds sets auto_merge_enabled sets merge_user to the user with an existing branch but no open MR adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the merge request to merge when pipeline succeeds sets auto_merge_enabled sets merge_user to the user with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` behaves like a service that can set the merge request to merge when pipeline succeeds sets auto_merge_enabled sets merge_user to the user with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` `remove_source_branch` push option with a new branch adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can remove the source branch when it is merged returns true to force_remove_source_branch? with an existing branch but no open MR adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can remove the source branch when it is merged returns true to force_remove_source_branch? with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` behaves like a service that can remove the source branch when it is merged returns true to force_remove_source_branch? with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` `target` push option with a new branch adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the target of a merge request sets the target_branch with an existing branch but no open MR adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the target of a merge request sets the target_branch with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` behaves like a service that can set the target of a merge request sets the target_branch with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` `title` push option with a new branch adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the title of a merge request sets the title with an existing branch but no open MR adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the title of a merge request sets the title with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` behaves like a service that can set the title of a merge request sets the title with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` `description` push option with a new branch adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the description of a merge request sets the description with an existing branch but no open MR adds an error to the service behaves like a service that does not create a merge request should not change `MergeRequest.count` when coupled with the `create` push option behaves like a service that can create a merge request creates a merge request sets the correct target branch assigns the MR to the user when project has been forked sets the correct source project sets the correct target project behaves like a service that can set the description of a merge request sets the description with an existing branch that has a merge request open behaves like a service that does not create a merge request should not change `MergeRequest.count` behaves like a service that can set the description of a merge request sets the description with a deleted branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` with the project default branch behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` multiple pushed branches creates a merge request per branch when there are too many pushed branches records an error no push options behaves like a service that does nothing should not change `MergeRequest.count` should not change `MergeRequest.maximum(:updated_at)` no user records an error unauthorized user records an error handling unexpected exceptions records an error writes to Gitlab::AppLogger when target is not a valid branch name records an error when MRs are not enabled records an error when MR has ActiveRecord errors adds the error to its errors property QuickActions::InterpretService #execute limits to commands passed move issue command returns the move issue message returns move issue failure message when the referenced issue is not found behaves like reopen command returns state_event: "reopen" if content contains /reopen returns the reopen message behaves like reopen command returns state_event: "reopen" if content contains /reopen returns the reopen message behaves like close command returns state_event: "close" if content contains /close returns the close message behaves like close command returns state_event: "close" if content contains /close returns the close message merge command behaves like merge command runs merge command if content contains /merge returns them merge message can not be merged when logged user does not have permissions behaves like empty command populates {} if content contains an unsupported command returns an empty message can not be merged when sha does not match behaves like empty command populates {} if content contains an unsupported command returns an empty message when sha is missing precheck passes and returns merge command issue can not be merged behaves like empty command populates {} if content contains an unsupported command returns an empty message non persisted merge request cant be merged behaves like empty command populates {} if content contains an unsupported command returns an empty message not persisted merge request can not be merged behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like title command populates title: "A brand new title" if content contains /title A brand new title returns the title message behaves like title command populates title: "A brand new title" if content contains /title A brand new title returns the title message behaves like empty command populates {} if content contains an unsupported command returns an empty message assign command with one user behaves like assign command assigns to a single user returns the assign message behaves like assign command assigns to a single user returns the assign message assign command with multiple assignees behaves like assign command assigns to a single user returns the assign message behaves like assign command assigns to a single user returns the assign message assign command with me alias behaves like assign command assigns to a single user returns the assign message behaves like assign command assigns to a single user returns the assign message assign command with me alias and whitespace behaves like assign command assigns to a single user returns the assign message behaves like assign command assigns to a single user returns the assign message behaves like empty command populates {} if content contains an unsupported command returns Failed to assign a user because no user was found. message behaves like empty command populates {} if content contains an unsupported command returns an empty message unassign command Issue populates assignee_ids: [] if content contains /unassign returns the unassign message for all the assignee if content contains /unassign Merge Request populates assignee_ids: [] if content contains /unassign returns the unassign message for all the assignee if content contains /unassign behaves like milestone command fetches milestone and populates milestone_id if content contains /milestone returns the milestone message returns empty milestone message when milestone is wrong behaves like milestone command fetches milestone and populates milestone_id if content contains /milestone returns the milestone message returns empty milestone message when milestone is wrong only group milestones available behaves like milestone command fetches milestone and populates milestone_id if content contains /milestone returns the milestone message returns empty milestone message when milestone is wrong behaves like milestone command fetches milestone and populates milestone_id if content contains /milestone returns the milestone message returns empty milestone message when milestone is wrong behaves like remove_milestone command populates milestone_id: nil if content contains /remove_milestone returns removed milestone message behaves like remove_milestone command populates milestone_id: nil if content contains /remove_milestone returns removed milestone message behaves like label command fetches label ids and populates add_label_ids if content contains /label returns the label message behaves like label command fetches label ids and populates add_label_ids if content contains /label returns the label message behaves like multiple label command fetches label ids and populates add_label_ids if content contains multiple /label behaves like multiple label with same argument prevents duplicate label ids and populates add_label_ids if content contains multiple /label behaves like multiword label name starting without ~ fetches label ids and populates add_label_ids if content contains /label behaves like multiword label name starting without ~ fetches label ids and populates add_label_ids if content contains /label behaves like label name is included in the middle of another label name ignores the sublabel when the content contains the includer label name behaves like label name is included in the middle of another label name ignores the sublabel when the content contains the includer label name behaves like unlabel command fetches label ids and populates remove_label_ids if content contains /unlabel returns the unlabel message behaves like unlabel command fetches label ids and populates remove_label_ids if content contains /unlabel returns the unlabel message behaves like multiple unlabel command fetches label ids and populates remove_label_ids if content contains mutiple /unlabel behaves like unlabel command with no argument populates label_ids: [] if content contains /unlabel with no arguments behaves like unlabel command with no argument populates label_ids: [] if content contains /unlabel with no arguments behaves like relabel command populates label_ids: [] if content contains /relabel returns the relabel message behaves like relabel command populates label_ids: [] if content contains /relabel returns the relabel message behaves like done command populates todo_event: "done" if content contains /done returns the done message behaves like done command populates todo_event: "done" if content contains /done returns the done message behaves like subscribe command populates subscription_event: "subscribe" if content contains /subscribe returns the subscribe message behaves like subscribe command populates subscription_event: "subscribe" if content contains /subscribe returns the subscribe message behaves like unsubscribe command populates subscription_event: "unsubscribe" if content contains /unsubscribe returns the unsubscribe message behaves like unsubscribe command populates subscription_event: "unsubscribe" if content contains /unsubscribe returns the unsubscribe message behaves like due command populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-28 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-28 behaves like due command populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-28 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-28 behaves like due command populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-28 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-28 behaves like due command populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-28 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-28 behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like remove_due_date command populates due_date: nil if content contains /remove_due_date returns Removed the due date behaves like wip command returns wip_event: "wip" if content contains /wip returns the wip message behaves like unwip command returns wip_event: "unwip" if content contains /wip returns the unwip message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like estimate command populates time_estimate: 3600 if content contains /estimate 1h returns the time_estimate formatted message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like spend command populates spend_time: 3600 if content contains /spend 1h returns the spend_time message including the formatted duration and verb behaves like spend command with negative time populates spend_time: -1800 if content contains /spend -30m behaves like spend command with valid date populates spend time: 1800 with date in date type format behaves like spend command with invalid date will not create any note and timelog behaves like spend command with future date will not create any note and timelog behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like remove_estimate command populates time_estimate: 0 if content contains /remove_estimate returns the remove_estimate message behaves like remove_time_spent command populates spend_time: :reset if content contains /remove_time_spent returns the remove_time_spent message behaves like confidential command marks issue as confidential if content contains /confidential returns the confidential message behaves like lock command returns discussion_locked: true if content contains /lock returns the lock discussion message behaves like lock command returns discussion_locked: true if content contains /lock returns the lock discussion message behaves like unlock command returns discussion_locked: true if content contains /unlock returns the unlock discussion message behaves like unlock command returns discussion_locked: true if content contains /unlock returns the unlock discussion message /todo if issuable is an Issue behaves like todo command populates todo_event: "add" if content contains /todo returns the todo message if issuable is a MergeRequest behaves like todo command populates todo_event: "add" if content contains /todo returns the todo message if issuable is a Commit behaves like empty command populates {} if content contains an unsupported command returns an empty message /copy_metadata command behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like copy_metadata command fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference returns the copy metadata message behaves like copy_metadata command fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference returns the copy metadata message when the parent issuable has a milestone behaves like copy_metadata command fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference returns the copy metadata message when more than one issuable is passed behaves like copy_metadata command fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference returns the copy metadata message cross project references behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message /duplicate command behaves like duplicate command fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference returns the duplicate message behaves like empty command populates {} if content contains an unsupported command returns an empty message cross project references behaves like duplicate command fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference returns the duplicate message behaves like empty command populates {} if content contains an unsupported command returns Failed to mark this issue as a duplicate because referenced issue was not found. message behaves like empty command populates {} if content contains an unsupported command returns Failed to mark this issue as a duplicate because referenced issue was not found. message when current_user cannot :admin_issue behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns Failed to mark this issue as a duplicate because referenced issue was not found. message behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message /award command behaves like award command toggle award 100 emoji if content contains /award :100: returns the award message behaves like award command toggle award 100 emoji if content contains /award :100: returns the award message ignores command with no argument behaves like empty command populates {} if content contains an unsupported command returns an empty message ignores non-existing / invalid emojis behaves like empty command populates {} if content contains an unsupported command returns an empty message behaves like empty command populates {} if content contains an unsupported command returns an empty message if issuable is a Commit behaves like empty command populates {} if content contains an unsupported command returns an empty message /shrug command behaves like shrug command appends ¯\_(ツ)_/¯ to the comment behaves like shrug command appends ¯\_(ツ)_/¯ to the comment /tableflip command behaves like tableflip command appends (╯°□°)╯︵ ┻━┻ to the comment behaves like tableflip command appends (╯°□°)╯︵ ┻━┻ to the comment /target_branch command updates target_branch if /target_branch command is executed handles blanks around param returns the target_branch message ignores command with no argument behaves like empty command populates {} if content contains an unsupported command returns an empty message ignores non-existing target branch behaves like empty command populates {} if content contains an unsupported command returns an empty message /board_move command populates remove_label_ids for all current board columns populates add_label_ids with the id of the given label does not include the given label id in remove_label_ids does not remove label ids that are not lists on the board returns board_move message if the project has multiple boards behaves like empty command populates {} if content contains an unsupported command returns an empty message if the given label does not exist behaves like empty command populates {} if content contains an unsupported command returns Failed to move this issue because label was not found. message if multiple labels are given behaves like empty command populates {} if content contains an unsupported command returns Failed to move this issue because only a single label can be provided. message if the given label is not a list on the board behaves like empty command populates {} if content contains an unsupported command returns Failed to move this issue because label was not found. message if issuable is not an Issue behaves like empty command populates {} if content contains an unsupported command returns an empty message /tag command ignores command with no argument behaves like empty command populates {} if content contains an unsupported command returns an empty message tags a commit with a tag name behaves like tag command tags a commit returns the tag message tags a commit with a tag name and message behaves like tag command tags a commit returns the tag message /create_merge_request command populates create_merge_request with branch_name and issue iid returns the create_merge_request message if issuable is not an Issue behaves like empty command populates {} if content contains an unsupported command returns an empty message when logged user cannot create_merge_requests in the project behaves like empty command populates {} if content contains an unsupported command returns an empty message when logged user cannot push code to the project behaves like empty command populates {} if content contains an unsupported command returns an empty message #explain close command includes issuable name reopen command includes issuable name title command includes new title assign command includes only the user reference unassign command includes current assignee reference milestone command is empty when milestone reference is wrong remove milestone command includes current milestone name label command is empty when there are no correct labels unlabel command says all labels if no parameter provided relabel command includes label name subscribe command includes issuable name unsubscribe command includes issuable name due command includes the date wip command includes the new status award command includes the emoji estimate command includes the formatted duration spend command includes the formatted duration and proper verb target branch command includes the branch name board move command includes the label name move issue to another project command includes the project name tag a commit with a tag name without a message includes the tag name only with an empty message includes the tag name only with a tag name and message includes the tag name and message create a merge request with no branch name uses the default branch name returns the execution message using the default branch name with a branch name uses the given branch name returns the execution message using the given branch name #commands_executed_count counts commands executed ProjectPolicy does not include the read_issue permission when the issue author is not a member of the private project wiki feature when the feature is disabled does not include the wiki permissions when there is an external wiki does not include the wiki permissions read_wiki Situations where :read_wiki is always false project is Private, wiki is disabled, user is anonymous should be disallowed :read_wiki project is Private, wiki is disabled, user is non_member should be disallowed :read_wiki project is Private, wiki is disabled, user is guest should be disallowed :read_wiki project is Private, wiki is disabled, user is developer should be disallowed :read_wiki project is Internal, wiki is disabled, user is anonymous should be disallowed :read_wiki project is Internal, wiki is disabled, user is non_member should be disallowed :read_wiki project is Internal, wiki is disabled, user is guest should be disallowed :read_wiki project is Internal, wiki is disabled, user is developer should be disallowed :read_wiki project is Public, wiki is disabled, user is anonymous should be disallowed :read_wiki project is Public, wiki is disabled, user is non_member should be disallowed :read_wiki project is Public, wiki is disabled, user is guest should be disallowed :read_wiki project is Public, wiki is disabled, user is developer should be disallowed :read_wiki Situations where :read_wiki is always true project is Public, wiki is enabled, user is anonymous should be allowed :read_wiki project is Public, wiki is enabled, user is non_member should be allowed :read_wiki project is Public, wiki is enabled, user is guest should be allowed :read_wiki project is Public, wiki is enabled, user is developer should be allowed :read_wiki Situations where :read_wiki requires project membership the wiki is private, and the user is a member project is Public, wiki is private, user is guest should be allowed :read_wiki project is Public, wiki is private, user is developer should be allowed :read_wiki project is Internal, wiki is private, user is guest should be allowed :read_wiki project is Internal, wiki is private, user is developer should be allowed :read_wiki the wiki is private, and the user is not member project is Public, wiki is private, user is anonymous should be disallowed :read_wiki project is Public, wiki is private, user is non_member should be disallowed :read_wiki project is Internal, wiki is private, user is anonymous should be disallowed :read_wiki project is Internal, wiki is private, user is non_member should be disallowed :read_wiki the wiki is enabled, and the user is a member project is Private, wiki is enabled, user is guest should be allowed :read_wiki project is Private, wiki is enabled, user is developer should be allowed :read_wiki the wiki is enabled, and the user is not a member project is Private, wiki is enabled, user is anonymous should be disallowed :read_wiki project is Private, wiki is enabled, user is non_member should be disallowed :read_wiki Situations where :read_wiki prohibits anonymous access the user is not anonymous project is Internal, wiki is enabled, user is non_member should be allowed :read_wiki project is Internal, wiki is enabled, user is guest should be allowed :read_wiki project is Internal, wiki is enabled, user is developer should be allowed :read_wiki project is Internal, wiki is public, user is non_member should be allowed :read_wiki project is Internal, wiki is public, user is guest should be allowed :read_wiki project is Internal, wiki is public, user is developer should be allowed :read_wiki the user is not anonymous project is Internal, wiki is enabled, user is anonymous should be disallowed :read_wiki project is Internal, wiki is public, user is anonymous should be disallowed :read_wiki issues feature when the feature is disabled does not include the issues permissions disables boards and lists permissions when external tracker configured does not include the issues permissions merge requests feature disallows all permissions when the feature is disabled for a guest in a private project disallows the guest from reading the merge request and merge request iid builds feature when builds are disabled disallows all permissions except pipeline when the feature is disabled when builds are disabled only for some users disallows pipeline and commit_status permissions repository feature disallows all permissions when the feature is disabled behaves like project policies as anonymous abilities for public projects when a project has pending invites does not grant owner access behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities abilities for non-public projects should be banned behaves like project policies as guest abilities for non-public projects should not be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities public builds enabled should be allowed :read_pipeline when public builds disabled should not be allowed :read_pipeline when builds are disabled should be allowed :read_pipeline behaves like project policies as reporter abilities for non-public projects should not be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities behaves like project policies as developer abilities for non-public projects should not be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities behaves like project policies as maintainer abilities for non-public projects should not be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities behaves like project policies as owner abilities for non-public projects should be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities behaves like project policies as admin abilities for non-public projects should be allowed :set_note_created_at behaves like archived project policies when the project is archived disables write actions on all relevant project features disables some other important write actions does not disable other abilities when a public project has merge requests allowing access does not allow pushing code allows pushing if the user is a member with push access to the target project dissallows abilities to a maintainer if the merge request was closed behaves like clusterable policies #add_cluster? with a developer should not be allowed :read_cluster should not be allowed :add_cluster should not be allowed :create_cluster should not be allowed :update_cluster should not be allowed :admin_cluster with a maintainer with no clusters should be allowed :read_cluster should be allowed :add_cluster should be allowed :create_cluster should be allowed :update_cluster should be allowed :admin_cluster reading a project allows access when a user has read access to the repo never checks the external service with an external authorization service allows access when the external service allows it does not check the external service for admins and allows access prevents all but seeing a public project in a list when access is denied passes the full path to external authorization for logging purposes Issuable::BulkUpdateService with issuables at a project level close issues succeeds and returns the correct number of issues updated closes all the issues passed when issue for a different project is created when user has access to the project closes all issues passed when user does not have access to project only closes all issues that the user has access to reopen issues succeeds and returns the correct number of issues updated reopens all the issues passed updating merge request assignee when the new assignee ID is a valid user succeeds updates the assignee to the user ID passed when the new assignee ID is 0 unassigns the issues when the new assignee ID is not present does not unassign updating issue assignee when the new assignee ID is a valid user succeeds updates the assignee to the user ID passed when the new assignee ID is 0 unassigns the issues when the new assignee ID is not present does not unassign updating milestones behaves like updates milestones succeeds updates the issuables milestone updating labels behaves like updating labels when label_ids are passed updates the labels of all issues passed to the labels passed does not update issues not passed in when those label IDs are empty updates the issues passed to have no labels when add_label_ids are passed adds those label IDs to all issues passed does not update issues not passed in when remove_label_ids are passed removes those label IDs from all issues passed does not update issues not passed in when add_label_ids and remove_label_ids are passed adds the label IDs to all issues passed removes the label IDs from all issues passed does not update issues not passed in when add_label_ids and label_ids are passed adds the label IDs to all issues passed ignores the label IDs parameter does not update issues not passed in when remove_label_ids and label_ids are passed removes the label IDs from all issues passed ignores the label IDs parameter does not update issues not passed in when add_label_ids, remove_label_ids, and label_ids are passed adds the label IDs to all issues passed removes the label IDs from all issues passed ignores the label IDs parameter does not update issues not passed in subscribe to issues subscribes the given user unsubscribe from issues unsubscribes the given user with issuables at a group level updating milestones when issues behaves like updates milestones succeeds updates the issuables milestone when merge requests behaves like updates milestones succeeds updates the issuables milestone updating labels behaves like updating labels when label_ids are passed updates the labels of all issues passed to the labels passed does not update issues not passed in when those label IDs are empty updates the issues passed to have no labels when add_label_ids are passed adds those label IDs to all issues passed does not update issues not passed in when remove_label_ids are passed removes those label IDs from all issues passed does not update issues not passed in when add_label_ids and remove_label_ids are passed adds the label IDs to all issues passed removes the label IDs from all issues passed does not update issues not passed in when add_label_ids and label_ids are passed adds the label IDs to all issues passed ignores the label IDs parameter does not update issues not passed in when remove_label_ids and label_ids are passed removes the label IDs from all issues passed ignores the label IDs parameter does not update issues not passed in when add_label_ids, remove_label_ids, and label_ids are passed adds the label IDs to all issues passed removes the label IDs from all issues passed ignores the label IDs parameter does not update issues not passed in Gitlab::SearchResults does not list issues on private projects does not list merge requests on projects with limited access as a user with access includes merge requests from source and target projects #objects returns without_counts collection by default returns with counts collection when requested #formatted_count scope: "projects", count_method: :limited_projects_count, expected: "1000+" returns the expected formatted count scope: "issues", count_method: :limited_issues_count, expected: "1000+" returns the expected formatted count scope: "merge_requests", count_method: :limited_merge_requests_count, expected: "1000+" returns the expected formatted count scope: "milestones", count_method: :limited_milestones_count, expected: "1000+" returns the expected formatted count scope: "users", count_method: :limited_users_count, expected: "1000+" returns the expected formatted count scope: "unknown", count_method: nil, expected: nil returns the expected formatted count #formatted_limited_count count: 23, expected: "23" returns the expected formatted limited count count: 1000, expected: "1000" returns the expected formatted limited count count: 1001, expected: "1000+" returns the expected formatted limited count count: 1234, expected: "1000+" returns the expected formatted limited count when count_limit is lower than total amount #limited_projects_count returns the limited amount of projects #limited_merge_requests_count returns the limited amount of merge requests #limited_milestones_count returns the limited amount of milestones #limited_issues_count runs single SQL query to get the limited amount of issues when count_limit is higher than total amount #limited_issues_count runs multiple queries to get the limited amount of issues #merge_requests includes project filter by default skips project filter if default project context is used #issues includes project filter by default skips project filter if default project context is used #users does not call the UsersFinder when the current_user is not allowed to read users list calls the UsersFinder confidential issues does not list confidential issues for non project members does not list confidential issues for project members with guest role lists confidential issues for author lists confidential issues for assignee lists confidential issues for project members lists all issues for admin milestones returns correct set of milestones Releases::Link associations should belong to release required: validation should validate that :url cannot be empty/falsy should validate that :name cannot be empty/falsy when url is invalid will be invalid when duplicate name is added to a release raises an error when duplicate url is added to a release raises an error .sorted returns a list of links by created_at order #internal? should be truthy when link does not include project web url should be falsy #external? should be truthy supported protocols protocol: "http" will be valid protocol: "https" will be valid protocol: "ftp" will be valid unsupported protocol for torrent will be invalid X509CertificateCredentialsValidator is not valid when the certificate is not valid is not valid without a certificate when a valid certificate is passed does not track an error for the certificate adds an error when not passing a correct private key has no error when the private key is correct when using a passphrase is valid with the correct data adds an error when the passphrase is wrong Knapsack report was generated. Preview: { "spec/services/merge_requests/push_options_handler_service_spec.rb": 398.7587342262268, "spec/services/quick_actions/interpret_service_spec.rb": 86.78855490684509, "spec/policies/project_policy_spec.rb": 50.46438527107239, "spec/services/issuable/bulk_update_service_spec.rb": 41.22624325752258, "spec/lib/gitlab/search_results_spec.rb": 16.731321096420288, "spec/models/releases/link_spec.rb": 2.1219871044158936, "spec/validators/x509_certificate_credentials_validator_spec.rb": 0.0885014533996582 } Knapsack global time execution for tests: 09m 56s Finished in 10 minutes 6 seconds (files took 37 seconds to load) 644 examples, 0 failures [32;1m$ date[0;m Fri Aug 23 10:53:13 UTC 2019 section_end:1566557594:build_script [0Ksection_start:1566557594:after_script [0K[32;1mRunning after script...[0;m [32;1m$ date[0;m Fri Aug 23 10:53:14 UTC 2019 section_end:1566557595:after_script [0Ksection_start:1566557595:archive_cache [0K[32;1mNot uploading cache debian-stretch-ruby-2.6.3-node-12.x-2 due to policy[0;m section_end:1566557596:archive_cache [0Ksection_start:1566557596:upload_artifacts_on_success [0K[32;1mUploading artifacts...[0;m coverage/: found 5 matching files [0;m knapsack/: found 5 matching files [0;m rspec_flaky/: found 4 matching files [0;m rspec_profiling/: found 1 matching files [0;m [0;33mWARNING: tmp/capybara/: no matching files [0;m tmp/memory_test/: found 2 matching files [0;m Uploading artifacts to coordinator... ok [0;m id[0;m=278682926 responseStatus[0;m=201 Created token[0;m=N4R2-fXZ [32;1mUploading artifacts...[0;m junit_rspec.xml: found 1 matching files [0;m Uploading artifacts to coordinator... ok [0;m id[0;m=278682926 responseStatus[0;m=201 Created token[0;m=N4R2-fXZ section_end:1566557601:upload_artifacts_on_success [0K[32;1mJob succeeded [0;m