rspec-pg 24 30
Failed Started
by
@groulot

Gilbert Roulot
1Running with gitlab-runner 11.0.0-rc1 (6dcccded)2 on docker-auto-scale-com 8a6210b83Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...4Starting service postgres:9.2 ...5Pulling docker image postgres:9.2 ...6Using docker image sha256:18cdbca56093c841d28e629eb8acd4224afe0aa4c57c839351fc181888b8a470 for postgres:9.2 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:caaeda72bf8fe795b75382088b6de0db742b512921061e838450127579ce3e1e for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...12Using docker image sha256:fe85dded4608c09093048de599b86386241171fcc0e1e6ed66bd48d927e8c932 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ... 13 Running on runner-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1530019939-00fcdb64...
00:01
14 Fetching changes for 5488_license_management_app_blacklist_backend with git depth set to 20...
00:04
15HEAD is now at 0a754147 Adds pod_names to the JSON payload in environment logs spec17 * [new branch] 5488_license_management_app_blacklist_backend -> origin/5488_license_management_app_blacklist_backend18Checking out 9b412872 as 5488_license_management_app_blacklist_backend...19Skipping Git submodules setup21Downloading cache.zip from http://runners-cache-4-internal.gitlab.com:444/runner/project/278964/ruby-2.4.4-debian-stretch-with-yarn-1 22Successfully extracted cache24Downloading artifacts from coordinator... ok id=77521866 responseStatus=200 OK token=tTkyAyhq25Downloading artifacts for compile-assets (77521867)...26Downloading artifacts from coordinator... ok id=77521867 responseStatus=200 OK token=wmuNn8yw27Downloading artifacts for setup-test-env (77521869)...28Downloading artifacts from coordinator... ok id=77521869 responseStatus=200 OK token=1w6WnMuM29WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 31Bundler version 1.16.232$ date33Tue Jun 26 13:53:47 UTC 201834$ source scripts/utils.sh35$ date36Tue Jun 26 13:53:47 UTC 201837$ source scripts/prepare_build.sh38The Gemfile's dependencies are satisfied39Successfully installed knapsack-1.16.0401 gem installed41CREATE ROLE42GRANT43-- enable_extension("plpgsql")44 -> 0.0106s45-- enable_extension("pg_trgm")46 -> 0.0111s47-- create_table("abuse_reports", {:force=>:cascade})48 -> 0.0105s49-- create_table("appearances", {:force=>:cascade})50 -> 0.0073s51-- create_table("application_setting_terms", {:force=>:cascade})52 -> 0.0072s53-- create_table("application_settings", {:force=>:cascade})54 -> 0.0476s55-- create_table("approvals", {:force=>:cascade})56 -> 0.0047s57-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})58 -> 0.0045s59-- create_table("approver_groups", {:force=>:cascade})60 -> 0.0068s61-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})62 -> 0.0046s63-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})64 -> 0.0042s65-- create_table("approvers", {:force=>:cascade})66 -> 0.0068s67-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})68 -> 0.0042s69-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})70 -> 0.0041s71-- create_table("audit_events", {:force=>:cascade})72 -> 0.0067s73-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})74 -> 0.0044s75-- create_table("award_emoji", {:force=>:cascade})76 -> 0.0070s77-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})78 -> 0.0041s79-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})80 -> 0.0042s81-- create_table("badges", {:force=>:cascade})82 -> 0.0071s83-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})84 -> 0.0044s85-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})86 -> 0.0044s87-- create_table("board_assignees", {:force=>:cascade})88 -> 0.0045s89-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})90 -> 0.0042s91-- create_table("board_labels", {:force=>:cascade})92 -> 0.0052s93-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})94 -> 0.0043s95-- create_table("boards", {:force=>:cascade})96 -> 0.0071s97-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})98 -> 0.0046s99-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})100 -> 0.0041s101-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})102 -> 0.0041s103-- create_table("broadcast_messages", {:force=>:cascade})104 -> 0.0068s105-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})106 -> 0.0043s107-- create_table("chat_names", {:force=>:cascade})108 -> 0.0074s109-- add_index("chat_names", ["service_id", "team_id", "chat_id"], {:name=>"index_chat_names_on_service_id_and_team_id_and_chat_id", :unique=>true, :using=>:btree})110 -> 0.0046s111-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})112 -> 0.0043s113-- create_table("chat_teams", {:force=>:cascade})114 -> 0.0070s115-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})116 -> 0.0042s117-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})118 -> 0.0067s119-- add_index("ci_build_trace_chunks", ["build_id", "chunk_index"], {:name=>"index_ci_build_trace_chunks_on_build_id_and_chunk_index", :unique=>true, :using=>:btree})120 -> 0.0043s121-- create_table("ci_build_trace_section_names", {:force=>:cascade})122 -> 0.0065s123-- add_index("ci_build_trace_section_names", ["project_id", "name"], {:name=>"index_ci_build_trace_section_names_on_project_id_and_name", :unique=>true, :using=>:btree})124 -> 0.0045s125-- create_table("ci_build_trace_sections", {:force=>:cascade})126 -> 0.0043s127-- add_index("ci_build_trace_sections", ["build_id", "section_name_id"], {:name=>"index_ci_build_trace_sections_on_build_id_and_section_name_id", :unique=>true, :using=>:btree})128 -> 0.0048s129-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})130 -> 0.0041s131-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})132 -> 0.0045s133-- create_table("ci_builds", {:force=>:cascade})134 -> 0.0086s135-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})136 -> 0.0045s137-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})138 -> 0.0042s139-- add_index("ci_builds", ["commit_id", "stage_idx", "created_at"], {:name=>"index_ci_builds_on_commit_id_and_stage_idx_and_created_at", :using=>:btree})140 -> 0.0043s141-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})142 -> 0.0045s143-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})144 -> 0.0045s145-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})146 -> 0.0043s147-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})148 -> 0.0042s149-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})150 -> 0.0040s151-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})152 -> 0.0041s153-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})154 -> 0.0043s155-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})156 -> 0.0041s157-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})158 -> 0.0045s159-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})160 -> 0.0046s161-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})162 -> 0.0044s163-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})164 -> 0.0043s165-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})166 -> 0.0044s167-- create_table("ci_builds_metadata", {:force=>:cascade})168 -> 0.0050s169-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})170 -> 0.0042s171-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})172 -> 0.0048s173-- create_table("ci_group_variables", {:force=>:cascade})174 -> 0.0073s175-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})176 -> 0.0045s177-- create_table("ci_job_artifacts", {:force=>:cascade})178 -> 0.0066s179-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})180 -> 0.0043s181-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})182 -> 0.0044s183-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})184 -> 0.0043s185-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})186 -> 0.0059s187-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})188 -> 0.0067s189-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})190 -> 0.0042s191-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})192 -> 0.0075s193-- add_index("ci_pipeline_schedule_variables", ["pipeline_schedule_id", "key"], {:name=>"index_ci_pipeline_schedule_variables_on_schedule_id_and_key", :unique=>true, :using=>:btree})194 -> 0.0043s195-- create_table("ci_pipeline_schedules", {:force=>:cascade})196 -> 0.0070s197-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})198 -> 0.0040s199-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})200 -> 0.0041s201-- create_table("ci_pipeline_variables", {:force=>:cascade})202 -> 0.0063s203-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})204 -> 0.0045s205-- create_table("ci_pipelines", {:force=>:cascade})206 -> 0.0071s207-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})208 -> 0.0051s209-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})210 -> 0.0042s211-- add_index("ci_pipelines", ["project_id", "iid"], {:name=>"index_ci_pipelines_on_project_id_and_iid", :unique=>true, :where=>"(iid IS NOT NULL)", :using=>:btree})212 -> 0.0042s213-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})214 -> 0.0043s215-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})216 -> 0.0048s217-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})218 -> 0.0043s219-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})220 -> 0.0042s221-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})222 -> 0.0046s223-- create_table("ci_runner_namespaces", {:force=>:cascade})224 -> 0.0044s225-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})226 -> 0.0044s227-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})228 -> 0.0044s229-- create_table("ci_runner_projects", {:force=>:cascade})230 -> 0.0046s231-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})232 -> 0.0052s233-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})234 -> 0.0042s235-- create_table("ci_runners", {:force=>:cascade})236 -> 0.0093s237-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})238 -> 0.0044s239-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})240 -> 0.0042s241-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})242 -> 0.0040s243-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})244 -> 0.0041s245-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})246 -> 0.0042s247-- create_table("ci_sources_pipelines", {:force=>:cascade})248 -> 0.0044s249-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})250 -> 0.0039s251-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})252 -> 0.0041s253-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})254 -> 0.0050s255-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})256 -> 0.0047s257-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})258 -> 0.0047s259-- create_table("ci_stages", {:force=>:cascade})260 -> 0.0068s261-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})262 -> 0.0044s263-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})264 -> 0.0043s265-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})266 -> 0.0048s267-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})268 -> 0.0041s269-- create_table("ci_trigger_requests", {:force=>:cascade})270 -> 0.0066s271-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})272 -> 0.0043s273-- create_table("ci_triggers", {:force=>:cascade})274 -> 0.0067s275-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})276 -> 0.0041s277-- create_table("ci_variables", {:force=>:cascade})278 -> 0.0079s279-- add_index("ci_variables", ["project_id", "key", "environment_scope"], {:name=>"index_ci_variables_on_project_id_and_key_and_environment_scope", :unique=>true, :using=>:btree})280 -> 0.0042s281-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})282 -> 0.0068s283-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})284 -> 0.0044s285-- create_table("cluster_projects", {:force=>:cascade})286 -> 0.0045s287-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})288 -> 0.0042s289-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})290 -> 0.0045s291-- create_table("cluster_providers_gcp", {:force=>:cascade})292 -> 0.0069s293-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})294 -> 0.0043s295-- create_table("clusters", {:force=>:cascade})296 -> 0.0071s297-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})298 -> 0.0042s299-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})300 -> 0.0054s301-- create_table("clusters_applications_helm", {:force=>:cascade})302 -> 0.0070s303-- create_table("clusters_applications_ingress", {:force=>:cascade})304 -> 0.0069s305-- create_table("clusters_applications_jupyter", {:force=>:cascade})306 -> 0.0069s307-- create_table("clusters_applications_prometheus", {:force=>:cascade})308 -> 0.0065s309-- create_table("clusters_applications_runners", {:force=>:cascade})310 -> 0.0070s311-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})312 -> 0.0041s313-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})314 -> 0.0041s315-- create_table("container_repositories", {:force=>:cascade})316 -> 0.0063s317-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})318 -> 0.0042s319-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})320 -> 0.0040s321-- create_table("conversational_development_index_metrics", {:force=>:cascade})322 -> 0.0087s323-- create_table("deploy_keys_projects", {:force=>:cascade})324 -> 0.0052s325-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})326 -> 0.0053s327-- create_table("deploy_tokens", {:force=>:cascade})328 -> 0.0079s329-- add_index("deploy_tokens", ["token", "expires_at", "id"], {:name=>"index_deploy_tokens_on_token_and_expires_at_and_id", :where=>"(revoked IS FALSE)", :using=>:btree})330 -> 0.0044s331-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})332 -> 0.0040s333-- create_table("deployments", {:force=>:cascade})334 -> 0.0070s335-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})336 -> 0.0040s337-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})338 -> 0.0042s339-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})340 -> 0.0042s341-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})342 -> 0.0040s343-- create_table("emails", {:force=>:cascade})344 -> 0.0067s345-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})346 -> 0.0041s347-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})348 -> 0.0044s349-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})350 -> 0.0042s351-- create_table("environments", {:force=>:cascade})352 -> 0.0072s353-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})354 -> 0.0044s355-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})356 -> 0.0040s357-- create_table("epic_issues", {:force=>:cascade})358 -> 0.0046s359-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})360 -> 0.0040s361-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})362 -> 0.0041s363-- create_table("epic_metrics", {:force=>:cascade})364 -> 0.0046s365-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})366 -> 0.0041s367-- create_table("epics", {:force=>:cascade})368 -> 0.0068s369-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})370 -> 0.0043s371-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})372 -> 0.0045s373-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})374 -> 0.0049s375-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})376 -> 0.0041s377-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})378 -> 0.0041s379-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})380 -> 0.0040s381-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})382 -> 0.0043s383-- create_table("events", {:force=>:cascade})384 -> 0.0068s385-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})386 -> 0.0041s387-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})388 -> 0.0041s389-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})390 -> 0.0043s391-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})392 -> 0.0043s393-- create_table("feature_gates", {:force=>:cascade})394 -> 0.0074s395-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})396 -> 0.0045s397-- create_table("features", {:force=>:cascade})398 -> 0.0071s399-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})400 -> 0.0042s401-- create_table("fork_network_members", {:force=>:cascade})402 -> 0.0043s403-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})404 -> 0.0041s405-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})406 -> 0.0042s407-- create_table("fork_networks", {:force=>:cascade})408 -> 0.0066s409-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})410 -> 0.0040s411-- create_table("forked_project_links", {:force=>:cascade})412 -> 0.0045s413-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})414 -> 0.0041s415-- create_table("gcp_clusters", {:force=>:cascade})416 -> 0.0075s417-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})418 -> 0.0043s419-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})420 -> 0.0048s421-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})422 -> 0.0042s423-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})424 -> 0.0041s425-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})426 -> 0.0041s427-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})428 -> 0.0041s429-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})430 -> 0.0041s431-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})432 -> 0.0065s433-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})434 -> 0.0041s435-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})436 -> 0.0069s437-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})438 -> 0.0050s439-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})440 -> 0.0068s441-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})442 -> 0.0046s443-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})444 -> 0.0072s445-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})446 -> 0.0041s447-- create_table("geo_node_namespace_links", {:force=>:cascade})448 -> 0.0045s449-- add_index("geo_node_namespace_links", ["geo_node_id", "namespace_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id_and_namespace_id", :unique=>true, :using=>:btree})450 -> 0.0040s451-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})452 -> 0.0041s453-- create_table("geo_node_statuses", {:force=>:cascade})454 -> 0.0089s455-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})456 -> 0.0041s457-- create_table("geo_nodes", {:force=>:cascade})458 -> 0.0077s459-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})460 -> 0.0040s461-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})462 -> 0.0041s463-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})464 -> 0.0042s465-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})466 -> 0.0046s467-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})468 -> 0.0052s469-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})470 -> 0.0077s471-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})472 -> 0.0041s473-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})474 -> 0.0066s475-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})476 -> 0.0043s477-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})478 -> 0.0065s479-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})480 -> 0.0042s481-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})482 -> 0.0073s483-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})484 -> 0.0040s485-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})486 -> 0.0040s487-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})488 -> 0.0068s489-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})490 -> 0.0043s491-- create_table("gpg_key_subkeys", {:force=>:cascade})492 -> 0.0060s493-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})494 -> 0.0043s495-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})496 -> 0.0041s497-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})498 -> 0.0042s499-- create_table("gpg_keys", {:force=>:cascade})500 -> 0.0066s501-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})502 -> 0.0040s503-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})504 -> 0.0041s505-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})506 -> 0.0043s507-- create_table("gpg_signatures", {:force=>:cascade})508 -> 0.0072s509-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})510 -> 0.0040s511-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})512 -> 0.0045s513-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})514 -> 0.0044s515-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})516 -> 0.0041s517-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})518 -> 0.0042s519-- create_table("group_custom_attributes", {:force=>:cascade})520 -> 0.0069s521-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})522 -> 0.0044s523-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})524 -> 0.0048s525-- create_table("historical_data", {:force=>:cascade})526 -> 0.0046s527-- create_table("identities", {:force=>:cascade})528 -> 0.0063s529-- add_index("identities", ["saml_provider_id"], {:name=>"index_identities_on_saml_provider_id", :where=>"(saml_provider_id IS NOT NULL)", :using=>:btree})530 -> 0.0042s531-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})532 -> 0.0040s533-- create_table("index_statuses", {:force=>:cascade})534 -> 0.0069s535-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})536 -> 0.0045s537-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})538 -> 0.0043s539-- add_index("internal_ids", ["usage", "namespace_id"], {:name=>"index_internal_ids_on_usage_and_namespace_id", :unique=>true, :where=>"(namespace_id IS NOT NULL)", :using=>:btree})540 -> 0.0041s541-- add_index("internal_ids", ["usage", "project_id"], {:name=>"index_internal_ids_on_usage_and_project_id", :unique=>true, :where=>"(project_id IS NOT NULL)", :using=>:btree})542 -> 0.0039s543-- create_table("issue_assignees", {:id=>false, :force=>:cascade})544 -> 0.0018s545-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})546 -> 0.0056s547-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})548 -> 0.0042s549-- create_table("issue_links", {:force=>:cascade})550 -> 0.0044s551-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})552 -> 0.0044s553-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})554 -> 0.0043s555-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})556 -> 0.0042s557-- create_table("issue_metrics", {:force=>:cascade})558 -> 0.0045s559-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})560 -> 0.0042s561-- create_table("issues", {:force=>:cascade})562 -> 0.0077s563-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})564 -> 0.0045s565-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})566 -> 0.0041s567-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})568 -> 0.0032s569-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})570 -> 0.0041s571-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})572 -> 0.0044s573-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})574 -> 0.0043s575-- add_index("issues", ["project_id", "due_date", "id", "state"], {:name=>"idx_issues_on_project_id_and_due_date_and_id_and_state_partial", :where=>"(due_date IS NOT NULL)", :using=>:btree})576 -> 0.0041s577-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})578 -> 0.0043s579-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})580 -> 0.0042s581-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})582 -> 0.0038s583-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})584 -> 0.0042s585-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})586 -> 0.0026s587-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})588 -> 0.0044s589-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})590 -> 0.0045s591-- create_table("keys", {:force=>:cascade})592 -> 0.0084s593-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})594 -> 0.0043s595-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})596 -> 0.0043s597-- create_table("label_links", {:force=>:cascade})598 -> 0.0062s599-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})600 -> 0.0043s601-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})602 -> 0.0042s603-- create_table("label_priorities", {:force=>:cascade})604 -> 0.0086s605-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})606 -> 0.0059s607-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})608 -> 0.0044s609-- create_table("labels", {:force=>:cascade})610 -> 0.0078s611-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})612 -> 0.0045s613-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})614 -> 0.0045s615-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})616 -> 0.0045s617-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})618 -> 0.0044s619-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})620 -> 0.0042s621-- create_table("ldap_group_links", {:force=>:cascade})622 -> 0.0068s623-- create_table("lfs_file_locks", {:force=>:cascade})624 -> 0.0070s625-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})626 -> 0.0052s627-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})628 -> 0.0044s629-- create_table("lfs_objects", {:force=>:cascade})630 -> 0.0069s631-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})632 -> 0.0042s633-- create_table("lfs_objects_projects", {:force=>:cascade})634 -> 0.0047s635-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})636 -> 0.0041s637-- create_table("licenses", {:force=>:cascade})638 -> 0.0069s639-- create_table("lists", {:force=>:cascade})640 -> 0.0048s641-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})642 -> 0.0043s643-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})644 -> 0.0041s645-- add_index("lists", ["user_id"], {:name=>"index_lists_on_user_id", :using=>:btree})646 -> 0.0042s647-- create_table("managed_licenses", {:force=>:cascade})648 -> 0.0075s649-- add_index("managed_licenses", ["project_id", "name"], {:name=>"index_managed_licenses_on_project_id_and_name", :unique=>true, :using=>:btree})650 -> 0.0046s651-- add_index("managed_licenses", ["project_id"], {:name=>"index_managed_licenses_on_project_id", :using=>:btree})652 -> 0.0043s653-- create_table("members", {:force=>:cascade})654 -> 0.0079s655-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})656 -> 0.0044s657-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})658 -> 0.0044s659-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})660 -> 0.0044s661-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})662 -> 0.0045s663-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})664 -> 0.0042s665-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})666 -> 0.0044s667-- add_index("merge_request_diff_commits", ["merge_request_diff_id", "relative_order"], {:name=>"index_merge_request_diff_commits_on_mr_diff_id_and_order", :unique=>true, :using=>:btree})668 -> 0.0044s669-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})670 -> 0.0041s671-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})672 -> 0.0044s673-- add_index("merge_request_diff_files", ["merge_request_diff_id", "relative_order"], {:name=>"index_merge_request_diff_files_on_mr_diff_id_and_order", :unique=>true, :using=>:btree})674 -> 0.0045s675-- create_table("merge_request_diffs", {:force=>:cascade})676 -> 0.0066s677-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})678 -> 0.0044s679-- create_table("merge_request_metrics", {:force=>:cascade})680 -> 0.0050s681-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})682 -> 0.0049s683-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})684 -> 0.0043s685-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})686 -> 0.0041s687-- create_table("merge_requests", {:force=>:cascade})688 -> 0.0093s689-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})690 -> 0.0043s691-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})692 -> 0.0043s693-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})694 -> 0.0044s695-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})696 -> 0.0027s697-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})698 -> 0.0045s699-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})700 -> 0.0064s701-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})702 -> 0.0044s703-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})704 -> 0.0045s705-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})706 -> 0.0041s707-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_and_branch_state_opened", :where=>"((state)::text = 'opened'::text)", :using=>:btree})708 -> 0.0042s709-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})710 -> 0.0044s711-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})712 -> 0.0040s713-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})714 -> 0.0042s715-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid_opened", :where=>"((state)::text = 'opened'::text)", :using=>:btree})716 -> 0.0044s717-- add_index("merge_requests", ["target_project_id", "merge_commit_sha", "id"], {:name=>"index_merge_requests_on_tp_id_and_merge_commit_sha_and_id", :using=>:btree})718 -> 0.0044s719-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})720 -> 0.0044s721-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})722 -> 0.0025s723-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})724 -> 0.0043s725-- create_table("merge_requests_closing_issues", {:force=>:cascade})726 -> 0.0049s727-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})728 -> 0.0044s729-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})730 -> 0.0042s731-- create_table("milestones", {:force=>:cascade})732 -> 0.0069s733-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})734 -> 0.0038s735-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})736 -> 0.0051s737-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})738 -> 0.0042s739-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})740 -> 0.0044s741-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})742 -> 0.0043s743-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})744 -> 0.0026s745-- create_table("namespace_statistics", {:force=>:cascade})746 -> 0.0052s747-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})748 -> 0.0043s749-- create_table("namespaces", {:force=>:cascade})750 -> 0.0101s751-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})752 -> 0.0042s753-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})754 -> 0.0041s755-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})756 -> 0.0047s757-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})758 -> 0.0045s759-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})760 -> 0.0026s761-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})762 -> 0.0043s763-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})764 -> 0.0044s765-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})766 -> 0.0041s767-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})768 -> 0.0025s769-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})770 -> 0.0044s771-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})772 -> 0.0046s773-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})774 -> 0.0043s775-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})776 -> 0.0047s777-- create_table("note_diff_files", {:force=>:cascade})778 -> 0.0069s779-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})780 -> 0.0042s781-- create_table("notes", {:force=>:cascade})782 -> 0.0076s783-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})784 -> 0.0041s785-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})786 -> 0.0042s787-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})788 -> 0.0039s789-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})790 -> 0.0041s791-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})792 -> 0.0041s793-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})794 -> 0.0026s795-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})796 -> 0.0045s797-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})798 -> 0.0039s799-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})800 -> 0.0043s801-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})802 -> 0.0044s803-- create_table("notification_settings", {:force=>:cascade})804 -> 0.0081s805-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})806 -> 0.0044s807-- add_index("notification_settings", ["user_id", "source_id", "source_type"], {:name=>"index_notifications_on_user_id_and_source_id_and_source_type", :unique=>true, :using=>:btree})808 -> 0.0044s809-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})810 -> 0.0043s811-- create_table("oauth_access_grants", {:force=>:cascade})812 -> 0.0070s813-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})814 -> 0.0045s815-- create_table("oauth_access_tokens", {:force=>:cascade})816 -> 0.0067s817-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})818 -> 0.0043s819-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})820 -> 0.0041s821-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})822 -> 0.0042s823-- create_table("oauth_applications", {:force=>:cascade})824 -> 0.0076s825-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})826 -> 0.0048s827-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})828 -> 0.0046s829-- create_table("oauth_openid_requests", {:force=>:cascade})830 -> 0.0070s831-- create_table("pages_domains", {:force=>:cascade})832 -> 0.0079s833-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})834 -> 0.0042s835-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})836 -> 0.0044s837-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})838 -> 0.0043s839-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})840 -> 0.0045s841-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})842 -> 0.0042s843-- create_table("path_locks", {:force=>:cascade})844 -> 0.0070s845-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})846 -> 0.0044s847-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})848 -> 0.0042s849-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})850 -> 0.0043s851-- create_table("personal_access_tokens", {:force=>:cascade})852 -> 0.0078s853-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})854 -> 0.0046s855-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})856 -> 0.0045s857-- create_table("plans", {:force=>:cascade})858 -> 0.0068s859-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})860 -> 0.0043s861-- create_table("project_authorizations", {:id=>false, :force=>:cascade})862 -> 0.0019s863-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})864 -> 0.0043s865-- add_index("project_authorizations", ["user_id", "project_id", "access_level"], {:name=>"index_project_authorizations_on_user_id_project_id_access_level", :unique=>true, :using=>:btree})866 -> 0.0045s867-- create_table("project_auto_devops", {:force=>:cascade})868 -> 0.0076s869-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})870 -> 0.0043s871-- create_table("project_ci_cd_settings", {:force=>:cascade})872 -> 0.0066s873-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})874 -> 0.0043s875-- create_table("project_custom_attributes", {:force=>:cascade})876 -> 0.0069s877-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})878 -> 0.0041s879-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})880 -> 0.0043s881-- create_table("project_deploy_tokens", {:force=>:cascade})882 -> 0.0048s883-- add_index("project_deploy_tokens", ["project_id", "deploy_token_id"], {:name=>"index_project_deploy_tokens_on_project_id_and_deploy_token_id", :unique=>true, :using=>:btree})884 -> 0.0042s885-- create_table("project_features", {:force=>:cascade})886 -> 0.0048s887-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})888 -> 0.0043s889-- create_table("project_group_links", {:force=>:cascade})890 -> 0.0049s891-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})892 -> 0.0044s893-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})894 -> 0.0043s895-- create_table("project_import_data", {:force=>:cascade})896 -> 0.0068s897-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})898 -> 0.0043s899-- create_table("project_mirror_data", {:force=>:cascade})900 -> 0.0076s901-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})902 -> 0.0046s903-- add_index("project_mirror_data", ["last_successful_update_at"], {:name=>"index_project_mirror_data_on_last_successful_update_at", :using=>:btree})904 -> 0.0042s905-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})906 -> 0.0042s907-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})908 -> 0.0042s909-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})910 -> 0.0044s911-- create_table("project_repository_states", {:force=>:cascade})912 -> 0.0078s913-- add_index("project_repository_states", ["last_repository_verification_failure"], {:name=>"idx_repository_states_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})914 -> 0.0042s915-- add_index("project_repository_states", ["last_wiki_verification_failure"], {:name=>"idx_repository_states_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})916 -> 0.0042s917-- add_index("project_repository_states", ["project_id"], {:name=>"idx_repository_states_outdated_checksums", :where=>"(((repository_verification_checksum IS NULL) AND (last_repository_verification_failure IS NULL)) OR ((wiki_verification_checksum IS NULL) AND (last_wiki_verification_failure IS NULL)))", :using=>:btree})918 -> 0.0043s919-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})920 -> 0.0042s921-- create_table("project_statistics", {:force=>:cascade})922 -> 0.0083s923-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})924 -> 0.0042s925-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})926 -> 0.0042s927-- create_table("projects", {:force=>:cascade})928 -> 0.0153s929-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})930 -> 0.0043s931-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})932 -> 0.0042s933-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})934 -> 0.0041s935-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})936 -> 0.0027s937-- add_index("projects", ["id", "repository_storage", "last_repository_updated_at"], {:name=>"idx_projects_on_repository_storage_last_repository_updated_at", :using=>:btree})938 -> 0.0061s939-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})940 -> 0.0043s941-- add_index("projects", ["id"], {:name=>"index_projects_on_mirror_and_mirror_trigger_builds_both_true", :where=>"((mirror IS TRUE) AND (mirror_trigger_builds IS TRUE))", :using=>:btree})942 -> 0.0052s943-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})944 -> 0.0043s945-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})946 -> 0.0041s947-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})948 -> 0.0043s949-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})950 -> 0.0052s951-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})952 -> 0.0028s953-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})954 -> 0.0045s955-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})956 -> 0.0041s957-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})958 -> 0.0025s959-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})960 -> 0.0044s961-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})962 -> 0.0042s963-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})964 -> 0.0042s965-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})966 -> 0.0042s967-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})968 -> 0.0041s969-- create_table("prometheus_metrics", {:force=>:cascade})970 -> 0.0069s971-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})972 -> 0.0042s973-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})974 -> 0.0043s975-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})976 -> 0.0052s977-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})978 -> 0.0043s979-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})980 -> 0.0041s981-- create_table("protected_branch_push_access_levels", {:force=>:cascade})982 -> 0.0050s983-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})984 -> 0.0043s985-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})986 -> 0.0045s987-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})988 -> 0.0048s989-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})990 -> 0.0054s991-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})992 -> 0.0041s993-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})994 -> 0.0056s995-- create_table("protected_branches", {:force=>:cascade})996 -> 0.0070s997-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})998 -> 0.0111s999-- create_table("protected_tag_create_access_levels", {:force=>:cascade})1000 -> 0.0062s1001-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})1002 -> 0.0044s1003-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})1004 -> 0.0041s1005-- create_table("protected_tags", {:force=>:cascade})1006 -> 0.0067s1007-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})1008 -> 0.0042s1009-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})1010 -> 0.0042s1011-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})1012 -> 0.0042s1013-- create_table("push_rules", {:force=>:cascade})1014 -> 0.0096s1015-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})1016 -> 0.0042s1017-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})1018 -> 0.0042s1019-- create_table("redirect_routes", {:force=>:cascade})1020 -> 0.0070s1021-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1022 -> 0.0046s1023-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1024 -> 0.0042s1025-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1026 -> 0.0042s1027-- create_table("releases", {:force=>:cascade})1028 -> 0.0066s1029-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1030 -> 0.0045s1031-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1032 -> 0.0045s1033-- create_table("remote_mirrors", {:force=>:cascade})1034 -> 0.0080s1035-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1036 -> 0.0044s1037-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1038 -> 0.0051s1039-- create_table("routes", {:force=>:cascade})1040 -> 0.0069s1041-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1042 -> 0.0042s1043-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1044 -> 0.0042s1045-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1046 -> 0.0043s1047-- create_table("saml_providers", {:force=>:cascade})1048 -> 0.0071s1049-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1050 -> 0.0208s1051-- create_table("sent_notifications", {:force=>:cascade})1052 -> 0.0074s1053-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1054 -> 0.0048s1055-- create_table("services", {:force=>:cascade})1056 -> 0.0139s1057-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1058 -> 0.0049s1059-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1060 -> 0.0045s1061-- create_table("slack_integrations", {:force=>:cascade})1062 -> 0.0072s1063-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1064 -> 0.0045s1065-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1066 -> 0.0045s1067-- create_table("snippets", {:force=>:cascade})1068 -> 0.0082s1069-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1070 -> 0.0043s1071-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1072 -> 0.0027s1073-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1074 -> 0.0044s1075-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1076 -> 0.0025s1077-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1078 -> 0.0046s1079-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1080 -> 0.0045s1081-- create_table("spam_logs", {:force=>:cascade})1082 -> 0.0084s1083-- create_table("subscriptions", {:force=>:cascade})1084 -> 0.0072s1085-- add_index("subscriptions", ["subscribable_id", "subscribable_type", "user_id", "project_id"], {:name=>"index_subscriptions_on_subscribable_and_user_id_and_project_id", :unique=>true, :using=>:btree})1086 -> 0.0045s1087-- create_table("system_note_metadata", {:force=>:cascade})1088 -> 0.0071s1089-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1090 -> 0.0049s1091-- create_table("taggings", {:force=>:cascade})1092 -> 0.0073s1093-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1094 -> 0.0046s1095-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1096 -> 0.0044s1097-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1098 -> 0.0043s1099-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1100 -> 0.0047s1101-- create_table("tags", {:force=>:cascade})1102 -> 0.0069s1103-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1104 -> 0.0040s1105-- create_table("term_agreements", {:force=>:cascade})1106 -> 0.0050s1107-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})1108 -> 0.0047s1109-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})1110 -> 0.0044s1111-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})1112 -> 0.0046s1113-- create_table("timelogs", {:force=>:cascade})1114 -> 0.0050s1115-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1116 -> 0.0046s1117-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1118 -> 0.0044s1119-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1120 -> 0.0046s1121-- create_table("todos", {:force=>:cascade})1122 -> 0.0072s1123-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1124 -> 0.0044s1125-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1126 -> 0.0043s1127-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1128 -> 0.0045s1129-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1130 -> 0.0046s1131-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1132 -> 0.0045s1133-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1134 -> 0.0047s1135-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1136 -> 0.0048s1137-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1138 -> 0.0047s1139-- create_table("trending_projects", {:force=>:cascade})1140 -> 0.0063s1141-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1142 -> 0.0046s1143-- create_table("u2f_registrations", {:force=>:cascade})1144 -> 0.0073s1145-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1146 -> 0.0044s1147-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1148 -> 0.0045s1149-- create_table("uploads", {:force=>:cascade})1150 -> 0.0070s1151-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1152 -> 0.0044s1153-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1154 -> 0.0044s1155-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1156 -> 0.0046s1157-- create_table("user_agent_details", {:force=>:cascade})1158 -> 0.0074s1159-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1160 -> 0.0044s1161-- create_table("user_callouts", {:force=>:cascade})1162 -> 0.0047s1163-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1164 -> 0.0045s1165-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1166 -> 0.0046s1167-- create_table("user_custom_attributes", {:force=>:cascade})1168 -> 0.0074s1169-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1170 -> 0.0053s1171-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1172 -> 0.0045s1173-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1174 -> 0.0019s1175-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1176 -> 0.0044s1177-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1178 -> 0.0044s1179-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1180 -> 0.0083s1181-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1182 -> 0.0045s1183-- create_table("users", {:force=>:cascade})1184 -> 0.0192s1185-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1186 -> 0.0048s1187-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1188 -> 0.0046s1189-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1190 -> 0.0044s1191-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1192 -> 0.0048s1193-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1194 -> 0.0028s1195-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1196 -> 0.0047s1197-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1198 -> 0.0046s1199-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1200 -> 0.0048s1201-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1202 -> 0.0045s1203-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1204 -> 0.0028s1205-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1206 -> 0.0045s1207-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1208 -> 0.0045s1209-- add_index("users", ["state"], {:name=>"index_users_on_state_and_internal_attrs", :where=>"((ghost <> true) AND (support_bot <> true))", :using=>:btree})1210 -> 0.0046s1211-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1212 -> 0.0044s1213-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1214 -> 0.0044s1215-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1216 -> 0.0030s1217-- create_table("users_star_projects", {:force=>:cascade})1218 -> 0.0053s1219-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1220 -> 0.0045s1221-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1222 -> 0.0047s1223-- create_table("vulnerability_feedback", {:force=>:cascade})1224 -> 0.0052s1225-- add_index("vulnerability_feedback", ["author_id"], {:name=>"index_vulnerability_feedback_on_author_id", :using=>:btree})1226 -> 0.0046s1227-- add_index("vulnerability_feedback", ["issue_id"], {:name=>"index_vulnerability_feedback_on_issue_id", :using=>:btree})1228 -> 0.0045s1229-- add_index("vulnerability_feedback", ["pipeline_id"], {:name=>"index_vulnerability_feedback_on_pipeline_id", :using=>:btree})1230 -> 0.0044s1231-- add_index("vulnerability_feedback", ["project_id", "category", "feedback_type", "project_fingerprint"], {:name=>"vulnerability_feedback_unique_idx", :unique=>true, :using=>:btree})1232 -> 0.0044s1233-- create_table("web_hook_logs", {:force=>:cascade})1234 -> 0.0079s1235-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1236 -> 0.0042s1237-- create_table("web_hooks", {:force=>:cascade})1238 -> 0.0121s1239-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1240 -> 0.0046s1241-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1242 -> 0.0047s1243-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1244 -> 0.0033s1245-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1246 -> 0.0023s1247-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1248 -> 0.0016s1249-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1250 -> 0.0025s1251-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1252 -> 0.0019s1253-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1254 -> 0.0023s1255-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1256 -> 0.0018s1257-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1258 -> 0.0018s1259-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1260 -> 0.0018s1261-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1262 -> 0.0020s1263-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1264 -> 0.0018s1265-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1266 -> 0.0023s1267-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1268 -> 0.0020s1269-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1270 -> 0.0019s1271-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1272 -> 0.0019s1273-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1274 -> 0.0019s1275-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1276 -> 0.0021s1277-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1278 -> 0.0017s1279-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1280 -> 0.0018s1281-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1282 -> 0.0030s1283-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1284 -> 0.0025s1285-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1286 -> 0.0021s1287-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1288 -> 0.0018s1289-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1290 -> 0.0021s1291-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1292 -> 0.0021s1293-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1294 -> 0.0018s1295-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1296 -> 0.0018s1297-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1298 -> 0.0019s1299-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1300 -> 0.0023s1301-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1302 -> 0.0021s1303-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1304 -> 0.0017s1305-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1306 -> 0.0017s1307-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1308 -> 0.0018s1309-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1310 -> 0.0020s1311-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1312 -> 0.0020s1313-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1314 -> 0.0017s1315-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1316 -> 0.0019s1317-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1318 -> 0.0019s1319-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1320 -> 0.0017s1321-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1322 -> 0.0019s1323-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1324 -> 0.0020s1325-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1326 -> 0.0018s1327-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1328 -> 0.0017s1329-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1330 -> 0.0019s1331-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1332 -> 0.0021s1333-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1334 -> 0.0018s1335-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1336 -> 0.0019s1337-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1338 -> 0.0019s1339-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1340 -> 0.0019s1341-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1342 -> 0.0017s1343-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1344 -> 0.0019s1345-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1346 -> 0.0020s1347-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1348 -> 0.0020s1349-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1350 -> 0.0018s1351-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1352 -> 0.0018s1353-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1354 -> 0.0019s1355-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1356 -> 0.0017s1357-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1358 -> 0.0018s1359-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1360 -> 0.0017s1361-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1362 -> 0.0018s1363-- add_foreign_key("container_repositories", "projects")1364 -> 0.0021s1365-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1366 -> 0.0020s1367-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1368 -> 0.0023s1369-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1370 -> 0.0021s1371-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1372 -> 0.0020s1373-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1374 -> 0.0027s1375-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1376 -> 0.0017s1377-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1378 -> 0.0027s1379-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1380 -> 0.0018s1381-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1382 -> 0.0019s1383-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1384 -> 0.0019s1385-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1386 -> 0.0021s1387-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1388 -> 0.0018s1389-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1390 -> 0.0018s1391-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1392 -> 0.0020s1393-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1394 -> 0.0022s1395-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1396 -> 0.0021s1397-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1398 -> 0.0019s1399-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1400 -> 0.0020s1401-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1402 -> 0.0018s1403-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1404 -> 0.0020s1405-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1406 -> 0.0019s1407-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1408 -> 0.0019s1409-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1410 -> 0.0018s1411-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1412 -> 0.0016s1413-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1414 -> 0.0067s1415-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1416 -> 0.0274s1417-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1418 -> 0.0937s1419-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1420 -> 0.0254s1421-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1422 -> 0.0233s1423-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1424 -> 0.0096s1425-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1426 -> 0.0021s1427-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1428 -> 0.0021s1429-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1430 -> 0.0020s1431-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1432 -> 0.0024s1433-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1434 -> 0.0019s1435-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1436 -> 0.0021s1437-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1438 -> 0.0022s1439-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1440 -> 0.0019s1441-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1442 -> 0.0020s1443-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1444 -> 0.0019s1445-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1446 -> 0.0022s1447-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1448 -> 0.0018s1449-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1450 -> 0.0021s1451-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1452 -> 0.0021s1453-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1454 -> 0.0018s1455-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1456 -> 0.0020s1457-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1458 -> 0.0018s1459-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1460 -> 0.0020s1461-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1462 -> 0.0018s1463-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1464 -> 0.0020s1465-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1466 -> 0.0019s1467-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1468 -> 0.0019s1469-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1470 -> 0.0020s1471-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1472 -> 0.0017s1473-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1474 -> 0.0019s1475-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1476 -> 0.0021s1477-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1478 -> 0.0021s1479-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1480 -> 0.0019s1481-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1482 -> 0.0020s1483-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1484 -> 0.0017s1485-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1486 -> 0.0020s1487-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1488 -> 0.0018s1489-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1490 -> 0.0020s1491-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1492 -> 0.0022s1493-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1494 -> 0.0022s1495-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1496 -> 0.0018s1497-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1498 -> 0.0018s1499-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1500 -> 0.0019s1501-- add_foreign_key("managed_licenses", "projects", {:on_delete=>:cascade})1502 -> 0.0020s1503-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1504 -> 0.0021s1505-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1506 -> 0.0019s1507-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1508 -> 0.0017s1509-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1510 -> 0.0020s1511-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1512 -> 0.0018s1513-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1514 -> 0.0018s1515-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1516 -> 0.0019s1517-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1518 -> 0.0019s1519-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1520 -> 0.0018s1521-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1522 -> 0.0019s1523-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1524 -> 0.0019s1525-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1526 -> 0.0021s1527-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1528 -> 0.0021s1529-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1530 -> 0.0027s1531-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1532 -> 0.0027s1533-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1534 -> 0.0023s1535-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1536 -> 0.0022s1537-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1538 -> 0.0019s1539-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1540 -> 0.0021s1541-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1542 -> 0.0018s1543-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1544 -> 0.0020s1545-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1546 -> 0.0018s1547-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1548 -> 0.0018s1549-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1550 -> 0.0020s1551-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1552 -> 0.0019s1553-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1554 -> 0.0018s1555-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1556 -> 0.0025s1557-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1558 -> 0.0020s1559-- add_foreign_key("path_locks", "users")1560 -> 0.0021s1561-- add_foreign_key("personal_access_tokens", "users")1562 -> 0.0021s1563-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1564 -> 0.0021s1565-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1566 -> 0.0021s1567-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1568 -> 0.0019s1569-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1570 -> 0.0033s1571-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1572 -> 0.0026s1573-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1574 -> 0.0020s1575-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1576 -> 0.0022s1577-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1578 -> 0.0019s1579-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1580 -> 0.0022s1581-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1582 -> 0.0022s1583-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1584 -> 0.0022s1585-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1586 -> 0.0022s1587-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1588 -> 0.0019s1589-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1590 -> 0.0024s1591-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1592 -> 0.0019s1593-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1594 -> 0.0020s1595-- add_foreign_key("protected_branch_merge_access_levels", "users")1596 -> 0.0023s1597-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1598 -> 0.0020s1599-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1600 -> 0.0018s1601-- add_foreign_key("protected_branch_push_access_levels", "users")1602 -> 0.0021s1603-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1604 -> 0.0020s1605-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1606 -> 0.0017s1607-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1608 -> 0.0020s1609-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1610 -> 0.0022s1611-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1612 -> 0.0019s1613-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1614 -> 0.0018s1615-- add_foreign_key("protected_tag_create_access_levels", "users")1616 -> 0.0020s1617-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1618 -> 0.0020s1619-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1620 -> 0.0018s1621-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1622 -> 0.0021s1623-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1624 -> 0.0020s1625-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1626 -> 0.0021s1627-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1628 -> 0.0020s1629-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1630 -> 0.0024s1631-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1632 -> 0.0019s1633-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1634 -> 0.0022s1635-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1636 -> 0.0022s1637-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1638 -> 0.0018s1639-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1640 -> 0.0017s1641-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1642 -> 0.0020s1643-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1644 -> 0.0018s1645-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1646 -> 0.0020s1647-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1648 -> 0.0022s1649-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1650 -> 0.0021s1651-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1652 -> 0.0019s1653-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1654 -> 0.0021s1655-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1656 -> 0.0030s1657-- add_foreign_key("u2f_registrations", "users")1658 -> 0.0032s1659-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1660 -> 0.0021s1661-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1662 -> 0.0020s1663-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1664 -> 0.0021s1665-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1666 -> 0.0020s1667-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1668 -> 0.0022s1669-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1670 -> 0.0018s1671-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1672 -> 0.0021s1673-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1674 -> 0.0019s1675-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1676 -> 0.0018s1677-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1678 -> 0.0020s1679-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1680 -> 0.0019s1681-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1682 -> 0.0017s1683-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1684 -> 0.0022s1685-- initialize_schema_migrations_table()1686 -> 0.0142s1687-- enable_extension("plpgsql")1688 -> 0.0187s1689-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1690 -> 0.0066s1691-- create_table("file_registry", {:force=>:cascade})1692 -> 0.0083s1693-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1694 -> 0.0044s1695-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1696 -> 0.0055s1697-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1698 -> 0.0041s1699-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1700 -> 0.0078s1701-- create_table("job_artifact_registry", {:force=>:cascade})1702 -> 0.0090s1703-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1704 -> 0.0039s1705-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1706 -> 0.0055s1707-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1708 -> 0.0039s1709-- create_table("project_registry", {:force=>:cascade})1710 -> 0.0097s1711-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1712 -> 0.0049s1713-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1714 -> 0.0046s1715-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repo_checksums_and_failure_partial", :where=>"((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL))", :using=>:btree})1716 -> 0.0061s1717-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1718 -> 0.0040s1719-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_checksums_and_failure_partial", :where=>"((wiki_verification_checksum_sha IS NULL) AND (last_wiki_verification_failure IS NULL))", :using=>:btree})1720 -> 0.0050s1721-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1722 -> 0.0043s1723-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1724 -> 0.0049s1725-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1726 -> 0.0041s1727-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1728 -> 0.0046s1729-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1730 -> 0.0042s1731-- add_index("project_registry", ["repository_verification_checksum_sha"], {:name=>"idx_project_registry_on_repository_checksum_sha_partial", :where=>"(repository_verification_checksum_sha IS NULL)", :using=>:btree})1732 -> 0.0042s1733-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1734 -> 0.0039s1735-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1736 -> 0.0042s1737-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1738 -> 0.0040s1739-- add_index("project_registry", ["wiki_verification_checksum_sha"], {:name=>"idx_project_registry_on_wiki_checksum_sha_partial", :where=>"(wiki_verification_checksum_sha IS NULL)", :using=>:btree})1740 -> 0.0046s1741-- initialize_schema_migrations_table()1742 -> 0.0089s1743$ date1744Tue Jun 26 13:54:48 UTC 20181745$ JOB_NAME=( $CI_JOB_NAME )1746$ export CI_NODE_INDEX=${JOB_NAME[-2]}1747$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1748$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1749$ export KNAPSACK_GENERATE_REPORT=true1750$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1751$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1752$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1753$ export FLAKY_RSPEC_GENERATE_REPORT=true1754$ export CACHE_CLASSES=true1755$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1756$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1757$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1758$ scripts/gitaly-test-spawn1759Checking gitaly-ruby bundle...1760The Gemfile's dependencies are satisfied1761Trying to connect to gitaly: .... OK1762$ knapsack rspec "--color --format documentation --tag ~geo"1763Report specs:1764spec/lib/gitlab/git_access_spec.rb1765spec/features/projects/files/user_browses_files_spec.rb1766spec/features/issues/filtered_search/dropdown_milestone_spec.rb1767spec/features/merge_request/user_resolves_conflicts_spec.rb1768spec/features/projects/branches_spec.rb1769spec/requests/api/pipelines_spec.rb1770spec/features/projects/merge_requests/user_views_diffs_spec.rb1771spec/features/merge_request/user_sees_closing_issues_message_spec.rb1772spec/controllers/projects/jobs_controller_spec.rb1773spec/features/snippets/show_spec.rb1774spec/features/issues/move_spec.rb1775spec/models/cycle_analytics/review_spec.rb1776spec/controllers/projects/pipelines_controller_spec.rb1777spec/features/projects/files/project_owner_creates_license_file_spec.rb1778spec/controllers/projects/blob_controller_spec.rb1779spec/controllers/uploads_controller_spec.rb1780spec/lib/gitlab/checks/change_access_spec.rb1781spec/lib/gitlab/ci/pipeline/seed/build_spec.rb1782spec/policies/ci/build_policy_spec.rb1783spec/features/merge_request/user_resolves_outdated_diff_discussions_spec.rb1784spec/features/groups/group_settings_spec.rb1785spec/requests/api/project_hooks_spec.rb1786spec/services/files/multi_service_spec.rb1787spec/controllers/projects/services_controller_spec.rb1788spec/lib/gitlab/git/popen_spec.rb1789spec/features/projects/services/user_activates_slack_slash_command_spec.rb1790spec/migrations/cleanup_namespaceless_pending_delete_projects_spec.rb1791spec/lib/banzai/filter/issuable_state_filter_spec.rb1792spec/features/admin/admin_deploy_keys_spec.rb1793spec/services/ci/play_build_service_spec.rb1794spec/services/issuable/common_system_notes_service_spec.rb1795spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb1796spec/controllers/notification_settings_controller_spec.rb1797spec/features/projects/wiki/user_deletes_wiki_page_spec.rb1798spec/finders/concerns/finder_with_cross_project_access_spec.rb1799spec/features/projects/services/user_activates_hipchat_spec.rb1800spec/lib/gitlab/ci/status/build/stop_spec.rb1801spec/features/user_sorts_things_spec.rb1802spec/models/project_services/prometheus_service_spec.rb1803spec/features/projects/settings/user_changes_avatar_spec.rb1804spec/features/dashboard/active_tab_spec.rb1805spec/models/hooks/system_hook_spec.rb1806spec/services/boards/lists/destroy_service_spec.rb1807spec/lib/gitlab/ci/build/step_spec.rb1808spec/lib/gitlab/auth/saml/user_spec.rb1809spec/lib/banzai/pipeline/gfm_pipeline_spec.rb1810spec/lib/gitlab/github_import/importer/labels_importer_spec.rb1811spec/migrations/delete_conflicting_redirect_routes_spec.rb1812spec/workers/remove_expired_group_links_worker_spec.rb1813spec/lib/api/helpers_spec.rb1814spec/controllers/projects/refs_controller_spec.rb1815spec/views/projects/merge_requests/diffs/_diffs.html.haml_spec.rb1816spec/models/deploy_keys_project_spec.rb1817spec/lib/gitlab/ci/status/factory_spec.rb1818spec/helpers/merge_requests_helper_spec.rb1819spec/policies/personal_snippet_policy_spec.rb1820spec/policies/ci/pipeline_policy_spec.rb1821spec/features/merge_request/user_sees_empty_state_spec.rb1822spec/features/admin/services/admin_activates_prometheus_spec.rb1823spec/policies/note_policy_spec.rb1824spec/serializers/entity_date_helper_spec.rb1825spec/services/clusters/applications/install_service_spec.rb1826spec/lib/gitlab/performance_bar_spec.rb1827spec/workers/reactive_caching_worker_spec.rb1828spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb1829spec/services/prometheus/adapter_service_spec.rb1830spec/controllers/invites_controller_spec.rb1831spec/serializers/build_action_entity_spec.rb1832spec/features/projects/files/download_buttons_spec.rb1833spec/features/admin/admin_system_info_spec.rb1834spec/workers/concerns/project_import_options_spec.rb1835spec/lib/gitlab/data_builder/wiki_page_spec.rb1836spec/features/uploads/user_uploads_avatar_to_profile_spec.rb1837spec/models/system_note_metadata_spec.rb1838spec/services/events/render_service_spec.rb1839spec/models/project_services/chat_notification_service_spec.rb1840spec/features/projects/labels/user_views_labels_spec.rb1841spec/lib/gitlab/diff/line_mapper_spec.rb1842spec/controllers/oauth/authorizations_controller_spec.rb1843spec/lib/gitlab/url_sanitizer_spec.rb1844spec/features/projects/members/owner_cannot_leave_project_spec.rb1845spec/services/users/respond_to_terms_service_spec.rb1846spec/lib/gitlab/ssh_public_key_spec.rb1847spec/lib/gitlab/ci/pipeline/preloader_spec.rb1848spec/lib/gitlab/import_export/repo_saver_spec.rb1849spec/lib/gitlab/metrics_spec.rb1850spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb1851spec/workers/cluster_provision_worker_spec.rb1852spec/services/protected_tags/create_service_spec.rb1853spec/workers/pipeline_update_worker_spec.rb1854spec/requests/api/version_spec.rb1855spec/lib/gitlab/sherlock/transaction_spec.rb1856spec/controllers/passwords_controller_spec.rb1857spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb1858spec/models/concerns/reactive_caching_spec.rb1859spec/lib/gitlab/quick_actions/command_definition_spec.rb1860spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb1861spec/helpers/ci_status_helper_spec.rb1862spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb1863spec/workers/concerns/gitlab/github_import/notify_upon_death_spec.rb1864spec/lib/gitlab/ci/config/entry/service_spec.rb1865spec/lib/gitlab/git_spec.rb1866spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb1867spec/lib/gitlab/http_spec.rb1868spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb1869spec/lib/gitlab/ci/config/entry/coverage_spec.rb1870spec/lib/gitlab/query_limiting_spec.rb1871spec/lib/gitlab/project_transfer_spec.rb1872spec/lib/gitlab/checks/force_push_spec.rb1873spec/initializers/settings_spec.rb1874spec/lib/gitlab/email/handler_spec.rb1875spec/lib/banzai/filter/image_link_filter_spec.rb1876spec/lib/gitlab/ci/config/entry/services_spec.rb1877spec/graphql/types/query_type_spec.rb1878spec/lib/microsoft_teams/notifier_spec.rb1879spec/helpers/explore_helper_spec.rb1880spec/lib/gitlab/import_export/hash_util_spec.rb1881spec/lib/gitlab/i18n/metadata_entry_spec.rb1882spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb1883spec/lib/gitlab/gitlab_import/client_spec.rb1884Leftover specs:1885/builds/gitlab-org/gitlab-ee/spec/features/user_sorts_things_spec.rb:9: warning: toplevel constant DashboardHelper referenced by Helpers::DashboardHelper1886Knapsack report generator started!1887Run options: exclude {:geo=>true}1888==> Setting up GitLab Shell...1889 GitLab Shell setup in 0.057307978 seconds...1890==> Setting up Gitaly...1891 Gitaly setup in 0.000254453 seconds...1892Gitlab::GitAccess1893 #check with single protocols allowed1894 ssh disabled1895 blocks ssh git push and pull1896 http disabled1897 blocks http push and pull1898 when request is made from CI1899WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/git_access_spec.rb:66:in `block (6 levels) in <top (required)>'.1900 doesn't block http pull1901 when legacy CI credentials are used1902WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/git_access_spec.rb:75:in `block (7 levels) in <top (required)>'.1903 doesn't block http pull1904 #check_project_accessibility!1905 when the project exists1906 when actor exists1907 when actor is a DeployKey1908 when the DeployKey has access to the project1909 allows push and pull access1910 when the Deploykey does not have access to the project1911 blocks push and pull with "not found"1912 when actor is a User1913 when the User can read the project1914 allows push and pull access1915 when the User cannot read the project1916 blocks push and pull with "not found"1917 when actor is :ci1918 allows pull access1919 does not block pushes with "not found"1920 when actor is DeployToken1921 when DeployToken is active and belongs to project1922 allows pull access1923 blocks the push1924 when DeployToken does not belong to project1925 blocks pull access1926 blocks the push1927 when actor is nil1928 when guests can read the project1929 allows pull access1930 does not block pushes with "not found"1931 when guests cannot read the project1932 blocks pulls with "not found"1933 blocks pushes with "not found"1934 when the project is nil1935 blocks push and pull with "not found"1936 when user is allowed to create project in namespace1937 blocks pull access with "not found"1938 allows push access1939 when user is not allowed to create project in namespace1940 blocks push and pull with "not found"1941 behaves like #check with a key that is not valid1942 key is too small1943 does not allow keys which are too small1944 key type is not allowed1945 does not allow keys which are too small1946 behaves like #check with a key that is not valid1947 key is too small1948 does not allow keys which are too small1949 key type is not allowed1950 does not allow keys which are too small1951 #add_project_moved_message!1952 when a redirect was not followed to find the project1953 allows push and pull access1954 with a redirect and ssh protocol1955 behaves like check_project_moved1956 enqueues a redirected message for pushing1957 allows push and pull access1958 with a redirect and http protocol1959 behaves like check_project_moved1960 enqueues a redirected message for pushing1961 allows push and pull access1962 #check_authentication_abilities!1963 when download1964 raises unauthorized with download error1965 when authentication abilities include download code1966 does not raise any errors1967 when authentication abilities include build download code1968 does not raise any errors1969 when upload1970 raises unauthorized with push error1971 when authentication abilities include push code1972 does not raise any errors1973 #check_command_disabled!1974 over http1975 when the git-upload-pack command is disabled in config1976 when calling git-upload-pack1977 should raise Gitlab::GitAccess::UnauthorizedError with "Pulling over HTTP is not allowed."1978 when calling git-receive-pack1979 should not raise Exception1980 when the git-receive-pack command is disabled in config1981 when calling git-receive-pack1982 should raise Gitlab::GitAccess::UnauthorizedError with "Pushing over HTTP is not allowed."1983 when calling git-upload-pack1984 should not raise Exception1985 #check_db_accessibility!1986 when in a read-only GitLab instance1987 should raise Gitlab::GitAccess::UnauthorizedError with "You can't push code to a read-only GitLab instance."1988 #ensure_project_on_push!1989 when push1990 when project does not exist1991 when changes is _any1992 when authentication abilities include push code1993 when user can create project in namespace1994 creates a new project1995 when user cannot create project in namespace1996 does not create a new project1997 when authentication abilities do not include push code1998 when user can create project in namespace1999 does not create a new project2000 when check contains actual changes2001 does not create a new project2002 when project exists2003 does not create a new project2004 when deploy key is used2005 does not create a new project2006 when pull2007 when project does not exist2008 does not create a new project2009 #check_download_access!2010 allows masters to pull2011 disallows guests to pull2012 disallows blocked users to pull2013 when the project repository does not exist2014 returns not found2015 without access to project2016 pull code2017 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2018 when project is public2019 when repository is enabled2020 give access to download code2021 when repository is disabled2022 does not give access to download code2023 deploy key permissions2024 pull code2025 when project is authorized2026 should not raise Exception2027 when unauthorized2028 from public project2029 should not raise Exception2030 from internal project2031 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2032 from private project2033 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2034 deploy token permissions2035 pull code2036 when project is authorized2037 should not raise Exception2038 when unauthorized2039 from public project2040 should not raise Exception2041 from internal project2042 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2043 from private project2044 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2045 build authentication_abilities permissions2046 owner2047 pull code2048 should not raise Exception2049 reporter user2050 pull code2051 should not raise Exception2052 admin user2053 when member of the project2054 pull code2055 should not raise Exception2056 when is not member of the project2057 pull code2058 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to download code from this project."2059 generic CI (build without a user)2060 pull code2061 should not raise Exception2062 check LFS integrity2063 checks LFS integrity only for first change2064 #check_push_access!2066 has the correct permissions for admins2067 has the correct permissions for masters2068 has the correct permissions for developers2069 has the correct permissions for reporters2070 has the correct permissions for guests2071 when developers are allowed to push into the exact protected branch2072 has the correct permissions for admins2073 has the correct permissions for masters2074 has the correct permissions for developers2075 has the correct permissions for reporters2076 has the correct permissions for guests2077 developers are allowed to merge into the exact protected branch2078 when a merge request exists for the given source/target branch2079 when the merge request is in progress2080 has the correct permissions for admins2081 has the correct permissions for masters2082 has the correct permissions for developers2083 has the correct permissions for reporters2084 has the correct permissions for guests2085 when the merge request is not in progress2086 has the correct permissions for admins2087 has the correct permissions for masters2088 has the correct permissions for developers2089 has the correct permissions for reporters2090 has the correct permissions for guests2091 when a merge request does not exist for the given source/target branch2092 has the correct permissions for admins2093 has the correct permissions for masters2094 has the correct permissions for developers2095 has the correct permissions for reporters2096 has the correct permissions for guests2097 when developers are allowed to push and merge into the exact protected branch2098 has the correct permissions for admins2099 has the correct permissions for masters2100 has the correct permissions for developers2101 has the correct permissions for reporters2102 has the correct permissions for guests2103 user-specific access control2104 when a specific user is allowed to push into the exact protected branch2105 has the correct permissions for admins2106 has the correct permissions for masters2107 has the correct permissions for developers2108 has the correct permissions for reporters2109 has the correct permissions for guests2110 when a specific user is allowed to merge into the exact protected branch2111 has the correct permissions for admins2112 has the correct permissions for masters2113 has the correct permissions for developers2114 has the correct permissions for reporters2115 has the correct permissions for guests2116 when a specific user is allowed to push & merge into the exact protected branch2117 has the correct permissions for admins2118 has the correct permissions for masters2119 has the correct permissions for developers2120 has the correct permissions for reporters2121 has the correct permissions for guests2122 group-specific access control2123 when a specific group is allowed to push into the exact protected branch2124 has the correct permissions for group masters2125 has the correct permissions for group developers2126 has the correct permissions for group reporters2127 has the correct permissions for group guests2128 when a specific group is allowed to merge into the exact protected branch2129 has the correct permissions for group masters2130 has the correct permissions for group developers2131 has the correct permissions for group reporters2132 has the correct permissions for group guests2133 when a specific group is allowed to push & merge into the exact protected branch2134 has the correct permissions for group masters2135 has the correct permissions for group developers2136 has the correct permissions for group reporters2137 has the correct permissions for group guests2138 when no one is allowed to push to the feature protected branch2139 has the correct permissions for admins2140 has the correct permissions for masters2141 has the correct permissions for developers2142 has the correct permissions for reporters2143 has the correct permissions for guests2145 has the correct permissions for admins2146 has the correct permissions for masters2147 has the correct permissions for developers2148 has the correct permissions for reporters2149 has the correct permissions for guests2150 when developers are allowed to push into the wildcard protected branch2151 has the correct permissions for admins2152 has the correct permissions for masters2153 has the correct permissions for developers2154 has the correct permissions for reporters2155 has the correct permissions for guests2156 developers are allowed to merge into the wildcard protected branch2157 when a merge request exists for the given source/target branch2158 when the merge request is in progress2159 has the correct permissions for admins2160 has the correct permissions for masters2161 has the correct permissions for developers2162 has the correct permissions for reporters2163 has the correct permissions for guests2164 when the merge request is not in progress2165 has the correct permissions for admins2166 has the correct permissions for masters2167 has the correct permissions for developers2168 has the correct permissions for reporters2169 has the correct permissions for guests2170 when a merge request does not exist for the given source/target branch2171 has the correct permissions for admins2172 has the correct permissions for masters2173 has the correct permissions for developers2174 has the correct permissions for reporters2175 has the correct permissions for guests2176 when developers are allowed to push and merge into the wildcard protected branch2177 has the correct permissions for admins2178 has the correct permissions for masters2179 has the correct permissions for developers2180 has the correct permissions for reporters2181 has the correct permissions for guests2182 user-specific access control2183 when a specific user is allowed to push into the wildcard protected branch2184 has the correct permissions for admins2185 has the correct permissions for masters2186 has the correct permissions for developers2187 has the correct permissions for reporters2188 has the correct permissions for guests2189 when a specific user is allowed to merge into the wildcard protected branch2190 has the correct permissions for admins2191 has the correct permissions for masters2192 has the correct permissions for developers2193 has the correct permissions for reporters2194 has the correct permissions for guests2195 when a specific user is allowed to push & merge into the wildcard protected branch2196 has the correct permissions for admins2197 has the correct permissions for masters2198 has the correct permissions for developers2199 has the correct permissions for reporters2200 has the correct permissions for guests2201 group-specific access control2202 when a specific group is allowed to push into the wildcard protected branch2203 has the correct permissions for group masters2204 has the correct permissions for group developers2205 has the correct permissions for group reporters2206 has the correct permissions for group guests2207 when a specific group is allowed to merge into the wildcard protected branch2208 has the correct permissions for group masters2209 has the correct permissions for group developers2210 has the correct permissions for group reporters2211 has the correct permissions for group guests2212 when a specific group is allowed to push & merge into the wildcard protected branch2213 has the correct permissions for group masters2214 has the correct permissions for group developers2215 has the correct permissions for group reporters2216 has the correct permissions for group guests2217 when no one is allowed to push to the feat* protected branch2218 has the correct permissions for admins2219 has the correct permissions for masters2220 has the correct permissions for developers2221 has the correct permissions for reporters2222 has the correct permissions for guests2223 when pushing to a project2224 cleans up the files2225 build authentication abilities2226 when project is authorized2227 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2228 when unauthorized2229 to public project2230 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2231 to internal project2232 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2233 to private project2234 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2235 when the repository is read only2236 denies push access2237 deploy key permissions2238 when deploy_key can push2239 when project is authorized2240 should not raise Exception2241 when unauthorized2242 to public project2243 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2244 to internal project2245 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2246 to private project2247 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2248 when deploy_key cannot push2249 when project is authorized2250 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2251 when unauthorized2252 to public project2253 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2254 to internal project2255 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2256 to private project2257 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2258 Geo system permissions2259 should not raise Exception2260 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code for this project."2261 terms are enforced2262 as an anonymous user to a public project2263 should not raise Exception2264 as a guest to a public project2265 behaves like access after accepting terms2266 blocks access when the user did not accept terms2267 allows access when the user accepted the terms2268 as a reporter to the project2269 behaves like access after accepting terms2270 blocks access when the user did not accept terms2271 allows access when the user accepted the terms2272 as a developer of the project2273 behaves like access after accepting terms2274 blocks access when the user did not accept terms2275 allows access when the user accepted the terms2276 as a master of the project2277 behaves like access after accepting terms2278 blocks access when the user did not accept terms2279 allows access when the user accepted the terms2280 as an owner of the project2281 behaves like access after accepting terms2282 blocks access when the user did not accept terms2283 allows access when the user accepted the terms2284 when a ci build clones the project2285 doesn't block http pull2286User browses files2287 shows last commit for current directory2288 when browsing the master branch2289 shows files from a repository2290 shows the `Browse Directory` link2291 shows the `Browse File` link2292 shows the `Browse Files` link2293 redirects to the permalink URL2294 when browsing the `markdown` branch2295Starting the Capybara driver server...2296 when browsing the root2297 shows correct files and links2298 shows correct content of file2299 shows correct content of directory2300 when browsing a specific ref2301 shows files from a repository for `6d39438`2302 shows files from a repository with apostroph in its name2303 shows the code with a leading dot in the directory2304 does not show the permalink link2305 when browsing a file content2306 shows a file content2307 is possible to blame2308 when browsing a raw file2309 shows a raw file content2310Dropdown milestone2311 behavior2312 opens when the search bar has milestone:2313 closes when the search bar is unfocused2314 should show loading indicator when opened2315 should hide loading indicator when loaded2316 should load all the milestones when opened2317 filtering2318 filters by name2319 filters by case insensitive name2320 filters by name with symbol2321 filters by case insensitive name with symbol2322 filters by special characters2323 filters by special characters with symbol2324 selecting from dropdown2325 fills in the milestone name when the milestone has not been filled2326 fills in the milestone name when the milestone is partially filled2327 fills in the milestone name that contains multiple words2328 fills in the milestone name that contains multiple words and is very long2329 fills in the milestone name that contains double quotes2330 fills in the milestone name with the correct capitalization2331 fills in the milestone name with special characters2332 selects `no milestone`2333 selects `upcoming milestone`2334 selects `started milestones`2335 input has existing content2336 opens milestone dropdown with existing search term2337 opens milestone dropdown with existing author2338 opens milestone dropdown with existing assignee2339 opens milestone dropdown with existing label2340 opens milestone dropdown with existing milestone2341 opens milestone dropdown with existing my-reaction2342 caching requests2343 caches requests after the first load2344Merge request > User resolves conflicts2345 can be resolved in the UI2346 the conflicts are resolvable2347 shows a link to the conflict resolution page2348 in Inline view mode2349 conflicts are resolved in Interactive mode2350 conflicts are resolved in Edit inline mode2351 in Parallel view mode2352 conflicts are resolved in Interactive mode2353 conflicts are resolved in Edit inline mode2354 the conflict contain markers2355 conflicts can not be resolved in Interactive mode2356 conflicts are resolved in Edit inline mode2357 when the conflicts contain a large file2358 does not show a link to the conflict resolution page2359 shows an error if the conflicts page is visited directly2360 when the conflicts contain a binary file2361 does not show a link to the conflict resolution page2362 shows an error if the conflicts page is visited directly2363 when the conflicts contain a file edited in one branch and deleted in another2364 does not show a link to the conflict resolution page2365 shows an error if the conflicts page is visited directly2366 when the conflicts contain a non-UTF-8 file2367 does not show a link to the conflict resolution page2368 shows an error if the conflicts page is visited directly2369Branches2370 logged in as developer2371 on the projects with 6 active branches and 4 stale branches2372 Overview page of the branches2373 shows the first 5 active branches and the first 4 stale branches sorted by last updated2374 Active branches page2375 shows 6 active branches sorted by last updated2376 Stale branches page2377 shows 4 active branches sorted by last updated2378 All branches page2379 shows 10 branches sorted by last updated2380 with branches over more than one page2381 shows only default_per_page active branches sorted by last updated2382 shows only default_per_page branches sorted by last updated on All branches2383 Find branches2384 shows filtered branches2385 Delete unprotected branch on Overview2386 removes branch after confirmation2387 All branches page2388 shows all the branches sorted by last updated by default2389 sorts the branches by name2390 sorts the branches by oldest updated2391 avoids a N+1 query in branches index2392 Find branches on All branches2393 shows filtered branches2394 Delete unprotected branch on All branches2395 removes branch after confirmation2396 on project with 0 branch2397 0 branches on Overview2398 shows warning2399 logged in as master2400 shows the merge request button2401 Initial branches page2402 shows description for admin2403 when the project is archived2404 does not show the merge request button when the project is archived2405 logged out2406 does not show merge request button2407API::Pipelines2408 GET /projects/:id/pipelines2409 authorized user2410 returns project pipelines2411 when parameter is passed2412 when scope is running2413 returns matched pipelines2414 when scope is pending2415 returns matched pipelines2416 when scope is finished2417 returns matched pipelines2418 when scope is branches or tags2419 when scope is branches2420 returns matched pipelines2421 when scope is tags2422 returns matched pipelines2423 when scope is invalid2424 returns bad_request2425 when status is created2426 returns matched pipelines2427 when status is pending2428 returns matched pipelines2429 when status is running2430 returns matched pipelines2431 when status is success2432 returns matched pipelines2433 when status is failed2434 returns matched pipelines2435 when status is canceled2436 returns matched pipelines2437 when status is skipped2438 returns matched pipelines2439 when status is manual2440 returns matched pipelines2441 when status is invalid2442 returns bad_request2443 when ref is specified2444 when ref exists2445 returns matched pipelines2446 when ref does not exist2447 returns empty2448 when name is specified2449 when name exists2450 returns matched pipelines2451 when name does not exist2452 returns empty2453 when username is specified2454 when username exists2455 returns matched pipelines2456 when username does not exist2457 returns empty2458 when yaml_errors is specified2459 when yaml_errors is true2460 returns matched pipelines2461 when yaml_errors is false2462 returns matched pipelines2463 when yaml_errors is invalid2464 returns bad_request2465 when order_by and sort are specified2466 when order_by user_id2467 when sort parameter is valid2468 sorts as user_id: :desc2469 when sort parameter is invalid2470 returns bad_request2471 when order_by is invalid2472 returns bad_request2473 unauthorized user2474 does not return project pipelines2475 POST /projects/:id/pipeline2476 authorized user2477 with gitlab-ci.yml2478 creates and returns a new pipeline2479 fails when using an invalid ref2480 variables given2481 creates and returns a new pipeline using the given variables2482 using variables conditions2483 creates and returns a new pipeline using the given variables2484 condition unmatch2485 doesn't create a job2486 without gitlab-ci.yml2487 fails to create pipeline2488 unauthorized user2489 does not create pipeline2490 GET /projects/:id/pipelines/:pipeline_id2491 authorized user2492 returns project pipelines2493 returns 404 when it does not exist2494 with coverage2495 exposes the coverage2496 unauthorized user2497 should not return a project pipeline2498 POST /projects/:id/pipelines/:pipeline_id/retry2499 authorized user2500 retries failed builds2501 unauthorized user2502 should not return a project pipeline2503 POST /projects/:id/pipelines/:pipeline_id/cancel2504 authorized user2505 retries failed builds2506 user without proper access rights2507 rejects the action2508User views diffs2509 shows diffs2510 hides loading spinner after load2511 when in the inline view2512 unfolds diffs2513 when in the side-by-side view2514 shows diffs in parallel2515 unfolds diffs2516Merge request > User sees closing issues message2517 closing issues but not mentioning any other issue2518 does not display closing issue message2519 mentioning issues but not closing them2520 does not display closing issue message2521 closing some issues in title and mentioning, but not closing, others2522 does not display closing issue message2523 closing issues using title but not mentioning any other issue2524 does not display closing issue message2525 mentioning issues using title but not closing them2526 does not display closing issue message2527 closing some issues using title and mentioning, but not closing, others2528 does not display closing issue message2529 approvals are enabled while closing issues2530 displays closing issue message exactly one time2531Projects::JobsController2532 GET index2533 when scope is pending2534 has only pending builds2535 when scope is running2536 has only running jobs2537 when scope is finished2538 has only finished jobs2539 when page is specified2540 when page number is eligible2541 redirects to the page2542 number of queries2543 verifies number of queries2544 GET show2545 when requesting HTML2546 when job exists2547 has a job2548 when job does not exist2549 renders not_found2550 when requesting JSON2551 exposes needed information2552 GET trace.json2553 when job has a trace artifact2554 returns a trace2555 when job has a trace2556 returns a trace2557 when job has no traces2558 returns no traces2559 when job has a trace with ANSI sequence and Unicode2560 returns a trace with Unicode2561 when trace artifact is in ObjectStorage2562 when there are no network issues2563 returns a trace2564 when there is a network issue2565 returns a trace2566 GET status.json2567 return a detailed job status in json2568 POST retry2569 when job is retryable2570 redirects to the retried job page2571 when job is not retryable2572 renders unprocessable_entity2573 POST play2574 when job is playable2575 redirects to the played job page2576 transits to pending2577 when job is not playable2578 renders unprocessable_entity2579 POST cancel2580 when job is cancelable2581 redirects to the canceled job page2582 transits to canceled2583 when job is not cancelable2584 returns unprocessable_entity2585 POST cancel_all2586 when jobs are cancelable2587 redirects to a index page2588 transits to canceled2589 when jobs are not cancelable2590 redirects to a index page2591 POST erase2592 when job is erasable2593 redirects to the erased job page2594 erases artifacts2595 erases trace2596 when job is not erasable2597 returns unprocessable_entity2598 when user is developer2599 when triggered by same user2600 has successful status2601 when triggered by different user2602 does not have successful status2603 GET raw2604 when job has a trace artifact2605 returns a trace2606 when job has a trace file2607 send a trace file2608 when job has a trace in database2609 send a trace file2610 when job does not have a trace file2611 returns not_found2612 when the trace artifact is in ObjectStorage2613 redirect to the trace file url2614Snippet2615 Ruby file2616 displays the blob2617 Markdown file2618 visiting directly2619 displays the blob using the rich viewer2620 switching to the simple viewer2621 displays the blob using the simple viewer2622 switching to the rich viewer again2623 displays the blob using the rich viewer2624 visiting with a line number anchor2625 displays the blob using the simple viewer2626issue move to another project2627 user does not have permission to move issue2628 moving issue to another project not allowed2629 user has permission to move issue2630 moving issue to another project2631 searching project dropdown2632 user does not have permission to move the issue to a project2633 browsing projects in projects select2634 issue has been already moved2635 user wants to move issue that has already been moved2636CycleAnalytics#review2637 start condition: merge request that closes issue is created2638 end condition: merge request that closes issue is merged2639 finds the median of available durations between the two conditions2640 when the data belongs to another project2641 returns nil2642 when the end condition happens before the start condition2643 returns nil2644 start condition NOT PRESENT: merge request that closes issue is created2645 end condition: merge request that closes issue is merged2646 returns nil2647 start condition: merge request that closes issue is created2648 end condition NOT PRESENT: merge request that closes issue is merged2649 returns nil2650 when none of the start / end conditions are matched2651 returns nil2652 when a regular merge request (that doesn't close the issue) is created and merged2653 returns nil2654Projects::PipelinesController2655 GET index.json2656 does not include coverage data for the pipelines2657 when using persisted stages2658 returns serialized pipelines2659 when using legacy stages26602nd Try error in ./spec/controllers/projects/pipelines_controller_spec.rb:58:2661 expected 36 to be within 3 of 30 2662RSpec::Retry: 2nd try ./spec/controllers/projects/pipelines_controller_spec.rb:582663 returns JSON with serialized pipelines2664 when performing gitaly calls2665 limits the Gitaly requests2666 GET show.json2667 returns the pipeline2668 when the pipeline has multiple stages and groups2669 does not perform N + 1 queries2670 GET stages.json2671 when accessing existing stage2672 returns html source for stage dropdown2673 when accessing unknown stage2674 responds with not found2675 GET stages_ajax.json2676 when accessing existing stage2677 returns html source for stage dropdown2678 when accessing unknown stage2679 responds with not found2680 GET status.json2681 return a detailed pipeline status in json2682 POST retry.json2683 when builds are enabled2684 retries a pipeline without returning any content2685 when builds are disabled2686 fails to retry pipeline2687 POST cancel.json2688 when builds are enabled2689 cancels a pipeline without returning any content2690 when builds are disabled2691 fails to retry pipeline2692Projects > Files > Project owner creates a license file2693 project master creates a license file manually from a template2694 project master creates a license file from the "Add license" link2695Projects::BlobController2696 GET show2697 with file path2698 valid branch, valid file2699 should respond with 2002700 valid branch, invalid file2701 should respond with 4042702 invalid branch, valid file2703 should respond with 4042704 binary file2705 should respond with 2002706 with file path and JSON format2707 valid branch, valid file2708 should have key "raw_path"2709 with viewer=none2710 should have key "raw_path"2711 with tree path2712 redirect to tree2713 redirects2714 GET diff2715 when essential params are missing2716 renders nothing2717 when essential params are present2718 renders the diff content2719 GET edit2720 anonymous2721 redirects to sign in and returns2722 as guest2723 redirects to blob show2724 as developer2725 redirects to blob show2726 as master2727 redirects to blob show2728 PUT update2729 redirects to blob2730 ?from_merge_request_iid2731 redirects to MR diff2732 when user doesn't have access2733 it redirect to blob2734 when user has forked project2735 when editing on the fork2736 redirects to blob2737 when editing on the original repository2738 redirects to forked project new merge request2739UploadsController2740 POST create2741 when a user does not have permissions to upload a file2742 returns 401 when the user is not logged in2743 returns 404 when user can't comment on a snippet2744 when a user is logged in2745 returns an error without file2746 returns an error with invalid model2747 returns 404 status when object not found2748 with valid image2749 returns a content with original filename, new link, and correct type.2750 creates a corresponding Upload record2751 with valid non-image file2752 returns a content with original filename, new link, and correct type.2753 creates a corresponding Upload record2754 temporal with valid image2755 returns a content with original filename, new link, and correct type.2756 does not create an Upload record2757 temporal with valid non-image file2758 returns a content with original filename, new link, and correct type.2759 does not create an Upload record2760 GET show2761 Content-Disposition security measures2762 for PNG files2763 returns Content-Disposition: inline2764 for SVG files2765 returns Content-Disposition: attachment2766 when viewing a user avatar2767 when signed in2768 when the user is blocked2769 redirects to the sign in page2770 when the user isn't blocked2771 responds with status 2002772 behaves like content not cached without revalidation2773 ensures content will not be cached without revalidation2774 when not signed in2775 responds with status 2002776 behaves like content not cached without revalidation2777 ensures content will not be cached without revalidation2778 when viewing a project avatar2779 when the project is public2780 when not signed in2781 responds with status 2002782 behaves like content not cached without revalidation2783 ensures content will not be cached without revalidation2784 when signed in2785 responds with status 2002786 behaves like content not cached without revalidation2787 ensures content will not be cached without revalidation2788 when the project is private2789 when not signed in2790 redirects to the sign in page2791 when signed in2792 when the user has access to the project2793 when the user is blocked2794 redirects to the sign in page2795 when the user isn't blocked2796 responds with status 2002797 behaves like content not cached without revalidation2798 ensures content will not be cached without revalidation2799 when the user doesn't have access to the project2800 responds with status 4042801 when viewing a group avatar2802 when the group is public2803 when not signed in2804 responds with status 2002805 behaves like content not cached without revalidation2806 ensures content will not be cached without revalidation2807 when signed in2808 responds with status 2002809 behaves like content not cached without revalidation2810 ensures content will not be cached without revalidation2811 when the group is private2812 when signed in2813 when the user has access to the project2814 when the user is blocked2815 redirects to the sign in page2816 when the user isn't blocked2817 responds with status 2002818 behaves like content not cached without revalidation2819 ensures content will not be cached without revalidation2820 when the user doesn't have access to the project2821 responds with status 4042822 when viewing a note attachment2823 when the project is public2824 when not signed in2825 responds with status 2002826 behaves like content not cached without revalidation2827 ensures content will not be cached without revalidation2828 when signed in2829 responds with status 2002830 behaves like content not cached without revalidation2831 ensures content will not be cached without revalidation2832 when the project is private2833 when not signed in2834 redirects to the sign in page2835 when signed in2836 when the user has access to the project2837 when the user is blocked2838 redirects to the sign in page2839 when the user isn't blocked2840 responds with status 2002841 behaves like content not cached without revalidation2842 ensures content will not be cached without revalidation2843 when the user doesn't have access to the project2844 responds with status 4042845 Appearance2846 when viewing a custom header logo2847 when not signed in2848 responds with status 2002849 behaves like content not cached without revalidation2850 ensures content will not be cached without revalidation2851 when viewing a custom logo2852 when not signed in2853 responds with status 2002854 behaves like content not cached without revalidation2855 ensures content will not be cached without revalidation2856 original filename or a version filename must match2857 has a valid filename on the original file2858 successfully returns the file2859 has an invalid filename on the original file2860 returns a 4042861Gitlab::Checks::ChangeAccess2862 #exec2863 without failed checks2864 doesn't raise an error2865 when the user is not allowed to push to the repo2866 raises an error2867 tags check2868 raises an error if the user is not allowed to update tags2869 with protected tag2870 as maintainer2871 deletion2872 is prevented2873 update2874 is prevented2875 creation2876 prevents creation below access level2877 when user has access2878 allows tag creation2879 branches check2880 trying to delete the default branch2881 raises an error2882 protected branches check2883 raises an error if the user is not allowed to do forced pushes to protected branches2884 raises an error if the user is not allowed to merge to protected branches2885 raises an error if the user is not allowed to push to protected branches2886 branch deletion2887 if the user is not allowed to delete protected branches2888 raises an error2889 if the user is allowed to delete protected branches2890 through the web interface2891 allows branch deletion2892 over SSH or HTTP2893 raises an error2894 LFS integrity check2895 with LFS not enabled2896 skips integrity check2897 with LFS enabled2898 fails if any LFS blobs are missing2899 succeeds if LFS objects have already been uploaded2900 deletion2901 skips integrity check2902 LFS file lock check2903 with LFS not enabled2904 skips the validation2905 with LFS enabled2906 when change is sent by a different user2907 raises an error if the user is not allowed to update the file2908 when change is sent by the author of the lock2909 doesn't raise any error2910 LFS file lock check2911 with LFS not enabled2912 skips the validation2913 with LFS enabled2914 when change is sent by a different user2915 raises an error if the user is not allowed to update the file2916 when change is sent by the author of the lock2917 doesn't raise any error2918Gitlab::Ci::Pipeline::Seed::Build2919 #attributes2920 returns hash attributes of a build2921 #to_resource2922 returns a valid build resource2923 memoizes a resource object2924 can not be persisted without explicit assignment2925 applying only/except policies2926 when no branch policy is specified2927 should be included2928 when branch policy does not match2929 when using only2930 should not be included2931 when using except2932 should be included2933 when branch regexp policy does not match2934 when using only2935 should not be included2936 when using except2937 should be included2938 when branch policy matches2939 when using only2940 should be included2941 when using except2942 should not be included2943 when keyword policy matches2944 when using only2945 should be included2946 when using except2947 should not be included2948 when keyword policy does not match2949 when using only2950 should not be included2951 when using except2952 should be included2953 when keywords and pipeline source policy matches2954 when using only2955 when using keyword `pushes` and source `push`2956 should be included2957 when using keyword `web` and source `web`2958 should be included2959 when using keyword `triggers` and source `trigger`2960 should be included2961 when using keyword `schedules` and source `schedule`2962 should be included2963 when using keyword `api` and source `api`2964 should be included2965 when using keyword `external` and source `external`2966 should be included2967 when using except2968 when using keyword `pushes` and source `push`2969 should not be included2970 when using keyword `web` and source `web`2971 should not be included2972 when using keyword `triggers` and source `trigger`2973 should not be included2974 when using keyword `schedules` and source `schedule`2975 should not be included2976 when using keyword `api` and source `api`2977 should not be included2978 when using keyword `external` and source `external`2979 should not be included2980 when keywords and pipeline source does not match2981 when using only2982 when using keyword `pushes` and source `web`2983 should not be included2984 when using keyword `web` and source `push`2985 should not be included2986 when using keyword `triggers` and source `schedule`2987 should not be included2988 when using keyword `schedules` and source `external`2989 should not be included2990 when using keyword `api` and source `trigger`2991 should not be included2992 when using keyword `external` and source `api`2993 should not be included2994 when using except2995 when using keyword `pushes` and source `web`2996 should be included2997 when using keyword `web` and source `push`2998 should be included2999 when using keyword `triggers` and source `schedule`3000 should be included3001 when using keyword `schedules` and source `external`3002 should be included3003 when using keyword `api` and source `trigger`3004 should be included3005 when using keyword `external` and source `api`3006 should be included3007 when repository path matches3008 when using only3009 should be included3010 when using except3011 should not be included3012 when repository path does not matches3013 when using only3014 should not be included3015 when using except3016 should be included3017Ci::BuildPolicy3018 #rules3019 when user does not have access to the project3020 when public builds are enabled3021 does not include ability to read build3022 when public builds are disabled3023 does not include ability to read build3024 when anonymous user has access to the project3025 when public builds are enabled3026 includes ability to read build3027 when public builds are disabled3028 does not include ability to read build3029 when team member has access to the project3030 team member is a guest3031 when public builds are enabled3032 includes ability to read build3033 when public builds are disabled3034 does not include ability to read build3035 team member is a reporter3036 when public builds are enabled3037 includes ability to read build3038 when public builds are disabled3039 does not include ability to read build3040 when maintainer is allowed to push to pipeline branch3041 enables update_build if user is maintainer3042 rules for protected ref3043 when no one can push or merge to the branch3044 does not include ability to update build3045 when developers can push to the branch3046 includes ability to update build3047 when no one can create the tag3048 does not include ability to update build3049 when no one can create the tag but it is not a tag3050 includes ability to update build3051 rules for erase build3052 when a developer erases a build3053 when developers can push to the branch3054 when the build was created by the developer3055 should be allowed :erase_build3056 when the build was created by the other3057 should be disallowed :erase_build3058 when no one can push or merge to the branch3059 should be disallowed :erase_build3060 when a master erases a build3061 when masters can push to the branch3062 when the build was created by the master3063 should be allowed :erase_build3064 when the build was created by the other3065 should be allowed :erase_build3066 when no one can push or merge to the branch3067 should be disallowed :erase_build3068Merge request > User resolves outdated diff discussions3069 when a discussion was resolved by a push3070 shows that as automatically resolved3071 does not show that for active discussions3072Edit group settings3073 when the group path is changed3074 the group is accessible via the new path3075 the old group path redirects to the new path3076 with a subgroup3077 the subgroup is accessible via the new path3078 the old subgroup path redirects to the new path3079 with a project3080 the project is accessible via the new path3081 the old project path redirects to the new path3082 edit group avatar3083 uploads new group avatar3084 removes group avatar3085API::ProjectHooks ProjectHooks3086 GET /projects/:id/hooks3087 authorized user3088 returns project hooks3089 unauthorized user3090 does not access project hooks3091 GET /projects/:id/hooks/:hook_id3092 returns a 404 error if hook id is not available3093 authorized user3094 returns a project hook3095 returns a 404 error if hook id is not available3096 unauthorized user3097 does not access an existing hook3098 POST /projects/:id/hooks3099 adds hook to project3100 adds the token without including it in the response3101 returns a 400 error if url not given3102 returns a 422 error if url not valid3103 PUT /projects/:id/hooks/:hook_id3104 updates an existing project hook3105 adds the token without including it in the response3106 returns 404 error if hook id not found3107 returns 400 error if url is not given3108 returns a 422 error if url is not valid3109 DELETE /projects/:id/hooks/:hook_id3110 deletes hook from project3111 returns a 404 error when deleting non existent hook3112 returns a 404 error if hook id not given3113 returns a 404 if a user attempts to delete project hooks he/she does not own3114 behaves like 412 response3115 for a modified ressource3116 returns 4123117 for an unmodified ressource3118 returns accepted3119Files::MultiService3120 #execute3121 with a valid action3122 returns a hash with the :success status3123 with an invalid action3124 returns a hash with the :error status3125 Updating files3126 when the file has been previously updated3127 rejects the commit3128 when the file have not been modified3129 accepts the commit3130 when moving a file3131 when original file has been updated3132 rejects the commit3133 when original file have not been updated3134 moves the file3135 when creating a file matching an LFS filter3136 creates an LFS pointer3137 creates an LfsObject with the file's content3138 links the LfsObject to the project3139 with base64 encoded content3140 creates an LFS pointer3141 creates an LfsObject with the file's content3142 when file status validation is skipped3143 does not check the last commit3144 creates the file3145Projects::ServicesController3146 #test3147 when can_test? returns false3148 renders 4043149 when validations fail3150 returns error messages in JSON response3151 success3152 returns success3153 with empty project3154 returns success3155 with chat notification service3156 returns success3157 when service is configured for the first time3158 persist the object3159 creates the ServiceHook object3160 failure3161 returns success status code and the error message3162 PUT #update3163 when param `active` is set to true3164 activates the service and redirects to integrations paths3165 when param `active` is set to false3166 does not activate the service but saves the settings3167 with a deprecated service3168 should not update the service3169 GET #edit3170 with approved services3171 should render edit page3172 with a deprecated service3173 should render edit page3174Gitlab::Git::Popen3175 popen3176 zero status3177 should be zero3178 should include "tests"3179 non-zero status3180 should eq 13181 should include "No such file or directory"3182 unsafe string command3183 raises an error when it gets called with a string argument3184 with custom options3185 calls popen3 with the provided environment variables3186 use stdin3187 should be zero3188 should eq "hello"3189 with lazy block3190 yields a lazy io3191 doesn't wait for process exit3192 popen_with_timeout3193 no timeout3194 zero status3195 should be zero3196 should include "tests"3197 non-zero status3198 should eq 13199 should include "No such file or directory"3200 unsafe string command3201 raises an error when it gets called with a string argument3202 timeout3203 timeout3204 raises a Timeout::Error3205 handles processes that do not shutdown correctly3206 timeout period3207 should be >= 13208 clean up3209 kills the child process3210Slack slash commands3211 shows a token placeholder3212 shows a help message3213 redirects to the integrations page after saving but not activating3214 redirects to the integrations page after activating3215 shows the correct trigger url3216CleanupNamespacelessPendingDeleteProjects3217 #up3218 only cleans up pending delete projects3219 does nothing when no pending delete projects without namespace found3220Banzai::Filter::IssuableStateFilter3221 ignores non-GFM links3222 ignores non-issuable links3223 ignores issuable links with empty content3224 ignores issuable links with custom anchor3225 ignores issuable links to specific comments3226 ignores merge request links to diffs tab3227 handles cross project references3228 handles references from group scopes3229 skips cross project references if the user cannot read cross project3230 does not append state when filter is not enabled3231 when project is in pending delete3232 does not append issue state3233 for issue references3234 ignores open issue references3235 appends state to closed issue references3236 for merge request references3237 ignores open merge request references3238 ignores reopened merge request references3239 ignores locked merge request references3240 appends state to closed merge request references3241 appends state to merged merge request references3242admin deploy keys3243 show all public deploy keys3244 shows all the projects the deploy key has write access3245 create a new deploy key3246 creates a new deploy key3247 update an existing deploy key3248 updates an existing deploy key3249 remove an existing deploy key3250 removes an existing deploy key3251Ci::PlayBuildService#execute3252 when project does not have repository yet3253 allows user to play build if protected branch rules are met3254 does not allow user with developer role to play build3255 when project has repository3256 allows user with developer role to play a build3257 when build is a playable manual action3258 enqueues the build3259 reassignes build user correctly3260 when build is not a playable manual action3261 duplicates the build3262 assigns users correctly3263 when build is not action3264 raises an error3265 when user does not have ability to trigger action3266 raises an error3267Issuable::CommonSystemNotesService3268 #execute3269 behaves like system note creation3270 creates 1 system note with the correct content3271 behaves like system note creation3272 creates 1 system note with the correct content3273 behaves like system note creation3274 creates 1 system note with the correct content3275 behaves like system note creation3276 creates 1 system note with the correct content3277 when new label is added3278 behaves like system note creation3279 creates 1 system note with the correct content3280 when new milestone is assigned3281 behaves like system note creation3282 creates 1 system note with the correct content3283 with merge requests WIP note3284 adding WIP note3285 behaves like system note creation3286 creates 1 system note with the correct content3287 and changing title3288 behaves like WIP notes creation3289 creates WIP toggle and title change notes3290 removing WIP note3291 behaves like system note creation3292 creates 1 system note with the correct content3293 and changing title3294 behaves like WIP notes creation3295 creates WIP toggle and title change notes3296User sorts merge requests3297 keeps the sort option3298 when merge requests have awards3299 sorts by popularity3300NotificationSettingsController3301 #create3302 when not authorized3303 redirects to sign in page3304 when authorized3305 for projects3306 creates notification setting3307 with custom settings3308 creates notification setting3309 for groups3310 creates notification setting3311 with custom settings3312 creates notification setting3313 not authorized3314 returns 4043315 #update3316 when not authorized3317 redirects to sign in page3318 when authorized3319 returns success3320 and setting custom notification setting3321 returns success3322 not authorized3323 returns 4043324User deletes wiki page3325 deletes a page3326FinderWithCrossProjectAccess3327 when the user cannot read cross project3328 #execute3329 returns a issue if the check is disabled3330 returns an empty relation when the check is enabled3331 only queries once when check is enabled3332 only queries once when check is disabled3333 #find3334 checks the accessibility of the subject directly3335 returns the issue3336 #find_by3337 checks the accessibility of the subject directly3338 #find_by!3339 checks the accessibility of the subject directly3340 re-enables the check after the find failed3341 when the user can read cross project3342 returns the result3343User activates HipChat3344 with standart settings3345 activates service3346 with custom settings3347 activates service3348Gitlab::Ci::Status::Build::Stop3349 #label3350 should eq "manual stop action"3351 action details3352 #has_action?3353 when user is allowed to update build3354 should have action3355 when user is not allowed to update build3356 should not have action3357 #action_path3358 should include "190/play"3359 #action_icon3360 should eq "stop"3361 #action_title3362 should eq "Stop"3363 #action_button_title3364 should eq "Stop this environment"3365 .matches?3366 when build is playable3367 when build stops an environment3368 is a correct match3369 when build does not stop an environment3370 does not match3371 when build is not playable3372 does not match3373 #status_tooltip3374 does not override status status_tooltip3375 #badge_tooltip3376 does not override status badge_tooltip3377User sorts things3378 issues -> project home page -> issues3379 issues -> merge requests3380 merge requests -> dashboard merge requests3381PrometheusService3382 Associations3383 should belong to project3384 Validations3385 when manual_configuration is enabled3386 should validate that :api_url cannot be empty/falsy3387 when manual configuration is disabled3388 should not validate that :api_url cannot be empty/falsy3389 #test3390 success3391 reads the discovery endpoint3392 failure3393 fails to read the discovery endpoint3394 #prometheus_client3395 manual configuration is enabled3396 returns rest client from api_url3397 manual configuration is disabled3398 no client provided3399 #prometheus_installed?3400 clusters with installed prometheus3401 returns true3402 clusters without prometheus installed3403 returns false3404 clusters without prometheus3405 returns false3406 no clusters3407 returns false3408 #synchronize_service_state before_save callback3409 no clusters with prometheus are installed3410 when service is inactive3411 activates service when manual_configuration is enabled3412 keeps service inactive when manual_configuration is disabled3413 when service is active3414 keeps the service active when manual_configuration is enabled3415 inactivates the service when manual_configuration is disabled3416 with prometheus installed in the cluster3417 when service is inactive3418 activates service when manual_configuration is enabled3419 activates service when manual_configuration is disabled3420 when service is active3421 keeps service active when manual_configuration is enabled3422 keeps service active when manual_configuration is disabled3423Projects > Settings > User changes avatar3424 saves the new avatar3425 with an avatar already set3426 is possible to remove the avatar3427Dashboard Active Tab3428 on dashboard projects3429 behaves like page has active tab3430 Projects tab3431 on dashboard groups3432 behaves like page has active tab3433 Groups tab3434 on activity projects3435 behaves like page has active tab3436 Activity tab3437SystemHook3438 default attributes3439 sets defined default parameters3440 execute3441 project_create hook3442 project_destroy hook3443 user_create hook3444 user_destroy hook3445 project_create hook3446 project_destroy hook3447 group create hook3448 group destroy hook3449 group member create hook3450 group member destroy hook3451 .repository_update_hooks3452 returns hooks for repository update events only3453 execute WebHookService3454 #execute3455 #async_execute3456Boards::Lists::DestroyService3457 #execute3458 when board parent is a project3459 behaves like lists destroy service3460 does not remove list from board when list type is closed3461 when list type is label3462 removes list from board3463 decrements position of higher lists3464 when board parent is a group3465 behaves like lists destroy service3466 does not remove list from board when list type is closed3467 when list type is label3468 removes list from board3469 decrements position of higher lists3470Gitlab::Ci::Build::Step3471 #from_commands3472 when commands are specified3473 behaves like has correct script3474 fabricates an object3475 when script option is specified3476 behaves like has correct script3477 fabricates an object3478 when before and script option is specified3479 behaves like has correct script3480 fabricates an object3481 #from_after_script3482 when after_script is empty3483 doesn not fabricate an object3484 when after_script is not empty3485 fabricates an object3486Gitlab::Auth::Saml::User3487 #save3488 account exists on server3489 and should bind with SAML3490 adds the SAML identity to the existing user3491 external groups3492 are defined3493 marks the user as external3494 are defined but the user does not belong there3495 does not mark the user as external3496 user was external, now should not be3497 makes user internal3498 no account exists on server3499 external groups3500 are defined3501 marks the user as external3502 are defined but the user does not belong there3503 does not mark the user as external3504 with auto_link_ldap_user disabled (default)3505 with allow_single_sign_on enabled3506 creates a user from SAML3507 with allow_single_sign_on default (["saml"])3508 does not throw an error3509 with allow_single_sign_on disabled3510 throws an error3511 with auto_link_ldap_user enabled3512 and at least one LDAP provider is defined3513 and a corresponding LDAP person3514 and no account for the LDAP user3515 creates a user with dual LDAP and SAML identities3516 and LDAP user has an account already3517 adds the omniauth identity to the LDAP account3518 saves successfully on subsequent tries, when both identities are present3519 when uid is an uid3520 behaves like find LDAP person3521 adds the omniauth identity to the LDAP account3522 when uid is a dn3523 behaves like find LDAP person3524 adds the omniauth identity to the LDAP account3525 when uid is an email3526 behaves like find LDAP person3527 adds the omniauth identity to the LDAP account3528 user has SAML user, and wants to add their LDAP identity3529 adds the LDAP identity to the existing SAML user3530 when signup is disabled3531 creates the user3532 when user confirmation email is enabled3533 creates and confirms the user anyway3534 blocking3535 signup with SAML only3536 dont block on create3537 does not block the user3538 block on create3539 blocks user3540 sign-in3541 dont block on create3542 should not be blocked3543 block on create3544 should not be blocked3545 #find_user3546 raw info hash attributes empty3547 does not mark user as external3548Banzai::Pipeline::GfmPipeline3549 integration between parsing regular and external issue references3550 when internal issue tracker is enabled3551 allows to use long external reference syntax for Redmine3552 parses cross-project references to regular issues3553 when shorthand pattern #ISSUE_ID is used3554 links an internal issue if it exists3555 does not link any issue if it does not exist on GitLab3556 when internal issue tracker is disabled3557 allows to use shorthand external reference syntax for Redmine3558 allows to use long external reference syntax for Redmine3559 parses cross-project references to regular issues3560Gitlab::GithubImport::Importer::LabelsImporter3561 #execute3562 imports the labels in bulk3563 #build_labels3564 returns an Array containnig label rows3565 does not create labels that already exist3566 #build_labels_cache3567 builds the labels cache3568 #build3569 returns the attributes of the label as a Hash3570 the returned Hash3571 includes the label title3572 includes the label color3573 includes the project ID3574 includes the label type3575 includes the created timestamp3576 includes the updated timestamp3577 #each_label3578 returns the labels3579DeleteConflictingRedirectRoutes3580 NO-OP: does not schedule any background migrations (FAILED - 1)3581RemoveExpiredGroupLinksWorker3582 #perform3583 removes expired group links3584 leaves group links that expire in the future3585 leaves group links that do not expire at all3586API::Helpers3587 #find_project3588 when ID is used as an argument3589 behaves like project finder3590 when project exists3591 returns requested project3592 returns nil3593 when PATH is used as an argument3594 behaves like project finder3595 when project exists3596 returns requested project3597 returns nil3598 with an invalid PATH3599 does not hit the database3600 behaves like project finder3601 when project exists3602 returns requested project3603 returns nil3604 #find_namespace3605 when ID is used as an argument3606 behaves like namespace finder3607 when namespace exists3608 returns requested namespace3609 when namespace doesn't exists3610 returns nil3611 when PATH is used as an argument3612 behaves like namespace finder3613 when namespace exists3614 returns requested namespace3615 when namespace doesn't exists3616 returns nil3617 #find_namespace!3618 behaves like user namespace finder3619 when namespace is group3620 when user has access to group3621 returns requested namespace3622 when user doesn't have access to group3623 raises not found error3624 when namespace is user's personal namespace3625 when user owns the namespace3626 returns requested namespace3627 when user doesn't own the namespace3628 raises not found error3629 #user_namespace3630 behaves like user namespace finder3631 when namespace is group3632 when user has access to group3633 returns requested namespace3634 when user doesn't have access to group3635 raises not found error3636 when namespace is user's personal namespace3637 when user owns the namespace3638 returns requested namespace3639 when user doesn't own the namespace3640 raises not found error3641Projects::RefsController3642 GET #logs_tree3643 never throws MissingTemplate3644 renders 404 for non-JS requests3645 renders JS3646 renders JSON3647projects/merge_requests/diffs/_diffs.html.haml3648 for a commit3649 shows the commit scope3650DeployKeysProject3651 Associations3652 should belong to deploy_key3653 should belong to project3654 Validation3655 should validate that :project_id cannot be empty/falsy3656 should validate that :deploy_key cannot be empty/falsy3657 Destroying3658 when the deploy key is only used by this project3659 when the deploy key is public3660 doesn't destroy the deploy key3661 when the deploy key is private3662 destroys the deploy key3663 when the deploy key is used by more than one project3664 doesn't destroy the deploy key3665Gitlab::Ci::Status::Factory3666 when object has a core status3667 when simple core status is created3668 fabricates a core status created3669 matches a valid core status for created3670 does not match any extended statuses for created3671 when simple core status is pending3672 fabricates a core status pending3673 matches a valid core status for pending3674 does not match any extended statuses for pending3675 when simple core status is running3676 fabricates a core status running3677 matches a valid core status for running3678 does not match any extended statuses for running3679 when simple core status is success3680 fabricates a core status success3681 matches a valid core status for success3682 does not match any extended statuses for success3683 when simple core status is failed3684 fabricates a core status failed3685 matches a valid core status for failed3686 does not match any extended statuses for failed3687 when simple core status is canceled3688 fabricates a core status canceled3689 matches a valid core status for canceled3690 does not match any extended statuses for canceled3691 when simple core status is skipped3692 fabricates a core status skipped3693 matches a valid core status for skipped3694 does not match any extended statuses for skipped3695 when simple core status is manual3696 fabricates a core status manual3697 matches a valid core status for manual3698 does not match any extended statuses for manual3699 when resource supports multiple extended statuses3700 when exclusive statuses are matches3701 does not fabricate compound decorator3702 delegates to core status3703 matches correct core status3704 matches correct extended statuses3705 when exclusive statuses are not matched3706 behaves like compound decorator factory3707 fabricates compound decorator3708 delegates to core status3709 latest matches status becomes a status name3710 matches correct core status3711 matches correct extended statuses3712 when using simplified status grouping3713 behaves like compound decorator factory3714 fabricates compound decorator3715 delegates to core status3716 latest matches status becomes a status name3717 matches correct core status3718 matches correct extended statuses3719MergeRequestsHelper3720 ci_build_details_path3721 does not include api credentials in a link3722 #format_mr_branch_names3723 within the same project3724 should eq ["master", "feature"]3725 within different projects3726 should eq ["group66/project754:master", "namespace748/project754:feature"]3727 #render_items_list3728 returns one item in the list3729 returns two items in the list3730 returns three items in the list3731 #tab_link_for3732 supports the :force_link option3733 removes the data-toggle attributes3734PersonalSnippetPolicy3735 public snippet3736 no user3737 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3738 regular user3739 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3740 author3741 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3742 internal snippet3743 no user3744 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3745 regular user3746 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3747 external user3748 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3749 snippet author3750 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3751 private snippet3752 no user3753 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3754 regular user3755 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3756 external user3757 should be disallowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3758 snippet author3759 should be allowed :update_personal_snippet, :admin_personal_snippet, and :destroy_personal_snippet3760Ci::PipelinePolicy3761 rules3762 rules for protected ref3763 when no one can push or merge to the branch3764 does not include ability to update pipeline3765 when developers can push to the branch3766 includes ability to update pipeline3767 when no one can create the tag3768 does not include ability to update pipeline3769 when no one can create the tag but it is not a tag3770 includes ability to update pipeline3771 when maintainer is allowed to push to pipeline branch3772 enables update_pipeline if user is maintainer3773Merge request > User sees empty state3774 shows an empty state and a "New merge request" button3775 if there are merge requests3776 does not show an empty state3777Admin activates Prometheus3778 activates service3779NotePolicy3780 #rules3781 when the project is public3782 when the note author is not a project member3783 can edit a note3784 when the noteable is a snippet3785 can edit note3786 when a discussion is locked3787 when the note author is a project member3788 can edit a note3789 when the note author is not a project member3790 can not edit a note3791 can read a note3792EntityDateHelper3793 converts 0 seconds3794 converts 40 seconds3795 converts 60 seconds3796 converts 70 seconds3797 converts 3600 seconds3798 converts 3750 seconds3799 converts 86400 seconds3800 converts 86560 seconds3801 converts 86760 seconds3802 converts 986760 seconds3803 #remaining_days_in_words3804 when less than 31 days remaining3805 returns days remaining3806 when less than 1 year and more than 30 days remaining3807 returns months remaining3808 when more than 1 year remaining3809 returns years remaining3810 when milestone is expired3811 returns "Past due"3812 when milestone has start_date in the future3813 returns "Upcoming"3814 when milestone has start_date in the past3815 returns days elapsed3816Clusters::Applications::InstallService3817 #execute3818 when there are no errors3819 make the application installing3820 schedule async installation status check3821 when k8s cluster communication fails3822 make the application errored3823 when application cannot be persisted3824 make the application errored3825Gitlab::PerformanceBar3826 .enabled?3827 returns false when given user is nil3828 returns true when given user is an admin3829 returns false when allowed_group_id is nil3830 when allowed group ID does not exist3831 returns false3832 when allowed group exists3833 when user is not a member of the allowed group3834 returns false3835 behaves like allowed user IDs are cached3836 caches the allowed user IDs in cache3837 when user is a member of the allowed group3838 returns true3839 behaves like allowed user IDs are cached3840 caches the allowed user IDs in cache3841 when allowed group is nested3842 returns the nested group3843 when a nested group has the same path3844 returns false3845ReactiveCachingWorker3846 #perform3847 when user configured kubernetes from Integration > Kubernetes3848 calls #exclusively_update_reactive_cache!3849 when user configured kubernetes from CI/CD > Clusters3850 calls #exclusively_update_reactive_cache!3851Gitlab::Ci::Build::Policy::Kubernetes3852 when kubernetes service is active3853 when user configured kubernetes from Integration > Kubernetes3854 behaves like same behavior between KubernetesService and Platform::Kubernetes3855 is satisfied by a kubernetes pipeline3856 when user configured kubernetes from CI/CD > Clusters3857 behaves like same behavior between KubernetesService and Platform::Kubernetes3858 is satisfied by a kubernetes pipeline3859 when kubernetes service is inactive3860 is not satisfied by a pipeline without kubernetes available3861 when kubernetes policy is invalid3862 raises an error3863Prometheus::AdapterService3864 #prometheus_adapter3865 prometheus service can execute queries3866 return prometheus service as prometheus adapter3867 prometheus service can't execute queries3868 with cluster with prometheus installed3869 returns application handling all environments3870 with cluster without prometheus installed3871 returns nil3872InvitesController3873 GET #accept3874 accepts user3875 GET #decline3876 declines user3877BuildActionEntity3878 #as_json3879 contains original job name3880 contains path to the action play3881 contains whether it is playable3882Projects > Files > Download buttons in files tree3883 with artifacts3884 shows download artifacts button3885Admin System Info3886 GET /admin/system_info3887 when all info is available3888 shows system info page3889 when CPU info is not available3890 shows system info page with no CPU info3891 when memory info is not available3892 shows system info page with no CPU info3893ProjectImportOptions3894 sets default retry limit3895 sets default status expiration3896 .sidekiq_retries_exhausted38972018-06-26T14:05:06.843Z 193 TID-gt4u2xtwp WARN: Failed with [816, nil, nil]: 3898 marks fork as failed38992018-06-26T14:05:06.998Z 193 TID-gt4u2xtwp WARN: Failed with [817, nil, nil]: 3900 logs the appropriate error message for forked projects39012018-06-26T14:05:07.157Z 193 TID-gt4u2xtwp WARN: Failed with [818, nil, nil]: 3902 logs the appropriate error message for forked projects3903Gitlab::DataBuilder::WikiPage3904 .build3905 should be a kind of Hash3906 should eq "wiki_page"3907 should eq {:name=>"John Doe1639", :username=>"user1557", :avatar_url=>"https://www.gravatar.com/avatar/974efd6ec539af892fb06b7a66830b88?s=80&d=identicon"}3908 should eq {:id=>819, :name=>"project797", :description=>nil, :web_url=>"http://localhost/namespace791/project79...t@localhost:namespace791/project797.git", :http_url=>"http://localhost/namespace791/project797.git"}3909 should eq {:web_url=>"http://localhost/namespace791/project797/wikis/home", :git_ssh_url=>"git@localhost:namesp...oject797.wiki.git", :path_with_namespace=>"namespace791/project797.wiki", :default_branch=>"master"}3910 should include {:title => "Title", :content => "Content for wiki page", :format => "markdown"}3911 should include {:url => "http://localhost/namespace791/project797/wikis/Title"}3912 should include {:action => "create"}3913User uploads avatar to profile3914 they see their new avatar3915SystemNoteMetadata3916 associations3917 should belong to note3918 validation3919 should validate that :note cannot be empty/falsy3920 when action type is invalid3921 should be invalid3922 when action type is valid3923 should be valid3924Events::RenderService3925 #execute3926 when the request format is atom3927 renders the note inside events3928 when the request format is not atom3929 renders the note inside events3930ChatNotificationService3931 Associations3932 should validate that :webhook cannot be empty/falsy3933 #can_test?3934 with empty repository3935 returns true3936 with repository3937 returns true3938User views labels3939 shows all labels3940Gitlab::Diff::LineMapper3941 #old_to_new3942 with a diff file3943 returns the new line number for the old line number3944 without a diff file3945 returns the same line number3946 #new_to_old3947 with a diff file3948 returns the old line number for the new line number3949 without a diff file3950 returns the same line number3951Oauth::AuthorizationsController3952 GET #new3953 without valid params3954 returns 200 code and renders error view3955 with valid params3956 returns 200 code and renders view3957 deletes session.user_return_to and redirects when skip authorization3958Gitlab::UrlSanitizer3959 .sanitize3960 input: "http://user:pass@test.com/root/repoC.git/", output: "http://*****:*****@test.com/root/repoC.git/"3961 should include "repository 'http://*****:*****@test.com/root/repoC.git/' not found"3962 input: "https://user:pass@test.com/root/repoA.git/", output: "https://*****:*****@test.com/root/repoA.git/"3963 should include "repository 'https://*****:*****@test.com/root/repoA.git/' not found"3964 input: "ssh://user@host.test/path/to/repo.git", output: "ssh://*****@host.test/path/to/repo.git"3965 should include "repository 'ssh://*****@host.test/path/to/repo.git' not found"3966 input: "git://user:pass@host.test/path/to/repo.git", output: "git://*****:*****@host.test/path/to/repo.git"3967 should include "repository 'git://*****:*****@host.test/path/to/repo.git' not found"3968 input: "git://host.test/path/to/repo.git", output: "git://host.test/path/to/repo.git"3969 should include "repository 'git://host.test/path/to/repo.git' not found"3970 input: "user@server:project.git", output: "user@server:project.git"3971 should include "repository 'user@server:project.git' not found"3972 input: "user:pass@server:project.git", output: "user:pass@server:project.git"3973 should include "repository 'user:pass@server:project.git' not found"3974 input: "ssh://", output: ""3975 should include "repository '' not found"3976 .valid?3977 value: false, url: nil3978 should eq false3979 value: false, url: ""3980 should eq false3981 value: false, url: "123://invalid:url"3982 should eq false3983 value: false, url: "valid@project:url.git"3984 should eq false3985 value: false, url: "valid:pass@project:url.git"3986 should eq false3987 value: true, url: "ssh://example.com"3988 should eq true3989 value: true, url: "ssh://:@example.com"3990 should eq true3991 value: true, url: "ssh://foo@example.com"3992 should eq true3993 value: true, url: "ssh://foo:bar@example.com"3994 should eq true3995 value: true, url: "ssh://foo:bar@example.com/group/group/project.git"3996 should eq true3997 value: true, url: "git://example.com/group/group/project.git"3998 should eq true3999 value: true, url: "git://foo:bar@example.com/group/group/project.git"4000 should eq true4001 value: true, url: "http://foo:bar@example.com/group/group/project.git"4002 should eq true4003 value: true, url: "https://foo:bar@example.com/group/group/project.git"4004 should eq true4005 #sanitized_url4006 credentials in hash4007 username: "foo", password: "bar"4008 should eq "http://example.com"4009 username: "foo", password: ""4010 should eq "http://example.com"4011 username: "foo", password: nil4012 should eq "http://example.com"4013 username: "", password: "bar"4014 should eq "http://example.com"4015 username: "", password: ""4016 should eq "http://example.com"4017 username: "", password: nil4018 should eq "http://example.com"4019 username: nil, password: "bar"4020 should eq "http://example.com"4021 username: nil, password: ""4022 should eq "http://example.com"4023 username: nil, password: nil4024 should eq "http://example.com"4025 credentials in URL4026 userinfo: "foo:bar@"4027 should eq "http://example.com"4028 userinfo: "foo@"4029 should eq "http://example.com"4030 userinfo: ":bar@"4031 should eq "http://example.com"4032 userinfo: ":@"4033 should eq "http://example.com"4034 userinfo: "@"4035 should eq "http://example.com"4036 userinfo: nil4037 should eq "http://example.com"4038 #credentials4039 credentials in hash4040 overrides URL-provided credentials4041 credentials in URL4042 url: "http://foo:bar@example.com", credentials: {:user=>"foo", :password=>"bar"}4043 should eq {:user=>"foo", :password=>"bar"}4044 url: "http://:bar@example.com", credentials: {:user=>nil, :password=>"bar"}4045 should eq {:user=>nil, :password=>"bar"}4046 url: "http://foo:@example.com", credentials: {:user=>"foo", :password=>nil}4047 should eq {:user=>"foo", :password=>nil}4048 url: "http://foo@example.com", credentials: {:user=>"foo", :password=>nil}4049 should eq {:user=>"foo", :password=>nil}4050 url: "http://:@example.com", credentials: {:user=>nil, :password=>nil}4051 should eq {:user=>nil, :password=>nil}4052 url: "http://@example.com", credentials: {:user=>nil, :password=>nil}4053 should eq {:user=>nil, :password=>nil}4054 url: "http://example.com", credentials: {:user=>nil, :password=>nil}4055 should eq {:user=>nil, :password=>nil}4056 url: nil, credentials: {:user=>nil, :password=>nil}4057 should eq {:user=>nil, :password=>nil}4058 url: "", credentials: {:user=>nil, :password=>nil}4059 should eq {:user=>nil, :password=>nil}4060 url: "no", credentials: {:user=>nil, :password=>nil}4061 should eq {:user=>nil, :password=>nil}4062 #full_url4063 credentials in hash4064 credentials: {:user=>"foo", :password=>"bar"}, userinfo: "foo:bar@"4065 should eq "http://foo:bar@example.com"4066 credentials: {:user=>"foo", :password=>""}, userinfo: "foo@"4067 should eq "http://foo@example.com"4068 credentials: {:user=>"foo", :password=>nil}, userinfo: "foo@"4069 should eq "http://foo@example.com"4070 credentials: {:user=>"", :password=>"bar"}, userinfo: ":bar@"4071 should eq "http://:bar@example.com"4072 credentials: {:user=>"", :password=>""}, userinfo: nil4073 should eq "http://example.com"4074 credentials: {:user=>"", :password=>nil}, userinfo: nil4075 should eq "http://example.com"4076 credentials: {:user=>nil, :password=>"bar"}, userinfo: ":bar@"4077 should eq "http://:bar@example.com"4078 credentials: {:user=>nil, :password=>""}, userinfo: nil4079 should eq "http://example.com"4080 credentials: {:user=>nil, :password=>nil}, userinfo: nil4081 should eq "http://example.com"4082 credentials in URL4083 input: nil, output: ""4084 should eq ""4085 input: "", output: :same4086 should eq ""4087 input: "git@example.com", output: :same4088 should eq "git@example.com"4089 input: "http://example.com", output: :same4090 should eq "http://example.com"4091 input: "http://foo@example.com", output: :same4092 should eq "http://foo@example.com"4093 input: "http://foo:@example.com", output: "http://foo@example.com"4094 should eq "http://foo@example.com"4095 input: "http://:bar@example.com", output: :same4096 should eq "http://:bar@example.com"4097 input: "http://foo:bar@example.com", output: :same4098 should eq "http://foo:bar@example.com"4099 when credentials contains special chars4100 should parse the URL without errors4101Projects > Members > Owner cannot leave project4102 user does not see a "Leave project" link4103Users::RespondToTermsService4104 #execute4105 creates a new agreement if it did not exist4106 updates an agreement if it existed4107 adds the accepted terms to the user4108 removes accepted terms when declining4109Gitlab::SSHPublicKey4110 .technology(name)4111 returns nil for an unrecognised name4112 name: :rsa4113 should eq :rsa4114 should eq :rsa4115 name: :dsa4116 should eq :dsa4117 should eq :dsa4118 name: :ecdsa4119 should eq :ecdsa4120 should eq :ecdsa4121 name: :ed255194122 should eq :ed255194123 should eq :ed255194124 .supported_sizes(name)4125 name: :rsa, sizes: [1024, 2048, 3072, 4096]4126 should eq [1024, 2048, 3072, 4096]4127 should eq [1024, 2048, 3072, 4096]4128 name: :dsa, sizes: [1024, 2048, 3072]4129 should eq [1024, 2048, 3072]4130 should eq [1024, 2048, 3072]4131 name: :ecdsa, sizes: [256, 384, 521]4132 should eq [256, 384, 521]4133 should eq [256, 384, 521]4134 name: :ed25519, sizes: [256]4135 should eq [256]4136 should eq [256]4137 .sanitize(key_content)4138 when key has blank space characters4139 removes the extra blank space characters4140 when key doesn't have blank space characters4141 doesn't modify the content4142 when key is invalid4143 returns the original content4144 #valid?4145 with a valid SSH key4146 factory: :rsa_key_20484147 should be valid4148 factory: :rsa_key_40964149 should be valid4150 factory: :rsa_key_51204151 should be valid4152 factory: :rsa_key_81924153 should be valid4154 factory: :dsa_key_20484155 should be valid4156 factory: :ecdsa_key_2564157 should be valid4158 factory: :ed25519_key_2564159 should be valid4160 with an invalid SSH key4161 should not be valid4162 #type4163 factory: :rsa_key_2048, type: :rsa4164 should eq :rsa4165 factory: :dsa_key_2048, type: :dsa4166 should eq :dsa4167 factory: :ecdsa_key_256, type: :ecdsa4168 should eq :ecdsa4169 factory: :ed25519_key_256, type: :ed255194170 should eq :ed255194171 with an invalid SSH key4172 should be nil4173 #bits4174 factory: :rsa_key_2048, bits: 20484175 should eq 20484176 factory: :rsa_key_4096, bits: 40964177 should eq 40964178 factory: :rsa_key_5120, bits: 51204179 should eq 51204180 factory: :rsa_key_8192, bits: 81924181 should eq 81924182 factory: :dsa_key_2048, bits: 20484183 should eq 20484184 factory: :ecdsa_key_256, bits: 2564185 should eq 2564186 factory: :ed25519_key_256, bits: 2564187 should eq 2564188 with an invalid SSH key4189 should be nil4190 #fingerprint4191 factory: :rsa_key_2048, fingerprint: "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4192 should eq "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4193 factory: :rsa_key_4096, fingerprint: "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4194 should eq "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4195 factory: :rsa_key_5120, fingerprint: "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4196 should eq "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4197 factory: :rsa_key_8192, fingerprint: "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4198 should eq "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4199 factory: :dsa_key_2048, fingerprint: "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4200 should eq "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4201 factory: :ecdsa_key_256, fingerprint: "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4202 should eq "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4203 factory: :ed25519_key_256, fingerprint: "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4204 should eq "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4205 with an invalid SSH key4206 should be nil4207 #key_text4208 carries the unmodified key data4209Gitlab::Ci::Pipeline::Preloader4210 .preload!4211 preloads commit authors and number of warnings4212 returns original collection4213 when preloading multiple commits4214 preloads all commits once4215Gitlab::ImportExport::RepoSaver4216 bundle a project Git repo4217 bundles the repo successfully4218Gitlab::Metrics4219 .settings4220 returns a Hash4221 .enabled?4222 returns a boolean4223 .prometheus_metrics_enabled_unmemoized4224 prometheus metrics enabled in config4225 when metrics folder is present4226 metrics are enabled4227 when metrics folder is missing4228 metrics are disabled4229 .prometheus_metrics_enabled?4230 returns a boolean4231 .influx_metrics_enabled?4232 returns a boolean4233 .submit_metrics4234 prepares and writes the metrics to InfluxDB4235 .prepare_metrics4236 returns a Hash with the keys as Symbols4237 escapes tag values4238 drops empty tags4239 .escape_value4240 escapes an equals sign4241 casts values to Strings4242 .measure4243 without a transaction4244 returns the return value of the block4245 with a transaction4246 adds a metric to the current transaction4247 returns the return value of the block4248 .action=4249 without a transaction4250 does nothing4251 with a transaction4252 sets the action of a transaction4253 #series_prefix4254 returns a String4255 .add_event4256 without a transaction4257 does nothing4258 with a transaction4259 adds an event4260 prometheus metrics disabled4261 behaves like prometheus metrics API4262 #counter4263 #increment4264 successfully calls #increment without arguments4265 successfully calls #increment with 1 argument4266 successfully calls #increment with 2 arguments4267 #summary4268 #observe4269 successfully calls #observe with 2 arguments4270 #gauge4271 #set4272 successfully calls #set with 2 arguments4273 #histogram4274 #observe4275 successfully calls #observe with 2 arguments4276 #null_metric4277 should be a kind of Gitlab::Metrics::NullMetric4278 #counter4279 should be a kind of Gitlab::Metrics::NullMetric4280 #summary4281 should be a kind of Gitlab::Metrics::NullMetric4282 #gauge4283 should be a kind of Gitlab::Metrics::NullMetric4284 #histogram4285 should be a kind of Gitlab::Metrics::NullMetric4286 prometheus metrics enabled4287 behaves like prometheus metrics API4288 #counter4289 #increment4290 successfully calls #increment without arguments4291 successfully calls #increment with 1 argument4292 successfully calls #increment with 2 arguments4293 #summary4294 #observe4295 successfully calls #observe with 2 arguments4296 #gauge4297 #set4298 successfully calls #set with 2 arguments4299 #histogram4300 #observe4301 successfully calls #observe with 2 arguments4302 #null_metric4303 should be nil4304 #counter4305 should not be a kind of Gitlab::Metrics::NullMetric4306 #summary4307 should not be a kind of Gitlab::Metrics::NullMetric4308 #gauge4309 should not be a kind of Gitlab::Metrics::NullMetric4310 #histogram4311 should not be a kind of Gitlab::Metrics::NullMetric4312Gitlab::GitalyClient::ConflictFilesStitcher4313 enumeration4314 combines segregated ConflictFile messages together4315ClusterProvisionWorker4316 #perform4317 when provider type is gcp4318 provision a cluster4319 when provider type is user4320 does not provision a cluster4321 when cluster does not exist4322 does not provision a cluster4323ProtectedTags::CreateService4324 #execute4325 creates a new protected tag4326PipelineUpdateWorker4327 #perform4328 when pipeline exists4329 updates pipeline status4330 when pipeline does not exist4331 does not raise exception4332API::Version4333 GET /version4334 when unauthenticated4335 returns authentication error4336 when authenticated4337 returns the version information4338Gitlab::Sherlock::Transaction4339 #id4340 returns the transaction ID4341 #type4342 returns the type4343 #path4344 returns the path4345 #queries4346 returns an Array of queries4347 #file_samples4348 returns an Array of file samples4349 #started_at4350 returns the start time4351 #finished_at4352 returns the completion time4353 #view_counts4354 returns a Hash4355 sets the default value of a key to 04356 #run4357 runs the transaction4358 #duration4359 returns the duration in seconds4360 #query_duration4361 returns the total query duration in seconds4362 #to_param4363 returns the transaction ID4364 #sorted_queries4365 returns the queries in descending order4366 #sorted_file_samples4367 returns the file samples in descending order4368 #find_query4369 returns a Query when found4370 returns nil when no query could be found4371 #find_file_sample4372 returns a FileSample when found4373 returns nil when no file sample could be found4374 #profile_lines4375 when line profiling is enabled4376 yields the block using the line profiler4377 when line profiling is disabled4378 yields the block4379 #subscribe_to_active_record4380 tracks executed queries4381 only tracks queries triggered from the transaction thread4382 #subscribe_to_action_view4383 tracks rendered views4384 only tracks views rendered from the transaction thread4385PasswordsController4386 #check_password_authentication_available4387 when password authentication is disabled for the web interface and Git4388 prevents a password reset4389 when reset email belongs to an ldap user4390 prevents a password reset4391Gitlab::DependencyLinker::PodspecJsonLinker4392 .support?4393 supports *.podspec.json4394 does not support other files4395 #link4396 links the gem name4397 links the license4398 links the homepage4399 links the source URL4400 links dependencies4401 does not link subspec names4402ReactiveCaching4403 #with_reactive_cache4404 when cache is empty4405 should be nil4406 enqueues a background worker to bootstrap the cache4407 updates the cache lifespan4408 when the cache is full4409 should eq 24410 does not enqueue a background worker4411 updates the cache lifespan4412 and expired4413 should be nil4414 #clear_reactive_cache!4415 should be nil4416 should be falsy4417 #exclusively_update_reactive_cache!4418 when the lease is free and lifetime is not exceeded4419 takes and releases the lease4420 caches the result of #calculate_reactive_cache4421 enqueues a repeat worker4422 calls a reactive_cache_updated only once if content did not change on subsequent update4423 and #calculate_reactive_cache raises an exception4424 leaves the cache untouched4425 enqueues a repeat worker4426 when lifetime is exceeded4427 skips the calculation4428 when the lease is already taken4429 skips the calculation4430Gitlab::QuickActions::CommandDefinition4431 #all_names4432 when the command has aliases4433 returns an array with the name and aliases4434 when the command doesn't have aliases4435 returns an array with the name4436 #noop?4437 when the command has an action block4438 returns false4439 when the command doesn't have an action block4440 returns true4441 #available?4442 when the command has a condition block4443 when the condition block returns true4444 returns true4445 when the condition block returns false4446 returns false4447 when the command doesn't have a condition block4448 returns true4449 #execute4450 when the command is a noop4451 doesn't execute the command4452 when the command is not a noop4453 when the command is not available4454 doesn't execute the command4455 when the command is available4456 when the commnd has no arguments4457 when the command is provided an argument4458 executes the command4459 when the command is not provided an argument4460 executes the command4461 when the command has 1 required argument4462 when the command is provided an argument4463 executes the command4464 when the command is not provided an argument4465 doesn't execute the command4466 when the command has 1 optional argument4467 when the command is provided an argument4468 executes the command4469 when the command is not provided an argument4470 executes the command4471 when the command defines parse_params block4472 executes the command passing the parsed param4473 #explain4474 when the command is not available4475 returns nil4476 when the explanation is a static string4477 returns this static string4478 when the explanation is dynamic4479 invokes the proc4480Gitlab::Metrics::Subscribers::RailsCache4481 #cache_read4482 increments the cache_read duration4483 with a transaction4484 with hit event4485 increments the cache_read_hit count4486 when super operation is fetch4487 does not increment cache read miss4488 with miss event4489 increments the cache_read_miss count4490 increments the cache_read_miss total4491 when super operation is fetch4492 does not increment cache read miss4493 does not increment cache_read_miss total4494 #cache_write4495 observes write duration4496 #cache_delete4497 observes delete duration4498 #cache_exist?4499 observes the exists duration4500 #cache_fetch_hit4501 without a transaction4502 returns4503 with a transaction4504 increments the cache_read_hit count4505 #cache_generate4506 without a transaction4507 returns4508 with a transaction4509 increments the cache_fetch_miss count4510 increments the cache_read_miss total4511 #observe4512 without a transaction4513 returns4514 with a transaction4515 increments the total and specific cache duration4516 observes cache metric4517CiStatusHelper4518 #ci_icon_for_status4519 renders to correct svg on success4520 renders the correct svg on failure4521 #ci_text_for_status4522 when status is manual4523 changes the status to blocked4524 when status is success4525 changes the status to passed4526 when status is something else4527 returns status unchanged4528 #pipeline_status_cache_key4529 builds a cache key for pipeline status4530Gitlab::DependencyLinker::GodepsJsonLinker4531 .support?4532 supports Godeps.json4533 does not support other files4534 #link4535 links the package name4536 links GitHub repos4537 links GitLab projects4538 links Golang packages4539Gitlab::GithubImport::NotifyUponDeath4540 .sidekiq_retries_exhausted4541 notifies the JobWaiter when 3 arguments are given and the last is a String4542 does not notify the JobWaiter when only 2 arguments are given4543 does not notify the JobWaiter when only 1 argument is given4544 does not notify the JobWaiter when the last argument is not a String4545Gitlab::Ci::Config::Entry::Service4546 when configuration is a string4547 #valid?4548 is valid4549 #value4550 returns valid hash4551 #image4552 returns service's image name4553 #alias4554 returns service's alias4555 #command4556 returns service's command4557 when configuration is a hash4558 #valid?4559 is valid4560 #value4561 returns valid hash4562 #image4563 returns service's image name4564 #alias4565 returns service's alias4566 #command4567 returns service's command4568 #entrypoint4569 returns service's entrypoint4570 when entry value is not correct4571 #errors4572 saves errors4573 #valid?4574 is not valid4575 when unexpected key is specified4576 #errors4577 saves errors4578 #valid?4579 is not valid4580Gitlab::Git4581 committer_hash4582 returns a hash containing the given email and name4583 when email is nil4584 returns nil4585 when name is nil4586 returns nil4587 .ref_name4588 ensure ref is a valid UTF-8 string4589 .shas_eql?4590 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", result: true4591 should eq true4592 is commutative4593 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2", result: true4594 should eq true4595 is commutative4596 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "d42df6f6db32cf340875f2f59b848ddba2b7e075", result: false4597 should eq false4598 is commutative4599 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b", result: false4600 should eq false4601 is commutative4602 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: nil, result: false4603 should eq false4604 is commutative4605Gitlab::DependencyLinker::RequirementsTxtLinker4606 .support?4607 supports requirements.txt4608 supports doc-requirements.txt4609 does not support other files4610 #link4611 links dependencies4612 links URLs4613 does not contain link with a newline as package name4614Gitlab::HTTP4615 allow_local_requests_from_hooks_and_services is4616 disabled4617 deny requests to localhost4618 deny requests to private network4619 if allow_local_requests set to true4620 override the global value and allow requests to localhost or private network4621 enabled4622 allow requests to localhost4623 allow requests to private network4624 if allow_local_requests set to false4625 override the global value and ban requests to localhost or private network4626Gitlab::Template::GitlabCiYmlTemplate4627 .all4628 strips the gitlab-ci suffix4629 combines the globals and rest4630 .find4631 returns nil if the file does not exist4632 returns the GitlabCiYml object of a valid file4633 .by_category4634 returns sorted results4635 #content4636 loads the full file4637 #<=>4638 sorts lexicographically4639Gitlab::Ci::Config::Entry::Coverage4640 validations4641 when entry config value doesn't have the surrounding '/'4642 #errors4643 should include /coverage config must be a regular expression/4644 #valid?4645 should not be valid4646 when entry config value has the surrounding '/'4647 #value4648 should eq "Code coverage: \\d+\\.\\d+"4649 #errors4650 should be empty4651 #valid?4652 should be valid4653 when entry value is not valid4654 #errors4655 should include /coverage config must be a regular expression/4656 #valid?4657 should not be valid4658Gitlab::QueryLimiting4659 .enable?4660 returns true in a test environment4661 returns true in a development environment4662 returns false on GitLab.com4663 returns false in a non GitLab.com4664 .whitelist4665 raises ArgumentError when an invalid issue URL is given4666 without a transaction4667 does nothing4668 with a transaction4669 does not increment the number of SQL queries executed in the block4670Gitlab::ProjectTransfer4671 #move_project4672 moves project upload to another namespace4673 #move_namespace4674 when moving namespace from root into another namespace4675 moves namespace projects' upload4676 when moving namespace from one parent to another4677 moves namespace projects' upload4678 when moving namespace from having a parent to root4679 moves namespace projects' upload4680 #rename_project4681 renames project4682 #rename_namespace4683 renames namespace4684Gitlab::Checks::ForcePush4685 exit code checking4686 does not raise a runtime error if the `popen` call to git returns a zero exit code4687 raises a GitError error if the `popen` call to git returns a non-zero exit code4688Settings4689 #ldap4690 can be accessed with dot syntax all the way down4691 can be accessed in a very specific way that breaks without reassigning each element with Settingslogic4692 #host_without_www4693 URL with protocol4694 returns the host4695 URL without protocol4696 returns the host4697 URL with user/port4698 returns the host4699Gitlab::Email::Handler4700 .for4701 picks issue handler if there is not merge request prefix4702 picks merge request handler if there is merge request key4703 returns nil if no handler is found4704 regexps are set properly4705 picks each handler at least once4706 can pick exactly one handler for each address4707Banzai::Filter::ImageLinkFilter4708 wraps the image with a link to the image src4709 does not wrap a duplicate link4710 works with external images4711 works with inline images4712Gitlab::Ci::Config::Entry::Services4713 when configuration is valid4714 #valid?4715 is valid4716 #value4717 returns valid array4718 when configuration is invalid4719 #valid?4720 is invalid4721Query4722 is called Query4723 should have graphql fields :project and :echo4724 project field4725 finds projects by full path4726 authorizes with read_project4727MicrosoftTeams::Notifier4728 #ping4729 expects to receive successfull answer4730ExploreHelper4731 #explore_nav_links4732 has all the expected links by default4733Gitlab::ImportExport::HashUtil4734 .deep_symbolize_array!4735 symbolizes keys4736 .deep_symbolize_array_with_date!4737 symbolizes keys4738 transforms date strings into Time objects4739Gitlab::I18n::MetadataEntry4740 #expected_plurals4741 returns the number of plurals4742 returns 0 for the POT-metadata4743Gitlab::GrapeLogging::Loggers::QueueDurationLogger4744 .parameters4745 when no proxy time is available4746 returns an empty hash4747 when a proxy time is available4748 returns the correct duration in ms4749Gitlab::GitlabImport::Client4750 all OAuth2 client options are symbols4751Knapsack report was generated. Preview:4752{4753 "spec/lib/gitlab/git_access_spec.rb": 90.42468762397766,4754 "spec/features/projects/files/user_browses_files_spec.rb": 61.41221356391907,4755 "spec/features/issues/filtered_search/dropdown_milestone_spec.rb": 41.215508460998535,4756 "spec/features/merge_request/user_resolves_conflicts_spec.rb": 66.94351840019226,4757 "spec/features/projects/branches_spec.rb": 25.362689971923828,4758 "spec/requests/api/pipelines_spec.rb": 17.873128652572632,4759 "spec/features/projects/merge_requests/user_views_diffs_spec.rb": 12.80452585220337,4760 "spec/features/merge_request/user_sees_closing_issues_message_spec.rb": 13.025093078613281,4761 "spec/controllers/projects/jobs_controller_spec.rb": 14.783115863800049,4762 "spec/features/snippets/show_spec.rb": 17.981085777282715,4763 "spec/features/issues/move_spec.rb": 12.420808553695679,4764 "spec/models/cycle_analytics/review_spec.rb": 10.919780492782593,4765 "spec/controllers/projects/pipelines_controller_spec.rb": 9.118940591812134,4766 "spec/features/projects/files/project_owner_creates_license_file_spec.rb": 9.080912113189697,4767 "spec/controllers/projects/blob_controller_spec.rb": 7.583800792694092,4768 "spec/controllers/uploads_controller_spec.rb": 7.22595477104187,4769 "spec/lib/gitlab/checks/change_access_spec.rb": 7.180160999298096,4770 "spec/lib/gitlab/ci/pipeline/seed/build_spec.rb": 5.658152341842651,4771 "spec/policies/ci/build_policy_spec.rb": 6.2668681144714355,4772 "spec/features/merge_request/user_resolves_outdated_diff_discussions_spec.rb": 5.345887660980225,4773 "spec/features/groups/group_settings_spec.rb": 5.347291946411133,4774 "spec/requests/api/project_hooks_spec.rb": 6.186680793762207,4775 "spec/services/files/multi_service_spec.rb": 4.210409164428711,4776 "spec/controllers/projects/services_controller_spec.rb": 6.745636940002441,4777 "spec/lib/gitlab/git/popen_spec.rb": 4.439613580703735,4778 "spec/features/projects/services/user_activates_slack_slash_command_spec.rb": 3.487243890762329,4779 "spec/migrations/cleanup_namespaceless_pending_delete_projects_spec.rb": 1.1556789875030518,4780 "spec/lib/banzai/filter/issuable_state_filter_spec.rb": 4.78440260887146,4781 "spec/features/admin/admin_deploy_keys_spec.rb": 3.755725622177124,4782 "spec/services/ci/play_build_service_spec.rb": 3.6270720958709717,4783 "spec/services/issuable/common_system_notes_service_spec.rb": 4.262413024902344,4784 "spec/features/projects/merge_requests/user_sorts_merge_requests_spec.rb": 3.032318115234375,4785 "spec/controllers/notification_settings_controller_spec.rb": 2.5545430183410645,4786 "spec/features/projects/wiki/user_deletes_wiki_page_spec.rb": 2.7432565689086914,4787 "spec/finders/concerns/finder_with_cross_project_access_spec.rb": 2.3718128204345703,4788 "spec/features/projects/services/user_activates_hipchat_spec.rb": 3.3180980682373047,4789 "spec/lib/gitlab/ci/status/build/stop_spec.rb": 2.462806463241577,4790 "spec/features/user_sorts_things_spec.rb": 2.2059214115142822,4791 "spec/models/project_services/prometheus_service_spec.rb": 2.372512102127075,4792 "spec/features/projects/settings/user_changes_avatar_spec.rb": 2.1029179096221924,4793 "spec/features/dashboard/active_tab_spec.rb": 2.3886377811431885,4794 "spec/models/hooks/system_hook_spec.rb": 2.1037166118621826,4795 "spec/services/boards/lists/destroy_service_spec.rb": 1.7767152786254883,4796 "spec/lib/gitlab/ci/build/step_spec.rb": 1.5973296165466309,4797 "spec/lib/gitlab/auth/saml/user_spec.rb": 1.3990108966827393,4798 "spec/lib/banzai/pipeline/gfm_pipeline_spec.rb": 1.5154762268066406,4799 "spec/lib/gitlab/github_import/importer/labels_importer_spec.rb": 1.6267664432525635,4800 "spec/workers/remove_expired_group_links_worker_spec.rb": 1.5909392833709717,4801 "spec/lib/api/helpers_spec.rb": 1.1056396961212158,4802 "spec/controllers/projects/refs_controller_spec.rb": 1.3412861824035645,4803 "spec/views/projects/merge_requests/diffs/_diffs.html.haml_spec.rb": 1.3955271244049072,4804 "spec/models/deploy_keys_project_spec.rb": 1.2520475387573242,4805 "spec/lib/gitlab/ci/status/factory_spec.rb": 1.169844150543213,4806 "spec/helpers/merge_requests_helper_spec.rb": 1.3919026851654053,4807 "spec/policies/personal_snippet_policy_spec.rb": 1.1432998180389404,4808 "spec/policies/ci/pipeline_policy_spec.rb": 1.5773656368255615,4809 "spec/features/merge_request/user_sees_empty_state_spec.rb": 1.1071295738220215,4810 "spec/features/admin/services/admin_activates_prometheus_spec.rb": 1.1677258014678955,4811 "spec/policies/note_policy_spec.rb": 1.1391029357910156,4812 "spec/serializers/entity_date_helper_spec.rb": 0.8291985988616943,4813 "spec/services/clusters/applications/install_service_spec.rb": 0.6064181327819824,4814 "spec/lib/gitlab/performance_bar_spec.rb": 0.7599749565124512,4815 "spec/workers/reactive_caching_worker_spec.rb": 0.7191526889801025,4816 "spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb": 0.8035314083099365,4817 "spec/services/prometheus/adapter_service_spec.rb": 1.0578184127807617,4818 "spec/controllers/invites_controller_spec.rb": 0.7341153621673584,4819 "spec/serializers/build_action_entity_spec.rb": 0.7502915859222412,4820 "spec/features/projects/files/download_buttons_spec.rb": 0.7471194267272949,4821 "spec/features/admin/admin_system_info_spec.rb": 0.5107781887054443,4822 "spec/workers/concerns/project_import_options_spec.rb": 0.4992523193359375,4823 "spec/lib/gitlab/data_builder/wiki_page_spec.rb": 0.5637116432189941,4824 "spec/features/uploads/user_uploads_avatar_to_profile_spec.rb": 0.596564769744873,4825 "spec/models/system_note_metadata_spec.rb": 0.3308444023132324,4826 "spec/services/events/render_service_spec.rb": 0.387160062789917,4827 "spec/models/project_services/chat_notification_service_spec.rb": 0.3525540828704834,4828 "spec/features/projects/labels/user_views_labels_spec.rb": 0.4041714668273926,4829 "spec/lib/gitlab/diff/line_mapper_spec.rb": 0.45964813232421875,4830 "spec/controllers/oauth/authorizations_controller_spec.rb": 0.3231971263885498,4831 "spec/lib/gitlab/url_sanitizer_spec.rb": 0.2122204303741455,4832 "spec/features/projects/members/owner_cannot_leave_project_spec.rb": 0.31380772590637207,4833 "spec/services/users/respond_to_terms_service_spec.rb": 0.1983339786529541,4834 "spec/lib/gitlab/ssh_public_key_spec.rb": 0.20619726181030273,4835 "spec/lib/gitlab/ci/pipeline/preloader_spec.rb": 0.1957263946533203,4836 "spec/lib/gitlab/import_export/repo_saver_spec.rb": 0.22785186767578125,4837 "spec/lib/gitlab/metrics_spec.rb": 0.12970399856567383,4838 "spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb": 0.17961883544921875,4839 "spec/workers/cluster_provision_worker_spec.rb": 0.14101409912109375,4840 "spec/services/protected_tags/create_service_spec.rb": 0.18215322494506836,4841 "spec/workers/pipeline_update_worker_spec.rb": 0.23148250579833984,4842 "spec/requests/api/version_spec.rb": 0.11869692802429199,4843 "spec/lib/gitlab/sherlock/transaction_spec.rb": 0.08047819137573242,4844 "spec/controllers/passwords_controller_spec.rb": 0.09181070327758789,4845 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 0.07454991340637207,4846 "spec/models/concerns/reactive_caching_spec.rb": 0.06383752822875977,4847 "spec/lib/gitlab/quick_actions/command_definition_spec.rb": 0.053114891052246094,4848 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.0677952766418457,4849 "spec/helpers/ci_status_helper_spec.rb": 0.03542304039001465,4850 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.0456390380859375,4851 "spec/workers/concerns/gitlab/github_import/notify_upon_death_spec.rb": 0.04343414306640625,4852 "spec/lib/gitlab/ci/config/entry/service_spec.rb": 0.049770355224609375,4853 "spec/lib/gitlab/git_spec.rb": 0.04066658020019531,4854 "spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb": 0.031029224395751953,4855 "spec/lib/gitlab/http_spec.rb": 0.024057388305664062,4856 "spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb": 0.031116485595703125,4857 "spec/lib/gitlab/ci/config/entry/coverage_spec.rb": 0.023010730743408203,4858 "spec/lib/gitlab/query_limiting_spec.rb": 0.022840499877929688,4859 "spec/lib/gitlab/project_transfer_spec.rb": 0.02091050148010254,4860 "spec/lib/gitlab/checks/force_push_spec.rb": 0.34493541717529297,4861 "spec/initializers/settings_spec.rb": 0.01886153221130371,4862 "spec/lib/gitlab/email/handler_spec.rb": 0.015944719314575195,4863 "spec/lib/banzai/filter/image_link_filter_spec.rb": 0.013938426971435547,4864 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.012514114379882812,4865 "spec/graphql/types/query_type_spec.rb": 0.014637947082519531,4866 "spec/lib/microsoft_teams/notifier_spec.rb": 0.008842706680297852,4867 "spec/helpers/explore_helper_spec.rb": 0.01042485237121582,4868 "spec/lib/gitlab/import_export/hash_util_spec.rb": 0.010419845581054688,4869 "spec/lib/gitlab/i18n/metadata_entry_spec.rb": 0.006723165512084961,4870 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.007154941558837891,4871 "spec/lib/gitlab/gitlab_import/client_spec.rb": 0.00315880775451660164872}4873Knapsack global time execution for tests: 09m 16s4874Failures:4875 1) DeleteConflictingRedirectRoutes NO-OP: does not schedule any background migrations4876 Failure/Error:4877 ActiveRecord::Migrator.migrate(migrations_paths,4878 migration_schema_version)4879 StandardError:4880 An error has occurred, all later migrations canceled:4881 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists4882 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);4883 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'4884 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'4885 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'4886 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'4887 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'4888 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'4889 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'4890 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'4891 # ------------------4892 # --- Caused by: ---4893 # PG::DuplicateTable:4894 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists4895 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'4896Finished in 10 minutes 14 seconds (files took 22 seconds to load)48971403 examples, 1 failure4898Failed examples:4899rspec ./spec/migrations/delete_conflicting_redirect_routes_spec.rb:33 # DeleteConflictingRedirectRoutes NO-OP: does not schedule any background migrations4901$ date4902Tue Jun 26 14:05:39 UTC 20184904coverage/: found 5 matching files 4905knapsack/: found 5 matching files 4906rspec_flaky/: found 4 matching files 4907WARNING: tmp/capybara/: no matching files 4908Uploading artifacts to coordinator... ok id=77531244 responseStatus=201 Created token=tBWLFc1s4909ERROR: Job failed: exit code 1