rspec-mysql 27 30
Passed Started
by
@groulot

Gilbert Roulot
1Running with gitlab-runner 11.0.0-rc1 (6dcccded)2 on docker-auto-scale-com d5ae8d253Using 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 mysql:5.7 ...5Pulling docker image mysql:5.7 ...6Using docker image sha256:0d16d0a97dd13a8ca0c0e205ce1f31f64d9d32048379eb322749442bff35f144 for mysql:5.7 ...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-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1530019234-d38bba6f...
00:03
14 Fetching changes for 5488_license_management_app_blacklist_backend with git depth set to 20...
00:31
15Removing .gitlab_shell_secret16Removing .gitlab_workhorse_secret17Removing .yarn-cache/18Removing config/database.yml19Removing config/database_geo.yml20Removing config/gitlab.yml21Removing config/redis.cache.yml22Removing config/redis.queues.yml23Removing config/redis.shared_state.yml24Removing config/resque.yml25Removing config/secrets.yml26Removing log/api_json.log27Removing log/application.log28Removing log/grpc.log29Removing log/test_json.log30Removing tmp/tests/31Removing vendor/gitaly-ruby/32Removing vendor/ruby/33HEAD is now at 63d6fb99 Merge branch 'qa/gb/improve-geo-test-with-node-readiness-polling' into 'master'35 * [new branch] 5488_license_management_app_blacklist_backend -> origin/5488_license_management_app_blacklist_backend36Checking out 9b412872 as 5488_license_management_app_blacklist_backend...37Skipping Git submodules setup39Downloading cache.zip from http://runners-cache-3-internal.gitlab.com:444/runner/project/278964/ruby-2.4.4-debian-stretch-with-yarn-1 40Successfully extracted cache42Downloading artifacts from coordinator... ok id=77521866 responseStatus=200 OK token=tTkyAyhq43Downloading artifacts for compile-assets (77521867)...44Downloading artifacts from coordinator... ok id=77521867 responseStatus=200 OK token=wmuNn8yw45Downloading artifacts for setup-test-env (77521869)...46Downloading artifacts from coordinator... ok id=77521869 responseStatus=200 OK token=1w6WnMuM47WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 49Bundler version 1.16.250$ date51Tue Jun 26 13:38:48 UTC 201852$ source scripts/utils.sh53$ date54Tue Jun 26 13:38:48 UTC 201855$ source scripts/prepare_build.sh56The Gemfile's dependencies are satisfied57Successfully installed knapsack-1.16.0581 gem installed59Database 'gitlabhq_test' does not exist60-- enable_extension("plpgsql")61 -> 0.0014s62-- enable_extension("pg_trgm")63 -> 0.0000s64-- create_table("abuse_reports", {:force=>:cascade})65 -> 0.0167s66-- create_table("appearances", {:force=>:cascade})67 -> 0.0119s68-- create_table("application_setting_terms", {:force=>:cascade})69 -> 0.0123s70-- create_table("application_settings", {:force=>:cascade})71 -> 0.0322s72-- create_table("approvals", {:force=>:cascade})73 -> 0.0112s74-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})75 -> 0.0147s76-- create_table("approver_groups", {:force=>:cascade})77 -> 0.0116s78-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})79 -> 0.0084s80-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})81 -> 0.0091s82-- create_table("approvers", {:force=>:cascade})83 -> 0.0110s84-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})85 -> 0.0092s86-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})87 -> 0.0138s88-- create_table("audit_events", {:force=>:cascade})89 -> 0.0121s90-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})91 -> 0.0103s92-- create_table("award_emoji", {:force=>:cascade})93 -> 0.0105s94-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})95 -> 0.0105s96-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})97 -> 0.0108s98-- create_table("badges", {:force=>:cascade})99 -> 0.0121s100-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})101 -> 0.0113s102-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})103 -> 0.0168s104-- create_table("board_assignees", {:force=>:cascade})105 -> 0.0139s106-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})107 -> 0.0103s108-- create_table("board_labels", {:force=>:cascade})109 -> 0.0121s110-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})111 -> 0.0101s112-- create_table("boards", {:force=>:cascade})113 -> 0.0117s114-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})115 -> 0.0097s116-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})117 -> 0.0094s118-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})119 -> 0.0103s120-- create_table("broadcast_messages", {:force=>:cascade})121 -> 0.0194s122-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})123 -> 0.0132s124-- create_table("chat_names", {:force=>:cascade})125 -> 0.0126s126-- 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})127 -> 0.0145s128-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})129 -> 0.0101s130-- create_table("chat_teams", {:force=>:cascade})131 -> 0.0109s132-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})133 -> 0.0118s134-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})135 -> 0.0142s136-- 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})137 -> 0.0148s138-- create_table("ci_build_trace_section_names", {:force=>:cascade})139 -> 0.0121s140-- 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})141 -> 0.0101s142-- create_table("ci_build_trace_sections", {:force=>:cascade})143 -> 0.0111s144-- 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})145 -> 0.0126s146-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})147 -> 0.0096s148-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})149 -> 0.0095s150-- create_table("ci_builds", {:force=>:cascade})151 -> 0.0283s152-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})153 -> 0.0122s154-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})155 -> 0.0123s156-- 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})157 -> 0.0215s158-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})159 -> 0.0216s160-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})161 -> 0.0276s162-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})163 -> 0.0225s164-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})165 -> 0.0165s166-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})167 -> 0.0130s168-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})169 -> 0.0110s170-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})171 -> 0.0152s172-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})173 -> 0.0123s174-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})175 -> 0.0188s176-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})177 -> 0.0113s178-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})179 -> 0.0121s180-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})181 -> 0.0117s182-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})183 -> 0.0106s184-- create_table("ci_builds_metadata", {:force=>:cascade})185 -> 0.0106s186-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})187 -> 0.0087s188-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})189 -> 0.0086s190-- create_table("ci_group_variables", {:force=>:cascade})191 -> 0.0140s192-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})193 -> 0.0159s194-- create_table("ci_job_artifacts", {:force=>:cascade})195 -> 0.0119s196-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})197 -> 0.0097s198-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})199 -> 0.0095s200-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})201 -> 0.0103s202-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})203 -> 0.0099s204-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})205 -> 0.0120s206-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})207 -> 0.0110s208-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})209 -> 0.0182s210-- 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})211 -> 0.0117s212-- create_table("ci_pipeline_schedules", {:force=>:cascade})213 -> 0.0120s214-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})215 -> 0.0128s216-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})217 -> 0.0094s218-- create_table("ci_pipeline_variables", {:force=>:cascade})219 -> 0.0114s220-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})221 -> 0.0114s222-- create_table("ci_pipelines", {:force=>:cascade})223 -> 0.0139s224-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})225 -> 0.0157s226-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})227 -> 0.0116s228-- 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})229 -> 0.0142s230-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})231 -> 0.0187s232-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})233 -> 0.0127s234-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})235 -> 0.0096s236-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})237 -> 0.0108s238-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})239 -> 0.0175s240-- create_table("ci_runner_namespaces", {:force=>:cascade})241 -> 0.0129s242-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})243 -> 0.0103s244-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})245 -> 0.0102s246-- create_table("ci_runner_projects", {:force=>:cascade})247 -> 0.0141s248-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})249 -> 0.0111s250-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})251 -> 0.0088s252-- create_table("ci_runners", {:force=>:cascade})253 -> 0.0118s254-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})255 -> 0.0162s256-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})257 -> 0.0129s258-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})259 -> 0.0107s260-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})261 -> 0.0096s262-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})263 -> 0.0116s264-- create_table("ci_sources_pipelines", {:force=>:cascade})265 -> 0.0121s266-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})267 -> 0.0097s268-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})269 -> 0.0094s270-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})271 -> 0.0109s272-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})273 -> 0.0138s274-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})275 -> 0.0116s276-- create_table("ci_stages", {:force=>:cascade})277 -> 0.0120s278-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})279 -> 0.0109s280-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})281 -> 0.0108s282-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})283 -> 0.0091s284-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})285 -> 0.0099s286-- create_table("ci_trigger_requests", {:force=>:cascade})287 -> 0.0111s288-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})289 -> 0.0088s290-- create_table("ci_triggers", {:force=>:cascade})291 -> 0.0202s292-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})293 -> 0.0097s294-- create_table("ci_variables", {:force=>:cascade})295 -> 0.0116s296-- 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})297 -> 0.0111s298-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})299 -> 0.0119s300-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})301 -> 0.0099s302-- create_table("cluster_projects", {:force=>:cascade})303 -> 0.0114s304-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})305 -> 0.0092s306-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})307 -> 0.0097s308-- create_table("cluster_providers_gcp", {:force=>:cascade})309 -> 0.0178s310-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})311 -> 0.0105s312-- create_table("clusters", {:force=>:cascade})313 -> 0.0119s314-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})315 -> 0.0093s316-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})317 -> 0.0099s318-- create_table("clusters_applications_helm", {:force=>:cascade})319 -> 0.0103s320-- create_table("clusters_applications_ingress", {:force=>:cascade})321 -> 0.0133s322-- create_table("clusters_applications_jupyter", {:force=>:cascade})323 -> 0.0107s324-- create_table("clusters_applications_prometheus", {:force=>:cascade})325 -> 0.0108s326-- create_table("clusters_applications_runners", {:force=>:cascade})327 -> 0.0115s328-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})329 -> 0.0087s330-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})331 -> 0.0096s332-- create_table("container_repositories", {:force=>:cascade})333 -> 0.0107s334-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})335 -> 0.0087s336-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})337 -> 0.0203s338-- create_table("conversational_development_index_metrics", {:force=>:cascade})339 -> 0.0126s340-- create_table("deploy_keys_projects", {:force=>:cascade})341 -> 0.0123s342-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})343 -> 0.0097s344-- create_table("deploy_tokens", {:force=>:cascade})345 -> 0.0108s346-- 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})347 -> 0.0099s348-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})349 -> 0.0079s350-- create_table("deployments", {:force=>:cascade})351 -> 0.0100s352-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})353 -> 0.0099s354-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})355 -> 0.0150s356-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})357 -> 0.0114s358-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})359 -> 0.0090s360-- create_table("emails", {:force=>:cascade})361 -> 0.0107s362-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})363 -> 0.0106s364-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})365 -> 0.0080s366-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})367 -> 0.0090s368-- create_table("environments", {:force=>:cascade})369 -> 0.0107s370-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})371 -> 0.0109s372-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})373 -> 0.0102s374-- create_table("epic_issues", {:force=>:cascade})375 -> 0.0152s376-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})377 -> 0.0106s378-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})379 -> 0.0085s380-- create_table("epic_metrics", {:force=>:cascade})381 -> 0.0103s382-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})383 -> 0.0108s384-- create_table("epics", {:force=>:cascade})385 -> 0.0107s386-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})387 -> 0.0090s388-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})389 -> 0.0085s390-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})391 -> 0.0088s392-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})393 -> 0.0127s394-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})395 -> 0.0103s396-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})397 -> 0.0091s398-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})399 -> 0.0094s400-- create_table("events", {:force=>:cascade})401 -> 0.0103s402-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})403 -> 0.0085s404-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})405 -> 0.0108s406-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})407 -> 0.0095s408-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})409 -> 0.0090s410-- create_table("feature_gates", {:force=>:cascade})411 -> 0.0118s412-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})413 -> 0.0165s414-- create_table("features", {:force=>:cascade})415 -> 0.0120s416-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})417 -> 0.0088s418-- create_table("fork_network_members", {:force=>:cascade})419 -> 0.0116s420-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})421 -> 0.0099s422-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})423 -> 0.0095s424-- create_table("fork_networks", {:force=>:cascade})425 -> 0.0110s426-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})427 -> 0.0098s428-- create_table("forked_project_links", {:force=>:cascade})429 -> 0.0142s430-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})431 -> 0.0134s432-- create_table("gcp_clusters", {:force=>:cascade})433 -> 0.0118s434-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})435 -> 0.0099s436-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})437 -> 0.0122s438-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})439 -> 0.0102s440-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})441 -> 0.0097s442-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})443 -> 0.0095s444-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})445 -> 0.0095s446-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})447 -> 0.0089s448-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})449 -> 0.0173s450-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})451 -> 0.0101s452-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})453 -> 0.0123s454-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})455 -> 0.0099s456-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})457 -> 0.0114s458-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})459 -> 0.0088s460-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})461 -> 0.0124s462-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})463 -> 0.0094s464-- create_table("geo_node_namespace_links", {:force=>:cascade})465 -> 0.0135s466-- 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})467 -> 0.0147s468-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})469 -> 0.0112s470-- create_table("geo_node_statuses", {:force=>:cascade})471 -> 0.0121s472-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})473 -> 0.0098s474-- create_table("geo_nodes", {:force=>:cascade})475 -> 0.0113s476-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})477 -> 0.0085s478-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})479 -> 0.0084s480-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})481 -> 0.0087s482-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})483 -> 0.0119s484-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})485 -> 0.0149s486-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})487 -> 0.0123s488-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})489 -> 0.0085s490-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})491 -> 0.0112s492-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})493 -> 0.0086s494-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})495 -> 0.0108s496-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})497 -> 0.0089s498-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})499 -> 0.0113s500-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})501 -> 0.0093s502-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})503 -> 0.0142s504-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})505 -> 0.0123s506-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})507 -> 0.0089s508-- create_table("gpg_key_subkeys", {:force=>:cascade})509 -> 0.0106s510-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})511 -> 0.0085s512-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})513 -> 0.0085s514-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})515 -> 0.0081s516-- create_table("gpg_keys", {:force=>:cascade})517 -> 0.0107s518-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})519 -> 0.0089s520-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})521 -> 0.0081s522-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})523 -> 0.0119s524-- create_table("gpg_signatures", {:force=>:cascade})525 -> 0.0129s526-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})527 -> 0.0094s528-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})529 -> 0.0082s530-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})531 -> 0.0105s532-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})533 -> 0.0097s534-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})535 -> 0.0143s536-- create_table("group_custom_attributes", {:force=>:cascade})537 -> 0.0114s538-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})539 -> 0.0103s540-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})541 -> 0.0139s542-- create_table("historical_data", {:force=>:cascade})543 -> 0.0123s544-- create_table("identities", {:force=>:cascade})545 -> 0.0111s546-- add_index("identities", ["saml_provider_id"], {:name=>"index_identities_on_saml_provider_id", :where=>"(saml_provider_id IS NOT NULL)", :using=>:btree})547 -> 0.0089s548-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})549 -> 0.0085s550-- create_table("index_statuses", {:force=>:cascade})551 -> 0.0098s552-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})553 -> 0.0087s554-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})555 -> 0.0102s556-- 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})557 -> 0.0126s558-- 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})559 -> 0.0236s560-- create_table("issue_assignees", {:id=>false, :force=>:cascade})561 -> 0.0113s562-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})563 -> 0.0181s564-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})565 -> 0.0109s566-- create_table("issue_links", {:force=>:cascade})567 -> 0.0102s568-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})569 -> 0.0094s570-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})571 -> 0.0089s572-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})573 -> 0.0094s574-- create_table("issue_metrics", {:force=>:cascade})575 -> 0.0185s576-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})577 -> 0.0098s578-- create_table("issues", {:force=>:cascade})579 -> 0.0114s580-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})581 -> 0.0093s582-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})583 -> 0.0087s584-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})585 -> 0.0010s586-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})587 -> 0.0084s588-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})589 -> 0.0092s590-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})591 -> 0.0130s592-- 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})593 -> 0.0116s594-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})595 -> 0.0170s596-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})597 -> 0.0137s598-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})599 -> 0.0090s600-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})601 -> 0.0095s602-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})603 -> 0.0011s604-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})605 -> 0.0104s606-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})607 -> 0.0092s608-- create_table("keys", {:force=>:cascade})609 -> 0.0106s610-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})611 -> 0.0088s612-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})613 -> 0.0096s614-- create_table("label_links", {:force=>:cascade})615 -> 0.0188s616-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})617 -> 0.0096s618-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})619 -> 0.0094s620-- create_table("label_priorities", {:force=>:cascade})621 -> 0.0109s622-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})623 -> 0.0100s624-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})625 -> 0.0096s626-- create_table("labels", {:force=>:cascade})627 -> 0.0111s628-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})629 -> 0.0103s630-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})631 -> 0.0088s632-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})633 -> 0.0130s634-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})635 -> 0.0126s636-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})637 -> 0.0121s638-- create_table("ldap_group_links", {:force=>:cascade})639 -> 0.0113s640-- create_table("lfs_file_locks", {:force=>:cascade})641 -> 0.0115s642-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})643 -> 0.0100s644-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})645 -> 0.0086s646-- create_table("lfs_objects", {:force=>:cascade})647 -> 0.0105s648-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})649 -> 0.0093s650-- create_table("lfs_objects_projects", {:force=>:cascade})651 -> 0.0154s652-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})653 -> 0.0114s654-- create_table("licenses", {:force=>:cascade})655 -> 0.0117s656-- create_table("lists", {:force=>:cascade})657 -> 0.0121s658-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})659 -> 0.0095s660-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})661 -> 0.0104s662-- add_index("lists", ["user_id"], {:name=>"index_lists_on_user_id", :using=>:btree})663 -> 0.0100s664-- create_table("managed_licenses", {:force=>:cascade})665 -> 0.0138s666-- add_index("managed_licenses", ["project_id", "name"], {:name=>"index_managed_licenses_on_project_id_and_name", :unique=>true, :using=>:btree})667 -> 0.0095s668-- add_index("managed_licenses", ["project_id"], {:name=>"index_managed_licenses_on_project_id", :using=>:btree})669 -> 0.0145s670-- create_table("members", {:force=>:cascade})671 -> 0.0121s672-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})673 -> 0.0116s674-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})675 -> 0.0114s676-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})677 -> 0.0151s678-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})679 -> 0.0154s680-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})681 -> 0.0163s682-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})683 -> 0.0192s684-- 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})685 -> 0.0257s686-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})687 -> 0.0127s688-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})689 -> 0.0110s690-- 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})691 -> 0.0169s692-- create_table("merge_request_diffs", {:force=>:cascade})693 -> 0.0117s694-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})695 -> 0.0137s696-- create_table("merge_request_metrics", {:force=>:cascade})697 -> 0.0130s698-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})699 -> 0.0093s700-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})701 -> 0.0087s702-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})703 -> 0.0088s704-- create_table("merge_requests", {:force=>:cascade})705 -> 0.0116s706-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})707 -> 0.0094s708-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})709 -> 0.0091s710-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})711 -> 0.0100s712-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})713 -> 0.0026s714-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})715 -> 0.0115s716-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})717 -> 0.0130s718-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})719 -> 0.0100s720-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})721 -> 0.0119s722-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})723 -> 0.0098s724-- 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})725 -> 0.0109s726-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})727 -> 0.0103s728-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})729 -> 0.0113s730-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})731 -> 0.0153s732-- 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})733 -> 0.0155s734-- 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})735 -> 0.0135s736-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})737 -> 0.0104s738-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})739 -> 0.0012s740-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})741 -> 0.0108s742-- create_table("merge_requests_closing_issues", {:force=>:cascade})743 -> 0.0130s744-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})745 -> 0.0094s746-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})747 -> 0.0089s748-- create_table("milestones", {:force=>:cascade})749 -> 0.0127s750-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})751 -> 0.0021s752-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})753 -> 0.0128s754-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})755 -> 0.0119s756-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})757 -> 0.0101s758-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})759 -> 0.0092s760-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})761 -> 0.0009s762-- create_table("namespace_statistics", {:force=>:cascade})763 -> 0.0115s764-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})765 -> 0.0086s766-- create_table("namespaces", {:force=>:cascade})767 -> 0.0119s768-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})769 -> 0.0117s770-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})771 -> 0.0137s772-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})773 -> 0.0176s774-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})775 -> 0.0122s776-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})777 -> 0.0011s778-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})779 -> 0.0099s780-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})781 -> 0.0115s782-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})783 -> 0.0098s784-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})785 -> 0.0011s786-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})787 -> 0.0103s788-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})789 -> 0.0093s790-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})791 -> 0.0112s792-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})793 -> 0.0137s794-- create_table("note_diff_files", {:force=>:cascade})795 -> 0.0152s796-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})797 -> 0.0101s798-- create_table("notes", {:force=>:cascade})799 -> 0.0115s800-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})801 -> 0.0105s802-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})803 -> 0.0100s804-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})805 -> 0.0093s806-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})807 -> 0.0105s808-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})809 -> 0.0104s810-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})811 -> 0.0010s812-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})813 -> 0.0139s814-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})815 -> 0.0116s816-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})817 -> 0.0117s818-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})819 -> 0.0101s820-- create_table("notification_settings", {:force=>:cascade})821 -> 0.0111s822-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})823 -> 0.0097s824-- 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})825 -> 0.0109s826-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})827 -> 0.0108s828-- create_table("oauth_access_grants", {:force=>:cascade})829 -> 0.0109s830-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})831 -> 0.0131s832-- create_table("oauth_access_tokens", {:force=>:cascade})833 -> 0.0126s834-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})835 -> 0.0095s836-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})837 -> 0.0100s838-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})839 -> 0.0084s840-- create_table("oauth_applications", {:force=>:cascade})841 -> 0.0113s842-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})843 -> 0.0096s844-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})845 -> 0.0083s846-- create_table("oauth_openid_requests", {:force=>:cascade})847 -> 0.0117s848-- create_table("pages_domains", {:force=>:cascade})849 -> 0.0126s850-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})851 -> 0.0127s852-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})853 -> 0.0095s854-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})855 -> 0.0083s856-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})857 -> 0.0113s858-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})859 -> 0.0116s860-- create_table("path_locks", {:force=>:cascade})861 -> 0.0102s862-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})863 -> 0.0095s864-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})865 -> 0.0080s866-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})867 -> 0.0092s868-- create_table("personal_access_tokens", {:force=>:cascade})869 -> 0.0138s870-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})871 -> 0.0107s872-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})873 -> 0.0091s874-- create_table("plans", {:force=>:cascade})875 -> 0.0104s876-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})877 -> 0.0084s878-- create_table("project_authorizations", {:id=>false, :force=>:cascade})879 -> 0.0097s880-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})881 -> 0.0087s882-- 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})883 -> 0.0197s884-- create_table("project_auto_devops", {:force=>:cascade})885 -> 0.0113s886-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})887 -> 0.0133s888-- create_table("project_ci_cd_settings", {:force=>:cascade})889 -> 0.0141s890-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})891 -> 0.0095s892-- create_table("project_custom_attributes", {:force=>:cascade})893 -> 0.0105s894-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})895 -> 0.0092s896-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})897 -> 0.0099s898-- create_table("project_deploy_tokens", {:force=>:cascade})899 -> 0.0110s900-- 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})901 -> 0.0096s902-- create_table("project_features", {:force=>:cascade})903 -> 0.0138s904-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})905 -> 0.0148s906-- create_table("project_group_links", {:force=>:cascade})907 -> 0.0121s908-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})909 -> 0.0089s910-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})911 -> 0.0103s912-- create_table("project_import_data", {:force=>:cascade})913 -> 0.0110s914-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})915 -> 0.0086s916-- create_table("project_mirror_data", {:force=>:cascade})917 -> 0.0115s918-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})919 -> 0.0088s920-- add_index("project_mirror_data", ["last_successful_update_at"], {:name=>"index_project_mirror_data_on_last_successful_update_at", :using=>:btree})921 -> 0.0121s922-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})923 -> 0.0155s924-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})925 -> 0.0104s926-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})927 -> 0.0087s928-- create_table("project_repository_states", {:force=>:cascade})929 -> 0.0108s930-- 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})931 -> 0.0087s932-- 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})933 -> 0.0088s934-- 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})935 -> 0.0092s936-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})937 -> 0.0089s938-- create_table("project_statistics", {:force=>:cascade})939 -> 0.0167s940-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})941 -> 0.0169s942-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})943 -> 0.0095s944-- create_table("projects", {:force=>:cascade})945 -> 0.0129s946-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})947 -> 0.0110s948-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})949 -> 0.0103s950-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})951 -> 0.0102s952-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})953 -> 0.0015s954-- add_index("projects", ["id", "repository_storage", "last_repository_updated_at"], {:name=>"idx_projects_on_repository_storage_last_repository_updated_at", :using=>:btree})955 -> 0.0131s956-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})957 -> 0.0104s958-- 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})959 -> 0.0137s960-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})961 -> 0.0144s962-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})963 -> 0.0111s964-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})965 -> 0.0106s966-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})967 -> 0.0111s968-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})969 -> 0.0016s970-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})971 -> 0.0113s972-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})973 -> 0.0120s974-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})975 -> 0.0016s976-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})977 -> 0.0119s978-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})979 -> 0.0164s980-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})981 -> 0.0133s982-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})983 -> 0.0109s984-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})985 -> 0.0112s986-- create_table("prometheus_metrics", {:force=>:cascade})987 -> 0.0130s988-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})989 -> 0.0110s990-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})991 -> 0.0098s992-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})993 -> 0.0126s994-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})995 -> 0.0124s996-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})997 -> 0.0140s998-- create_table("protected_branch_push_access_levels", {:force=>:cascade})999 -> 0.0118s1000-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})1001 -> 0.0091s1002-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})1003 -> 0.0092s1004-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})1005 -> 0.0110s1006-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})1007 -> 0.0089s1008-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})1009 -> 0.0140s1010-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})1011 -> 0.0136s1012-- create_table("protected_branches", {:force=>:cascade})1013 -> 0.0180s1014-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})1015 -> 0.0100s1016-- create_table("protected_tag_create_access_levels", {:force=>:cascade})1017 -> 0.0113s1018-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})1019 -> 0.0091s1020-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})1021 -> 0.0084s1022-- create_table("protected_tags", {:force=>:cascade})1023 -> 0.0107s1024-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})1025 -> 0.0089s1026-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})1027 -> 0.0108s1028-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})1029 -> 0.0183s1030-- create_table("push_rules", {:force=>:cascade})1031 -> 0.0162s1032-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})1033 -> 0.0096s1034-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})1035 -> 0.0093s1036-- create_table("redirect_routes", {:force=>:cascade})1037 -> 0.0108s1038-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1039 -> 0.0096s1040-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1041 -> 0.0008s1042-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1043 -> 0.0095s1044-- create_table("releases", {:force=>:cascade})1045 -> 0.0110s1046-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1047 -> 0.0103s1048-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1049 -> 0.0104s1050-- create_table("remote_mirrors", {:force=>:cascade})1051 -> 0.0177s1052-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1053 -> 0.0218s1054-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1055 -> 0.0100s1056-- create_table("routes", {:force=>:cascade})1057 -> 0.0112s1058-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1059 -> 0.0089s1060-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1061 -> 0.0010s1062-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1063 -> 0.0102s1064-- create_table("saml_providers", {:force=>:cascade})1065 -> 0.0111s1066-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1067 -> 0.0103s1068-- create_table("sent_notifications", {:force=>:cascade})1069 -> 0.0158s1070-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1071 -> 0.0099s1072-- create_table("services", {:force=>:cascade})1073 -> 0.0115s1074-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1075 -> 0.0090s1076-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1077 -> 0.0094s1078-- create_table("slack_integrations", {:force=>:cascade})1079 -> 0.0113s1080-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1081 -> 0.0089s1082-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1083 -> 0.0114s1084-- create_table("snippets", {:force=>:cascade})1085 -> 0.0155s1086-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1087 -> 0.0132s1088-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1089 -> 0.0014s1090-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1091 -> 0.0089s1092-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1093 -> 0.0008s1094-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1095 -> 0.0088s1096-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1097 -> 0.0093s1098-- create_table("spam_logs", {:force=>:cascade})1099 -> 0.0118s1100-- create_table("subscriptions", {:force=>:cascade})1101 -> 0.0119s1102-- 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})1103 -> 0.0125s1104-- create_table("system_note_metadata", {:force=>:cascade})1105 -> 0.0156s1106-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1107 -> 0.0141s1108-- create_table("taggings", {:force=>:cascade})1109 -> 0.0129s1110-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1111 -> 0.0129s1112-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1113 -> 0.0093s1114-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1115 -> 0.0123s1116-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1117 -> 0.0098s1118-- create_table("tags", {:force=>:cascade})1119 -> 0.0123s1120-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1121 -> 0.0104s1122-- create_table("term_agreements", {:force=>:cascade})1123 -> 0.0213s1124-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})1125 -> 0.0102s1126-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})1127 -> 0.0099s1128-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})1129 -> 0.0093s1130-- create_table("timelogs", {:force=>:cascade})1131 -> 0.0122s1132-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1133 -> 0.0089s1134-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1135 -> 0.0090s1136-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1137 -> 0.0088s1138-- create_table("todos", {:force=>:cascade})1139 -> 0.0108s1140-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1141 -> 0.0184s1142-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1143 -> 0.0099s1144-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1145 -> 0.0100s1146-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1147 -> 0.0093s1148-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1149 -> 0.0105s1150-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1151 -> 0.0111s1152-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1153 -> 0.0104s1154-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1155 -> 0.0094s1156-- create_table("trending_projects", {:force=>:cascade})1157 -> 0.0159s1158-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1159 -> 0.0125s1160-- create_table("u2f_registrations", {:force=>:cascade})1161 -> 0.0118s1162-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1163 -> 0.0088s1164-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1165 -> 0.0087s1166-- create_table("uploads", {:force=>:cascade})1167 -> 0.0112s1168-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1169 -> 0.0099s1170-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1171 -> 0.0102s1172-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1173 -> 0.0107s1174-- create_table("user_agent_details", {:force=>:cascade})1175 -> 0.0115s1176-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1177 -> 0.0154s1178-- create_table("user_callouts", {:force=>:cascade})1179 -> 0.0186s1180-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1181 -> 0.0102s1182-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1183 -> 0.0087s1184-- create_table("user_custom_attributes", {:force=>:cascade})1185 -> 0.0111s1186-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1187 -> 0.0115s1188-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1189 -> 0.0118s1190-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1191 -> 0.0106s1192-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1193 -> 0.0262s1194-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1195 -> 0.0089s1196-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1197 -> 0.0110s1198-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1199 -> 0.0089s1200-- create_table("users", {:force=>:cascade})1201 -> 0.0133s1202-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1203 -> 0.0104s1204-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1205 -> 0.0105s1206-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1207 -> 0.0107s1208-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1209 -> 0.0152s1210-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1211 -> 0.0020s1212-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1213 -> 0.0108s1214-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1215 -> 0.0106s1216-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1217 -> 0.0113s1218-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1219 -> 0.0107s1220-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1221 -> 0.0017s1222-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1223 -> 0.0123s1224-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1225 -> 0.0109s1226-- add_index("users", ["state"], {:name=>"index_users_on_state_and_internal_attrs", :where=>"((ghost <> true) AND (support_bot <> true))", :using=>:btree})1227 -> 0.0110s1228-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1229 -> 0.0155s1230-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1231 -> 0.0126s1232-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1233 -> 0.0018s1234-- create_table("users_star_projects", {:force=>:cascade})1235 -> 0.0126s1236-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1237 -> 0.0102s1238-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1239 -> 0.0104s1240-- create_table("vulnerability_feedback", {:force=>:cascade})1241 -> 0.0113s1242-- add_index("vulnerability_feedback", ["author_id"], {:name=>"index_vulnerability_feedback_on_author_id", :using=>:btree})1243 -> 0.0253s1244-- add_index("vulnerability_feedback", ["issue_id"], {:name=>"index_vulnerability_feedback_on_issue_id", :using=>:btree})1245 -> 0.0128s1246-- add_index("vulnerability_feedback", ["pipeline_id"], {:name=>"index_vulnerability_feedback_on_pipeline_id", :using=>:btree})1247 -> 0.0117s1248-- add_index("vulnerability_feedback", ["project_id", "category", "feedback_type", "project_fingerprint"], {:name=>"vulnerability_feedback_unique_idx", :unique=>true, :using=>:btree})1249 -> 0.0123s1250-- create_table("web_hook_logs", {:force=>:cascade})1251 -> 0.0115s1252-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1253 -> 0.0096s1254-- create_table("web_hooks", {:force=>:cascade})1255 -> 0.0133s1256-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1257 -> 0.0243s1258-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1259 -> 0.0119s1260-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1261 -> 0.0255s1262-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1263 -> 0.0237s1264-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1265 -> 0.0234s1266-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1267 -> 0.0243s1268-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1269 -> 0.0268s1270-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1271 -> 0.0222s1272-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1273 -> 0.0227s1274-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1275 -> 0.0226s1276-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1277 -> 0.0331s1278-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1279 -> 0.0240s1280-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1281 -> 0.0205s1282-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1283 -> 0.0302s1284-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1285 -> 0.0257s1286-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1287 -> 0.0270s1288-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1289 -> 0.0246s1290-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1291 -> 0.0298s1292-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1293 -> 0.0542s1294-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1295 -> 0.0594s1296-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1297 -> 0.0525s1298-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1299 -> 0.0650s1300-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1301 -> 0.0219s1302-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1303 -> 0.0302s1304-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1305 -> 0.0281s1306-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1307 -> 0.0276s1308-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1309 -> 0.0269s1310-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1311 -> 0.0255s1312-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1313 -> 0.0311s1314-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1315 -> 0.0183s1316-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1317 -> 0.0212s1318-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1319 -> 0.0247s1320-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1321 -> 0.0268s1322-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1323 -> 0.0363s1324-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1325 -> 0.0629s1326-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1327 -> 0.0362s1328-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1329 -> 0.0215s1330-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1331 -> 0.0285s1332-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1333 -> 0.0232s1334-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1335 -> 0.0316s1336-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1337 -> 0.0293s1338-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1339 -> 0.0356s1340-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1341 -> 0.0289s1342-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1343 -> 0.0298s1344-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1345 -> 0.0326s1346-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1347 -> 0.0278s1348-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1349 -> 0.0250s1350-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1351 -> 0.0227s1352-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1353 -> 0.0286s1354-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1355 -> 0.0206s1356-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1357 -> 0.0193s1358-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1359 -> 0.0224s1360-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1361 -> 0.0281s1362-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1363 -> 0.0206s1364-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1365 -> 0.0233s1366-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1367 -> 0.0196s1368-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1369 -> 0.0224s1370-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1371 -> 0.0273s1372-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1373 -> 0.0234s1374-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1375 -> 0.0206s1376-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1377 -> 0.0231s1378-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1379 -> 0.0278s1380-- add_foreign_key("container_repositories", "projects")1381 -> 0.0232s1382-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1383 -> 0.0197s1384-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1385 -> 0.0307s1386-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1387 -> 0.0280s1388-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1389 -> 0.0233s1390-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1391 -> 0.0234s1392-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1393 -> 0.0205s1394-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1395 -> 0.0388s1396-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1397 -> 0.0319s1398-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1399 -> 0.0324s1400-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1401 -> 0.0370s1402-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1403 -> 0.0242s1404-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1405 -> 0.0372s1406-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1407 -> 0.0316s1408-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1409 -> 0.0419s1410-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1411 -> 0.0330s1412-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1413 -> 0.0244s1414-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1415 -> 0.0188s1416-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1417 -> 0.0201s1418-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1419 -> 0.0208s1420-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1421 -> 0.0293s1422-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1423 -> 0.0281s1424-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1425 -> 0.0313s1426-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1427 -> 0.0469s1428-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1429 -> 0.0390s1430-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1431 -> 0.0360s1432-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1433 -> 0.0394s1434-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1435 -> 0.0352s1436-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1437 -> 0.0390s1438-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1439 -> 0.0375s1440-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1441 -> 0.0191s1442-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1443 -> 0.0203s1444-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1445 -> 0.0354s1446-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1447 -> 0.0254s1448-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1449 -> 0.0243s1450-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1451 -> 0.0200s1452-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1453 -> 0.0256s1454-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1455 -> 0.0223s1456-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1457 -> 0.0211s1458-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1459 -> 0.0223s1460-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1461 -> 0.0282s1462-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1463 -> 0.0266s1464-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1465 -> 0.0274s1466-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1467 -> 0.0279s1468-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1469 -> 0.0277s1470-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1471 -> 0.0233s1472-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1473 -> 0.0242s1474-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1475 -> 0.0247s1476-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1477 -> 0.0338s1478-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1479 -> 0.0191s1480-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1481 -> 0.0264s1482-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1483 -> 0.0260s1484-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1485 -> 0.0276s1486-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1487 -> 0.0198s1488-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1489 -> 0.0436s1490-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1491 -> 0.0475s1492-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1493 -> 0.0462s1494-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1495 -> 0.0591s1496-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1497 -> 0.0553s1498-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1499 -> 0.0501s1500-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1501 -> 0.0242s1502-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1503 -> 0.0339s1504-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1505 -> 0.0298s1506-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1507 -> 0.0292s1508-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1509 -> 0.0213s1510-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1511 -> 0.0276s1512-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1513 -> 0.0248s1514-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1515 -> 0.0231s1516-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1517 -> 0.0222s1518-- add_foreign_key("managed_licenses", "projects", {:on_delete=>:cascade})1519 -> 0.0236s1520-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1521 -> 0.0293s1522-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1523 -> 0.0221s1524-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1525 -> 0.0182s1526-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1527 -> 0.0199s1528-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1529 -> 0.0252s1530-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1531 -> 0.0241s1532-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1533 -> 0.0256s1534-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1535 -> 0.0335s1536-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1537 -> 0.0498s1538-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1539 -> 0.0505s1540-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1541 -> 0.0624s1542-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1543 -> 0.0594s1544-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1545 -> 0.0495s1546-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1547 -> 0.0641s1548-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1549 -> 0.0581s1550-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1551 -> 0.0552s1552-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1553 -> 0.0575s1554-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1555 -> 0.0242s1556-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1557 -> 0.0257s1558-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1559 -> 0.0286s1560-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1561 -> 0.0331s1562-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1563 -> 0.0228s1564-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1565 -> 0.0458s1566-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1567 -> 0.0245s1568-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1569 -> 0.0408s1570-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1571 -> 0.0217s1572-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1573 -> 0.0341s1574-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1575 -> 0.0278s1576-- add_foreign_key("path_locks", "users")1577 -> 0.0267s1578-- add_foreign_key("personal_access_tokens", "users")1579 -> 0.0244s1580-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1581 -> 0.0239s1582-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1583 -> 0.0212s1584-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1585 -> 0.0220s1586-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1587 -> 0.0222s1588-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1589 -> 0.0262s1590-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1591 -> 0.0233s1592-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1593 -> 0.0212s1594-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1595 -> 0.0200s1596-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1597 -> 0.0259s1598-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1599 -> 0.0228s1600-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1601 -> 0.0570s1602-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1603 -> 0.0330s1604-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1605 -> 0.0226s1606-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1607 -> 0.0240s1608-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1609 -> 0.0249s1610-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1611 -> 0.0306s1612-- add_foreign_key("protected_branch_merge_access_levels", "users")1613 -> 0.0267s1614-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1615 -> 0.0254s1616-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1617 -> 0.0277s1618-- add_foreign_key("protected_branch_push_access_levels", "users")1619 -> 0.0302s1620-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1621 -> 0.0252s1622-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1623 -> 0.0276s1624-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1625 -> 0.0304s1626-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1627 -> 0.0220s1628-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1629 -> 0.0271s1630-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1631 -> 0.0247s1632-- add_foreign_key("protected_tag_create_access_levels", "users")1633 -> 0.0309s1634-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1635 -> 0.0208s1636-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1637 -> 0.0183s1638-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1639 -> 0.0251s1640-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1641 -> 0.0285s1642-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1643 -> 0.0225s1644-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1645 -> 0.0196s1646-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1647 -> 0.0233s1648-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1649 -> 0.0255s1650-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1651 -> 0.0291s1652-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1653 -> 0.0215s1654-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1655 -> 0.0212s1656-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1657 -> 0.0289s1658-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1659 -> 0.0260s1660-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1661 -> 0.0233s1662-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1663 -> 0.0269s1664-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1665 -> 0.0429s1666-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1667 -> 0.0364s1668-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1669 -> 0.0351s1670-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1671 -> 0.0414s1672-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1673 -> 0.0455s1674-- add_foreign_key("u2f_registrations", "users")1675 -> 0.0309s1676-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1677 -> 0.0233s1678-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1679 -> 0.0266s1680-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1681 -> 0.0209s1682-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1683 -> 0.0273s1684-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1685 -> 0.0218s1686-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1687 -> 0.0456s1688-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1689 -> 0.0259s1690-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1691 -> 0.0320s1692-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1693 -> 0.0267s1694-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1695 -> 0.0290s1696-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1697 -> 0.0385s1698-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1699 -> 0.0206s1700-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1701 -> 0.0225s1702-- initialize_schema_migrations_table()1703 -> 0.0408s1704Adding limits to schema.rb for mysql1705-- column_exists?(:merge_request_diffs, :st_commits)1706 -> 0.0014s1707-- column_exists?(:merge_request_diffs, :st_diffs)1708 -> 0.0009s1709-- change_column(:snippets, :content, :text, {:limit=>2147483647})1710 -> 0.0307s1711-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1712 -> 0.0473s1713-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1714 -> 0.0295s1715-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647})1716 -> 0.0195s1717-- change_column(:ci_build_trace_chunks, :raw_data, :binary, {:limit=>16777215})1718 -> 0.0262s1719-- change_column(:gpg_keys, :key, :text, {:limit=>16777215})1720 -> 0.0271s1721Database 'gitlabhq_geo_test' does not exist1722-- enable_extension("plpgsql")1723 -> 0.0014s1724-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1725 -> 0.0127s1726-- create_table("file_registry", {:force=>:cascade})1727 -> 0.0107s1728-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1729 -> 0.0100s1730-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1731 -> 0.0086s1732-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1733 -> 0.0081s1734-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1735 -> 0.0080s1736-- create_table("job_artifact_registry", {:force=>:cascade})1737 -> 0.0104s1738-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1739 -> 0.0106s1740-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1741 -> 0.0205s1742-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1743 -> 0.0096s1744-- create_table("project_registry", {:force=>:cascade})1745 -> 0.0123s1746-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1747 -> 0.0089s1748-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1749 -> 0.0084s1750-- 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})1751 -> 0.0150s1752-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1753 -> 0.0103s1754-- 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})1755 -> 0.0098s1756-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1757 -> 0.0105s1758-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1759 -> 0.0167s1760-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1761 -> 0.0105s1762-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1763 -> 0.0095s1764-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1765 -> 0.0091s1766-- 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})1767 -> 0.0090s1768-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1769 -> 0.0097s1770-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1771 -> 0.0089s1772-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1773 -> 0.0096s1774-- 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})1775 -> 0.0091s1776-- initialize_schema_migrations_table()1777 -> 0.0331s1778$ date1779Tue Jun 26 13:40:10 UTC 20181780$ JOB_NAME=( $CI_JOB_NAME )1781$ export CI_NODE_INDEX=${JOB_NAME[-2]}1782$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1783$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1784$ export KNAPSACK_GENERATE_REPORT=true1785$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1786$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1787$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1788$ export FLAKY_RSPEC_GENERATE_REPORT=true1789$ export CACHE_CLASSES=true1790$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1791$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1792$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1793$ scripts/gitaly-test-spawn1794Checking gitaly-ruby bundle...1795The Gemfile's dependencies are satisfied1796Trying to connect to gitaly: ..... OK1797$ knapsack rspec "--color --format documentation --tag ~geo"1798Report specs:1799spec/lib/gitlab/cycle_analytics/events_spec.rb1800spec/features/merge_request/user_sees_merge_widget_spec.rb1801spec/requests/api/branches_spec.rb1802spec/features/discussion_comments/merge_request_spec.rb1803spec/models/cycle_analytics/code_spec.rb1804spec/models/issue_spec.rb1805spec/models/gpg_key_subkey_spec.rb1806spec/services/boards/issues/list_service_spec.rb1807spec/features/search/user_uses_header_search_field_spec.rb1808spec/lib/banzai/filter/label_reference_filter_spec.rb1809spec/services/merge_requests/squash_service_spec.rb1810spec/features/explore/groups_spec.rb1811spec/features/merge_request/user_assigns_themselves_spec.rb1812spec/requests/api/search_spec.rb1813spec/features/projects/blobs/blob_line_permalink_updater_spec.rb1814spec/features/projects/tree/create_directory_spec.rb1815spec/features/search/user_searches_for_commits_spec.rb1816spec/controllers/projects/discussions_controller_spec.rb1817spec/features/milestone_spec.rb1818spec/lib/gitlab/bare_repository_import/importer_spec.rb1819spec/lib/banzai/filter/external_issue_reference_filter_spec.rb1820spec/finders/groups_finder_spec.rb1821spec/models/concerns/relative_positioning_spec.rb1822spec/features/groups/members/request_access_spec.rb1823spec/features/help_pages_spec.rb1824spec/controllers/projects/variables_controller_spec.rb1825spec/controllers/snippets_controller_spec.rb1826spec/services/labels/transfer_service_spec.rb1827spec/features/admin/admin_labels_spec.rb1828spec/features/atom/dashboard_issues_spec.rb1829spec/features/profiles/user_visits_profile_spec.rb1830spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb1831spec/lib/gitlab/slash_commands/command_spec.rb1832spec/controllers/projects/todos_controller_spec.rb1833spec/routing/group_routing_spec.rb1834spec/controllers/groups/variables_controller_spec.rb1835spec/controllers/sent_notifications_controller_spec.rb1836spec/models/clusters/applications/ingress_spec.rb1837spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb1838spec/controllers/registrations_controller_spec.rb1839spec/models/generic_commit_status_spec.rb1840spec/lib/container_registry/path_spec.rb1841spec/models/clusters/applications/prometheus_spec.rb1842spec/controllers/projects/deploy_keys_controller_spec.rb1843spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb1844spec/migrations/fill_file_store_spec.rb1845spec/lib/banzai/filter/gollum_tags_filter_spec.rb1846spec/config/mail_room_spec.rb1847spec/services/groups/nested_create_service_spec.rb1848spec/features/projects/services/disable_triggers_spec.rb1849spec/workers/prune_old_events_worker_spec.rb1850spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb1851spec/tasks/gitlab/traces_rake_spec.rb1852spec/lib/gitlab/ci/status/build/retried_spec.rb1853spec/models/ci/pipeline_schedule_spec.rb1854spec/lib/gitlab/ci/charts_spec.rb1855spec/lib/gitlab/kubernetes/helm/install_command_spec.rb1856spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb1857spec/models/tree_spec.rb1858spec/services/projects/gitlab_projects_import_service_spec.rb1859spec/controllers/google_api/authorizations_controller_spec.rb1860spec/lib/gitlab/import_export/wiki_restorer_spec.rb1861spec/lib/gitlab/background_migration/populate_import_state_spec.rb1862spec/migrations/rename_duplicated_variable_key_spec.rb1863spec/lib/gitlab/cycle_analytics/plan_event_fetcher_spec.rb1864spec/workers/remove_old_web_hook_logs_worker_spec.rb1865spec/workers/project_migrate_hashed_storage_worker_spec.rb1866spec/controllers/admin/dashboard_controller_spec.rb1867spec/models/blob_viewer/license_spec.rb1868spec/lib/gitlab/wiki_file_finder_spec.rb1869spec/lib/banzai/pipeline/full_pipeline_spec.rb1870spec/policies/user_policy_spec.rb1871spec/models/concerns/cacheable_attributes_spec.rb1872spec/serializers/merge_request_basic_serializer_spec.rb1873spec/tasks/gitlab/workhorse_rake_spec.rb1874spec/lib/gitlab/cycle_analytics/test_event_fetcher_spec.rb1875spec/workers/mail_scheduler/issue_due_worker_spec.rb1876spec/features/projects/merge_requests/user_views_merged_merge_requests_spec.rb1877spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb1878spec/services/keys/destroy_service_spec.rb1879spec/models/wiki_directory_spec.rb1880spec/controllers/concerns/continue_params_spec.rb1881spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb1882spec/models/concerns/participable_spec.rb1883spec/workers/build_trace_sections_worker_spec.rb1884spec/models/hooks/service_hook_spec.rb1885spec/models/lfs_objects_project_spec.rb1886spec/services/projects/open_merge_requests_count_service_spec.rb1887spec/services/create_snippet_service_spec.rb1888spec/controllers/oauth/applications_controller_spec.rb1889spec/lib/gitlab/encoding_helper_spec.rb1890spec/lib/gitlab/ci/config/entry/policy_spec.rb1891spec/models/lfs_object_spec.rb1892spec/lib/gitlab/diff/parser_spec.rb1893spec/rubocop/cop/migration/reversible_add_column_with_default_spec.rb1894spec/lib/gitlab/git/attributes_parser_spec.rb1895spec/helpers/page_layout_helper_spec.rb1896spec/models/concerns/triggerable_hooks_spec.rb1897spec/lib/gitlab/sql/recursive_cte_spec.rb1898spec/lib/gitlab/import_export/file_importer_spec.rb1899spec/models/diff_viewer/server_side_spec.rb1900spec/graphql/resolvers/project_resolver_spec.rb1901spec/policies/base_policy_spec.rb1902spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb1903spec/lib/rspec_flaky/example_spec.rb1904spec/lib/gitlab/kubernetes/namespace_spec.rb1905spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb1906spec/helpers/tab_helper_spec.rb1907spec/lib/gitlab/ci/config/entry/undefined_spec.rb1908spec/lib/gitlab/storage_check/response_spec.rb1909spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb1910spec/lib/gitlab/ci/status/failed_spec.rb1911spec/lib/gitlab/import_export/attribute_cleaner_spec.rb1912spec/lib/gitlab/polling_interval_spec.rb1913spec/graphql/types/project_type_spec.rb1914spec/lib/gitlab/gitaly_client/storage_settings_spec.rb1915spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb1916spec/lib/gitlab/ci_access_spec.rb1917spec/workers/gitlab/github_import/import_issue_worker_spec.rb1918spec/lib/banzai/filter/mermaid_filter_spec.rb1919Leftover specs:1920Knapsack report generator started!1921Run options: exclude {:geo=>true}1922==> Setting up GitLab Shell...1923 GitLab Shell setup in 0.119159449 seconds...1924==> Setting up Gitaly...1925 Gitaly setup in 0.000163278 seconds...1926cycle analytics events1927 #issue_events1928 has the total time1929 has a title1930 has the URL1931 has an iid1932 has a created_at timestamp1933 has the author's URL1934 has the author's avatar URL1935 has the author's name1936 #plan_events1937 has a title1938 has a sha short ID1939 has the URL1940 has the total time1941 has the author's URL1942 has the author's avatar URL1943 has the author's name1944 #code_events1945 has the total time1946 has a title1947 has an iid1948 has a created_at timestamp1949 has the author's URL1950 has the author's avatar URL1951 has the author's name1952 #test_events1953 has the name1954 has the ID1955 has the URL1956 has the branch name1957 has the branch URL1958 has the short SHA1959 has the commit URL1960 has the date1961 has the total time1962 #review_events1963 has the total time1964 has a title1965 has an iid1966 has the URL1967 has a state1968 has a created_at timestamp1969 has the author's URL1970 has the author's avatar URL1971 has the author's name1972 #staging_events1973 has the name1974 has the ID1975 has the URL1976 has the branch name1977 has the branch URL1978 has the short SHA1979 has the commit URL1980 has the date1981 has the total time1982 has the author's URL1983 has the author's avatar URL1984 has the author's name1985 #production_events1986 has the total time1987 has a title1988 has the URL1989 has an iid1990 has a created_at timestamp1991 has the author's URL1992 has the author's avatar URL1993 has the author's name1994Merge request > User sees merge widget1995Starting the Capybara driver server...1996 new merge request1997 shows widget status after creating new merge request1998 view merge request1999 shows environments link2000 shows green accept merge request button2001 allows me to merge, see cherry-pick modal and load branches list2002 view merge request with external CI service2003 has danger button while waiting for external CI status2004 view merge request with failed GitLab CI pipelines2005 has danger button when not succeeded2006 when merge request is in the blocked pipeline state2007 shows information about blocked pipeline2008 view merge request with MWBS button2009 has info button when MWBS button2010 view merge request where project has CI setup but no CI status2011 has pipeline error text2012 view merge request in project with only-mwps setting enabled but no CI is setup2013 should be allowed to merge2014 view merge request with MWPS enabled but automatically merge fails2015 shows information about the merge error2016 view merge request with MWPS enabled but automatically merge fails2017 shows information about the merge error2018 view merge request where fast-forward merge is not possible2019 shows information about the merge error2020 merge error2021 updates the MR widget2022 user can merge into source project but cannot push to fork2023 user can merge into the source project2024 user cannot remove source branch2025 user cannot merge project and cannot push to fork2026 user cannot remove source branch2027 ongoing merge process2028 shows Merging state2029API::Branches2030 GET /projects/:id/repository/branches2031 when search parameter is passed2032 and branch exists2033 returns correct branches2034 and branch does not exist2035 returns an empty array2036 when unauthenticated and project is public2037 behaves like repository branches2038 returns the repository branches2039 when repository is disabled2040 behaves like 403 response2041 returns 4032042 when unauthenticated and project is private2043 behaves like 404 response2044 returns 4042045 when authenticated as a master2046 behaves like repository branches2047 returns the repository branches2048 when repository is disabled2049 behaves like 403 response2050 returns 4032051 requesting with the escaped project full path2052 behaves like repository branches2053 returns the repository branches2054 when repository is disabled2055 behaves like 403 response2056 returns 4032057 when authenticated as a guest2058 behaves like 403 response2059 returns 4032060 GET /projects/:id/repository/branches/:branch2061 when unauthenticated and project is public2062 behaves like repository branch2063 returns the repository branch2064 HEAD request2065 returns 204 No Content2066 returns 404 Not Found2067 when branch does not exist2068 behaves like 404 response2069 returns 4042070 when the branch refname is invalid2071 behaves like 400 response2072 returns 4002073 when repository is disabled2074 behaves like 403 response2075 returns 4032076 when unauthenticated and project is private2077 behaves like 404 response2078 returns 4042079 when authenticated as a master2080 behaves like repository branch2081 returns the repository branch2082 HEAD request2083 returns 204 No Content2084 returns 404 Not Found2085 when branch does not exist2086 behaves like 404 response2087 returns 4042088 when the branch refname is invalid2089 behaves like 400 response2090 returns 4002091 when repository is disabled2092 behaves like 403 response2093 returns 4032094 when branch contains a dot2095 behaves like repository branch2096 returns the repository branch2097 HEAD request2098 returns 204 No Content2099 returns 404 Not Found2100 when branch does not exist2101 behaves like 404 response2102 returns 4042103 when the branch refname is invalid2104 behaves like 400 response2105 returns 4002106 when repository is disabled2107 behaves like 403 response2108 returns 4032109 when branch contains a slash2110 behaves like 404 response2111 returns 4042112 when branch contains an escaped slash2113 behaves like repository branch2114 returns the repository branch2115 HEAD request2116 returns 204 No Content2117 returns 404 Not Found2118 when branch does not exist2119 behaves like 404 response2120 returns 4042121 when the branch refname is invalid2122 behaves like 400 response2123 returns 4002124 when repository is disabled2125 behaves like 403 response2126 returns 4032127 requesting with the escaped project full path2128 behaves like repository branch2129 returns the repository branch2130 HEAD request2131 returns 204 No Content2132 returns 404 Not Found2133 when branch does not exist2134 behaves like 404 response2135 returns 4042136 when the branch refname is invalid2137 behaves like 400 response2138 returns 4002139 when repository is disabled2140 behaves like 403 response2141 returns 4032142 when branch contains a dot2143 behaves like repository branch2144 returns the repository branch2145 HEAD request2146 returns 204 No Content2147 returns 404 Not Found2148 when branch does not exist2149 behaves like 404 response2150 returns 4042151 when the branch refname is invalid2152 behaves like 400 response2153 returns 4002154 when repository is disabled2155 behaves like 403 response2156 returns 4032157 when authenticated as a guest2158 behaves like 403 response2159 returns 4032160 PUT /projects/:id/repository/branches/:branch/protect2161 when unauthenticated and project is private2162 behaves like 404 response2163 returns 4042164 when authenticated as a guest2165 behaves like 403 response2166 returns 4032167 when authenticated as a master2168 when a protected branch doesn't already exist2169 behaves like repository new protected branch2170 protects a single branch2171 protects a single branch and developers can push2172 protects a single branch and developers can merge2173 protects a single branch and developers can push and merge2174 when branch does not exist2175 behaves like 404 response2176 returns 4042177 when the branch refname is invalid2178 behaves like 400 response2179 returns 4002180 when repository is disabled2181 behaves like 403 response2182 returns 4032183 when branch contains a dot2184 behaves like repository new protected branch2185 protects a single branch2186 protects a single branch and developers can push2187 protects a single branch and developers can merge2188 protects a single branch and developers can push and merge2189 when branch does not exist2190 behaves like 404 response2191 returns 4042192 when the branch refname is invalid2193 behaves like 400 response2194 returns 4002195 when repository is disabled2196 behaves like 403 response2197 returns 4032198 when branch contains a slash2199 behaves like 404 response2200 returns 4042201 when branch contains an escaped slash2202 behaves like repository new protected branch2203 protects a single branch2204 protects a single branch and developers can push2205 protects a single branch and developers can merge2206 protects a single branch and developers can push and merge2207 when branch does not exist2208 behaves like 404 response2209 returns 4042210 when the branch refname is invalid2211 behaves like 400 response2212 returns 4002213 when repository is disabled2214 behaves like 403 response2215 returns 4032216 requesting with the escaped project full path2217 behaves like repository new protected branch2218 protects a single branch2219 protects a single branch and developers can push2220 protects a single branch and developers can merge2221 protects a single branch and developers can push and merge2222 when branch does not exist2223 behaves like 404 response2224 returns 4042225 when the branch refname is invalid2226 behaves like 400 response2227 returns 4002228 when repository is disabled2229 behaves like 403 response2230 returns 4032231 when branch contains a dot2232 behaves like repository new protected branch2233 protects a single branch2234 protects a single branch and developers can push2235 protects a single branch and developers can merge2236 protects a single branch and developers can push and merge2237 when branch does not exist2238 behaves like 404 response2239 returns 4042240 when the branch refname is invalid2241 behaves like 400 response2242 returns 4002243 when repository is disabled2244 behaves like 403 response2245 returns 4032246 when protected branch already exists2247 when developers can push and merge2248 updates that a developer cannot push or merge2249 when developers cannot push or merge2250 updates that a developer can push and merge2251 when no one can push2252 updates 'developers_can_push' without removing the 'no_one' access level2253 PUT /projects/:id/repository/branches/:branch/unprotect2254 when unauthenticated and project is private2255 behaves like 404 response2256 returns 4042257 when authenticated as a guest2258 behaves like 403 response2259 returns 4032260 when authenticated as a master2261 when a protected branch doesn't already exist2262 behaves like repository unprotected branch2263 unprotects a single branch2264 when branch does not exist2265 behaves like 404 response2266 returns 4042267 when the branch refname is invalid2268 behaves like 400 response2269 returns 4002270 when repository is disabled2271 behaves like 403 response2272 returns 4032273 when branch contains a dot2274 behaves like repository unprotected branch2275 unprotects a single branch2276 when branch does not exist2277 behaves like 404 response2278 returns 4042279 when the branch refname is invalid2280 behaves like 400 response2281 returns 4002282 when repository is disabled2283 behaves like 403 response2284 returns 4032285 when branch contains a slash2286 behaves like 404 response2287 returns 4042288 when branch contains an escaped slash2289 behaves like repository unprotected branch2290 unprotects a single branch2291 when branch does not exist2292 behaves like 404 response2293 returns 4042294 when the branch refname is invalid2295 behaves like 400 response2296 returns 4002297 when repository is disabled2298 behaves like 403 response2299 returns 4032300 requesting with the escaped project full path2301 behaves like repository unprotected branch2302 unprotects a single branch2303 when branch does not exist2304 behaves like 404 response2305 returns 4042306 when the branch refname is invalid2307 behaves like 400 response2308 returns 4002309 when repository is disabled2310 behaves like 403 response2311 returns 4032312 when branch contains a dot2313 behaves like repository unprotected branch2314 unprotects a single branch2315 when branch does not exist2316 behaves like 404 response2317 returns 4042318 when the branch refname is invalid2319 behaves like 400 response2320 returns 4002321 when repository is disabled2322 behaves like 403 response2323 returns 4032324 POST /projects/:id/repository/branches2325 returns 400 if branch name is invalid2326 returns 400 if branch already exists2327 returns 400 if ref name is invalid2328 when unauthenticated and project is private2329 behaves like 404 response2330 returns 4042331 when authenticated as a guest2332 behaves like 403 response2333 returns 4032334 when authenticated as a master2335 when a protected branch doesn't already exist2336 behaves like repository new branch2337 creates a new branch2338 when repository is disabled2339 behaves like 403 response2340 returns 4032341 requesting with the escaped project full path2342 behaves like repository new branch2343 creates a new branch2344 when repository is disabled2345 behaves like 403 response2346 returns 4032347 DELETE /projects/:id/repository/branches/:branch2348 removes branch2349 removes a branch with dots in the branch name2350 returns 404 if branch not exists2351 when the branch refname is invalid2352 behaves like 400 response2353 returns 4002354 behaves like 412 response2355 for a modified ressource2356 returns 4122357 for an unmodified ressource2358 returns accepted2359 DELETE /projects/:id/repository/merged_branches2360 returns 202 with json body2361 returns a 403 error if guest2362Discussion Comments Merge Request2363 behaves like discussion comments2364 clicking "Comment" will post a comment2365 when the toggle is clicked2366 has a "Comment" item (selected by default) and "Start discussion" item2367 closes the menu when clicking the toggle or body2368 clicking the ul padding or divider should not change the text2369 when selecting "Start discussion"2370 updates the submit button text and closes the dropdown2371 updates the close button text2372 typing does not change the close button text2373 creating a discussion2374 clicking "Start discussion" will post a discussion2375 shows resolved discussion when toggled2376 when opening the menu2377 should have "Start discussion" selected2378 when selecting "Comment"2379 updates the submit button text and closes the dropdown2380 updates the close button text2381 typing does not change the close button text2382 should have "Comment" selected when opening the menu2383 on a closed merge request2384 should show a 'Comment & reopen merge request' button2385 should show a 'Start discussion & reopen merge request' button when 'Start discussion' is selected2386CycleAnalytics#code2387 with deployment2388 start condition: issue mentioned in a commit2389 end condition: merge request that closes issue is created2390 finds the median of available durations between the two conditions2391 when the data belongs to another project2392 returns nil2393 when the end condition happens before the start condition2394 returns nil2395 start condition NOT PRESENT: issue mentioned in a commit2396 end condition: merge request that closes issue is created2397 returns nil2398 start condition: issue mentioned in a commit2399 end condition NOT PRESENT: merge request that closes issue is created2400 returns nil2401 when none of the start / end conditions are matched2402 returns nil2403 when a regular merge request (that doesn't close the issue) is created2404 returns nil2405 without deployment2406 start condition: issue mentioned in a commit2407 end condition: merge request that closes issue is created2408 finds the median of available durations between the two conditions2409 when the data belongs to another project2410 returns nil2411 when the end condition happens before the start condition2412 returns nil2413 start condition NOT PRESENT: issue mentioned in a commit2414 end condition: merge request that closes issue is created2415 returns nil2416 start condition: issue mentioned in a commit2417 end condition NOT PRESENT: merge request that closes issue is created2418 returns nil2419 when none of the start / end conditions are matched2420 returns nil2421 when a regular merge request (that doesn't close the issue) is created2422 returns nil2423Issue2424 Associations2425 should belong to milestone2426 should have many assignees2427 modules2428 should includes the Issuable module2429 should includes the Referable module2430 should includes the Sortable module2431 should includes the Taskable module2432 behaves like AtomicInternalId2433 .has_internal_id2434 Module inclusion2435 should includes the AtomicInternalId module2436 Validation2437 when presence validation is required2438 validates presence2439 when presence validation is not required2440 does not validate presence (PENDING: No reason given)2441 Creating an instance2442 saves a new instance properly2443 internal id generation2444 calls InternalId.generate_next and sets internal id attribute2445 does not overwrite an existing internal id2446 callbacks2447 #ensure_metrics2448 creates metrics after saving2449 does not create duplicate metrics for an issue2450 records current metrics2451 #order_by_position_and_priority2452 returns ordered list2453 #card_attributes2454 includes the author name2455 includes the assignee name2456 #closed_at2457 sets closed_at to Time.now when issue is closed2458 #to_reference2459 supports a cross-project reference2460 when nil argument2461 returns issue id2462 when full is true2463 returns complete path to the issue2464 when same project argument2465 returns issue id2466 when cross namespace project argument2467 returns complete path to the issue2468 when same namespace / cross-project argument2469 returns path to the issue with the project name2470 when different namespace / cross-project argument2471 returns full path to the issue2472 when argument is a namespace2473 with same project path2474 returns path to the issue with the project name2475 with different project path2476 returns full path to the issue2477 #assignee_or_author?2478 returns true for a user that is assigned to an issue2479 returns true for a user that is the author of an issue2480 returns false for a user that is not the assignee or author2481 #closed_by_merge_requests2482 returns the merge request to close this issue2483 returns an empty array when the merge request is closed already2484 returns an empty array when the current issue is closed already2485 #referenced_merge_requests2486 returns the referenced merge requests2487 returns cross project referenced merge requests2488 excludes cross project references if the user cannot read cross project2489 #can_move?2490 user is not a member of project issue belongs to2491 should eq false2492 user is reporter in project issue belongs to2493 should eq true2494 issue not persisted2495 should eq false2496 checking destination project also2497 destination project allowed2498 should eq true2499 destination project not allowed2500 should eq false2501 #moved?2502 issue not moved2503 should eq false2504 issue already moved2505 should eq true2506 #related_branches2507 selects the right branches when there are no referenced merge requests2508 selects the right branches when there is a referenced merge request2509 excludes stable branches from the related branches2510 #related_issues2511 returns only authorized related issues for given user2512 when a user cannot read cross project2513 only returns issues within the same project2514 #suggested_branch_name2515 #to_branch_name does not exists2516 returns #to_branch_name2517 #to_branch_name exists not ending with -index2518 returns #to_branch_name ending with -22519 #to_branch_name exists ending with -index2520 returns #to_branch_name ending with max index + 12521 #has_related_branch?2522 branch found2523 should eq true2524 branch not found2525 should eq false2526 behaves like an editable mentionable2527 creates new cross-reference notes when the mentionable text is edited2528 behaves like a mentionable2529 generates a descriptive back-reference2530 extracts references from its reference property2531 creates cross-reference notes2532 behaves like a Taskable2533 with multiple tasks2534 returns the correct task status2535 #tasks?2536 returns true when object has tasks2537 returns false when object has no tasks2538 with nested tasks2539 returns the correct task status2540 with an incomplete task2541 returns the correct task status2542 with tasks that are not formatted correctly2543 returns the correct task status2544 with a complete task2545 returns the correct task status2546 #to_branch_name2547 starts with the issue iid2548 contains the issue title if not confidential2549 does not contain the issue title if confidential2550 #can_be_worked_on?2551 should be can be worked on2552 is closed2553 should not be can be worked on2554 project is forked2555 should not be can be worked on2556 #participants2557 using a public project2558 includes the issue author2559 includes the authors of the notes2560 using a private project2561 does not include mentioned users that do not have access to the project2562 cached counts2563 updates when assignees change2564 #visible_to_user?2565 without a user2566 returns true when the issue is publicly visible2567 returns false when the issue is not publicly visible2568 with a user2569 returns true when the issue is readable2570 returns false when the issue is not readable2571 returns false when feature is disabled2572 returns false when restricted for members2573 with a regular user that is not a team member2574 using a public project2575 returns true for a regular issue2576 returns false for a confidential issue2577 using an internal project2578 using an internal user2579 returns true for a regular issue2580 returns false for a confidential issue2581 using an external user2582 returns false for a regular issue2583 returns false for a confidential issue2584 using a private project2585 returns false for a regular issue2586 returns false for a confidential issue2587 when the user is the project owner2588 returns true for a regular issue2589 returns true for a confidential issue2590 with a regular user that is a team member2591 using a public project2592 returns true for a regular issue2593 returns true for a confidential issue2594 using an internal project2595 returns true for a regular issue2596 returns true for a confidential issue2597 using a private project2598 returns true for a regular issue2599 returns true for a confidential issue2600 with an admin user2601 returns true for a regular issue2602 returns true for a confidential issue2603 #publicly_visible?2604 using a public project2605 returns true for a regular issue2606 returns false for a confidential issue2607 using an internal project2608 returns false for a regular issue2609 returns false for a confidential issue2610 using a private project2611 returns false for a regular issue2612 returns false for a confidential issue2613 #hook_attrs2614 delegates to Gitlab::HookData::IssueBuilder#build2615 #check_for_spam2616 when project is public and spammable attributes changed2617 returns true2618 when project is private2619 returns false2620 when spammable attributes have not changed2621 returns false2622 removing an issue2623 refreshes the number of open issues of the project2624 .public_only2625 only returns public issues2626 behaves like throttled touch2627 #touch2628 updates the updated_at timestamp2629 updates the object at most once per minute2630GpgKeySubkey2631 associations2632 should belong to gpg_key2633 validations2634 should validate that :gpg_key_id cannot be empty/falsy2635 should validate that :fingerprint cannot be empty/falsy2636 should validate that :keyid cannot be empty/falsy2637Boards::Issues::ListService2638 #execute2639 when parent is a project2640 behaves like issues list service2641 delegates search to IssuesFinder2642 issues are ordered by priority2643 returns opened issues when list_id is missing2644 returns opened issues when listing issues from Backlog2645 returns closed issues when listing issues from Closed2646 returns opened issues that have label list applied when listing issues from a label list2647 with list that does not belong to the board2648 raises an error2649 with invalid list id2650 raises an error2651 when parent is a group2652 and group has no parent2653 behaves like issues list service2654 delegates search to IssuesFinder2655 issues are ordered by priority2656 returns opened issues when list_id is missing2657 returns opened issues when listing issues from Backlog2658 returns closed issues when listing issues from Closed2659 returns opened issues that have label list applied when listing issues from a label list2660 with list that does not belong to the board2661 raises an error2662 with invalid list id2663 raises an error2664 and group is an ancestor2665 behaves like issues list service2666 delegates search to IssuesFinder (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2667 issues are ordered by priority2668 returns opened issues when list_id is missing (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2669 returns opened issues when listing issues from Backlog (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2670 returns closed issues when listing issues from Closed (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2671 returns opened issues that have label list applied when listing issues from a label list (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2672 with list that does not belong to the board2673 raises an error (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2674 with invalid list id2675 raises an error (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2676User uses header search field2677 when user is in a global scope2678 when clicking issues2679 shows assigned issues2680 shows created issues2681 when clicking merge requests2682 shows assigned merge requests2683 shows created merge requests2684 when user is in a project scope2685 starts searching by pressing the enter key2686 contains location badge2687 when clicking the search field2688 shows category search dropdown2689 when clicking issues2690 shows assigned issues2691 shows created issues2692 when clicking merge requests2693 shows assigned merge requests2694 shows created merge requests2695 when entering text into the search field2696 does not display the category search dropdown2697Banzai::Filter::LabelReferenceFilter2698 requires project context2699 ignores valid references contained inside 'pre' element2700 ignores valid references contained inside 'code' element2701 ignores valid references contained inside 'a' element2702 ignores valid references contained inside 'style' element2703 includes default classes2704 includes a data-project attribute2705 includes a data-label attribute2706 supports an :only_path context2707 project that does not exist referenced2708 does not link reference2709 label span element2710 includes default classes2711 includes a style attribute2712 Integer-based references2713 links to a valid reference2714 links with adjacent text2715 ignores invalid label IDs2716 String-based single-word references2717 links to a valid reference2718 links with adjacent text2719 ignores invalid label names2720 String-based single-word references that begin with a digit2721 links to a valid reference2722 links with adjacent text2723 ignores invalid label names2724 String-based single-word references with special characters2725 links to a valid reference2726 links with adjacent text2727 ignores invalid label names2728 String-based multi-word references in quotes2729 links to a valid reference2730 links with adjacent text2731 ignores invalid label names2732 String-based multi-word references that begin with a digit2733 links to a valid reference2734 links with adjacent text2735 ignores invalid label names2736 String-based multi-word references with special characters in quotes2737 links to a valid reference2738 links with adjacent text2739 ignores invalid label names2740 consecutive references2741 separated with a comma2742 links to valid references2743 separated with a space2744 links to valid references2745 edge cases2746 gracefully handles non-references matching the pattern2747 referencing a label in a link href2748 links to a valid reference2749 links with adjacent text2750 includes a data-project attribute2751 includes a data-label attribute2752 group label references2753 without project reference2754 links to a valid reference2755 links with adjacent text2756 ignores invalid label names2757 with project reference2758 links to a valid reference2759 links with adjacent text2760 ignores invalid label names2761 cross-project / cross-namespace complete reference2762 links to a valid reference2763 has valid color2764 has valid link text2765 has valid text2766 ignores invalid IDs on the referenced label2767 cross-project / same-namespace complete reference2768 links to a valid reference2769 has valid color2770 has valid link text2771 has valid text2772 ignores invalid IDs on the referenced label2773 cross-project shorthand reference2774 links to a valid reference2775 has valid color2776 has valid link text2777 has valid text2778 ignores invalid IDs on the referenced label2779 cross group label references2780 points to referenced project issues page2781 has valid color2782 has valid link text2783 has valid text2784 ignores invalid IDs on the referenced label2785 cross-project / same-group_label complete reference2786 points to referenced project issues page2787 has valid color2788 has valid link text2789 has valid text2790 ignores invalid IDs on the referenced label2791 same project / same group_label complete reference2792 points to referenced project issues page2793 has valid color2794 has valid link text2795 has valid text2796 ignores invalid IDs on the referenced label2797 same project / same group_label shorthand reference2798 points to referenced project issues page2799 has valid color2800 has valid link text2801 has valid text2802 ignores invalid IDs on the referenced label2803 group context2804 points to the page defined in label_url_method2805 finds labels also in ancestor groups2806 points to referenced project issues page2807MergeRequests::SquashService2808 #execute2809 when there is only one commit in the merge request2810 returns that commit SHA2811 does not perform any git actions2812 when squashing only new files2813 returns the squashed commit SHA2814 cleans up the temporary directory2815 does not keep the branch push event2816 the squashed commit2817 copies the author info and message from the merge request2818 sets the current user as the committer2819 has the same diff as the merge request, but a different SHA2820 when squashing with files too large to display2821 returns the squashed commit SHA2822 cleans up the temporary directory2823 does not keep the branch push event2824 the squashed commit2825 copies the author info and message from the merge request2826 sets the current user as the committer2827 has the same diff as the merge request, but a different SHA2828 git errors2829 with gitaly enabled2830 logs the stage and output2831 returns an error2832 with Gitaly disabled2833 when the add worktree for squash stage fails2834 logs the stage and output2835 returns an error2836 cleans up the temporary directory2837 when the configure sparse checkout stage fails2838 logs the stage and output2839 returns an error2840 cleans up the temporary directory2841 when the get files in diff stage fails2842 logs the stage and output2843 returns an error2844 cleans up the temporary directory2845 when the check out target branch stage fails2846 logs the stage and output2847 returns an error2848 cleans up the temporary directory2849 when the apply patch stage fails2850 logs the stage and output2851 returns an error2852 cleans up the temporary directory2853 when the commit squashed changes stage fails2854 logs the stage and output2855 returns an error2856 cleans up the temporary directory2857 when the get SHA of squashed commit stage fails2858 logs the stage and output2859 returns an error2860 cleans up the temporary directory2861 when any other exception is thrown2862 logs the MR reference and exception2863 returns an error2864 cleans up the temporary directory2865Explore Groups2866 when signed in2867 behaves like renders public and internal projects2868 should not text "project523"2869 behaves like renders public and internal projects2870 should not text "project526"2871 behaves like renders public and internal projects2872 should not text "project529"2873 behaves like renders group in public groups area2874 should text "group51"2875 when signed out2876 behaves like renders only public project2877 should not text "project535"2878 behaves like renders only public project2879 should not text "project538"2880 behaves like renders only public project2881 should not text "project541"2882 behaves like renders group in public groups area2883 should text "group55"2884Merge request > User assigns themselves2885 logged in as a member of the project2886 updates related issues2887 returns user to the merge request2888 when related issues are already assigned2889 does not display if related issues are already assigned2890 logged in as a non-member of the project2891 does not not show assignment link2892API::Search2893 GET /search2894 when user is not authenticated2895 returns 401 error2896 when scope is not supported2897 returns 400 error2898 when scope is missing2899 returns 400 error2900 with correct params2901 for projects scope2902 behaves like response is correct2903 should respond with numeric status code 2002904 should match response schema "public_api/v4/projects"2905 should include limited pagination headers2906 should eq 12907 for issues scope2908 behaves like response is correct2909 should respond with numeric status code 2002910 should match response schema "public_api/v4/issues"2911 should include limited pagination headers2912 should eq 12913 for merge_requests scope2914 behaves like response is correct2915 should respond with numeric status code 2002916 should match response schema "public_api/v4/merge_requests"2917 should include limited pagination headers2918 should eq 12919 for milestones scope2920 behaves like response is correct2921 should respond with numeric status code 2002922 should match response schema "public_api/v4/milestones"2923 should include limited pagination headers2924 should eq 12925 for snippet_titles scope2926 behaves like response is correct2927 should respond with numeric status code 2002928 should match response schema "public_api/v4/snippets"2929 should include limited pagination headers2930 should eq 12931 for snippet_blobs scope2932 behaves like response is correct2933 should respond with numeric status code 2002934 should match response schema "public_api/v4/snippets"2935 should include limited pagination headers2936 should eq 12937 GET /groups/:id/search2938 when user is not authenticated2939 returns 401 error2940 when scope is not supported2941 returns 400 error2942 when scope is missing2943 returns 400 error2944 when group does not exist2945 returns 404 error2946 when user does can not see the group2947 returns 404 error2948 with correct params2949 for projects scope2950 behaves like response is correct2951 should respond with numeric status code 2002952 should match response schema "public_api/v4/projects"2953 should include limited pagination headers2954 should eq 12955 for issues scope2956 behaves like response is correct2957 should respond with numeric status code 2002958 should match response schema "public_api/v4/issues"2959 should include limited pagination headers2960 should eq 12961 for merge_requests scope2962 behaves like response is correct2963 should respond with numeric status code 2002964 should match response schema "public_api/v4/merge_requests"2965 should include limited pagination headers2966 should eq 12967 for milestones scope2968 behaves like response is correct2969 should respond with numeric status code 2002970 should match response schema "public_api/v4/milestones"2971 should include limited pagination headers2972 should eq 12973 for milestones scope with group path as id2974 behaves like response is correct2975 should respond with numeric status code 2002976 should match response schema "public_api/v4/milestones"2977 should include limited pagination headers2978 should eq 12979 GET /projects/:id/search2980 when user is not authenticated2981 returns 401 error2982 when scope is not supported2983 returns 400 error2984 when scope is missing2985 returns 400 error2986 when project does not exist2987 returns 404 error2988 when user does can not see the project2989 returns 404 error2990 with correct params2991 for issues scope2992 behaves like response is correct2993 should respond with numeric status code 2002994 should match response schema "public_api/v4/issues"2995 should include limited pagination headers2996 should eq 12997 for merge_requests scope2998 behaves like response is correct2999 should respond with numeric status code 2003000 should match response schema "public_api/v4/merge_requests"3001 should include limited pagination headers3002 should eq 13003 for milestones scope3004 behaves like response is correct3005 should respond with numeric status code 2003006 should match response schema "public_api/v4/milestones"3007 should include limited pagination headers3008 should eq 13009 for notes scope3010 behaves like response is correct3011 should respond with numeric status code 2003012 should match response schema "public_api/v4/notes"3013 should include limited pagination headers3014 should eq 13015 for wiki_blobs scope3016 behaves like response is correct3017 should respond with numeric status code 2003018 should match response schema "public_api/v4/blobs"3019 should include limited pagination headers3020 should eq 13021 for commits scope3022 behaves like response is correct3023 should respond with numeric status code 2003024 should match response schema "public_api/v4/commits_details"3025 should include limited pagination headers3026 should eq 13027 for commits scope with project path as id3028 behaves like response is correct3029 should respond with numeric status code 2003030 should match response schema "public_api/v4/commits_details"3031 should include limited pagination headers3032 should eq 13033 for blobs scope3034 behaves like response is correct3035 should respond with numeric status code 2003036 should match response schema "public_api/v4/blobs"3037 should include limited pagination headers3038 should eq 23039Blob button line permalinks (BlobLinePermalinkUpdater)3040 On a file(blob)3041 Click "Permalink" button3042 works with no initial line number fragment hash3043 maintains intitial fragment hash3044 changes fragment hash if line number clicked3045 with initial fragment hash, changes fragment hash if line number clicked3046 Click "Blame" button3047 works with no initial line number fragment hash3048 maintains intitial fragment hash3049 changes fragment hash if line number clicked3050 with initial fragment hash, changes fragment hash if line number clicked3051Multi-file editor new directory3052 creates directory in current directory3053User searches for commits3054 when searching by SHA3055 finds a commit and redirects to its page3056 finds a commit in uppercase and redirects to its page3057 when searching by message3058 finds a commit and holds on /search page3059 finds multiple commits3060Projects::DiscussionsController3061 GET show3062 when user is not authorized to read the MR3063 returns 4043064 when user is authorized to read the MR3065 returns status 2003066 returns status 404 if MR does not exists3067 when user is authorized but note is LegacyDiffNote3068 returns status 2003069 POST resolve3070 when the user is not authorized to resolve the discussion3071 returns status 4043072 when the user is authorized to resolve the discussion3073 when the discussion is not resolvable3074 returns status 4043075 when the discussion is resolvable3076 resolves the discussion3077 sends notifications if all discussions are resolved3078 returns the name of the resolving user3079 returns status 2003080 when vue_mr_discussions cookie is present3081 renders discussion with serializer3082 DELETE unresolve3083 when the user is not authorized to resolve the discussion3084 returns status 4043085 when the user is authorized to resolve the discussion3086 when the discussion is not resolvable3087 returns status 4043088 when the discussion is resolvable3089 unresolves the discussion3090 returns status 2003091 when vue_mr_discussions cookie is present3092 renders discussion with serializer3093Milestone3094 Create a milestone3095 shows an informative message for a new milestone3096 Open a milestone with closed issues3097 shows an informative message3098 Open a project milestone with an existing title3099 displays validation message when there is a project milestone with same title3100 displays validation message when there is a group milestone with same title3101 Open a milestone3102 shows total issue time spent correctly when no time has been logged3103 shows total issue time spent3104 Deleting a milestone3105 The delete milestone button does not show for unauthorized users3106 deprecation popover3107 opens deprecation popover3108Gitlab::BareRepositoryImport::Importer3109 with subgroups3110 behaves like importing a repository3111 .execute3112 creates a project for a repository in storage (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3113 skips wiki repos (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3114 without admin users3115 raises an error (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3116 #create_project_if_needed3117 starts an import for a project that did not exist (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3118 skips importing when the project already exists (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3119 creates a project with the correct path in the database (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3120 does not schedule an import (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3121 creates the Git repo on disk with the proper symlink for hooks (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3122 hashed storage enabled3123 creates a project with the correct path in the database (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3124 without subgroups3125 behaves like importing a repository3126 .execute3127 creates a project for a repository in storage3128 skips wiki repos3129 without admin users3130 raises an error3131 #create_project_if_needed3132 starts an import for a project that did not exist3133 skips importing when the project already exists3134 creates a project with the correct path in the database3135 does not schedule an import3136 creates the Git repo on disk with the proper symlink for hooks3137 hashed storage enabled3138 creates a project with the correct path in the database3139 without groups3140 starts an import for a project that did not exist3141 creates a project with the correct path in the database3142 creates the Git repo in disk3143 moves an existing project to the correct path3144 with Wiki3145 creates the Wiki git repo in disk3146 behaves like importing a repository3147 .execute3148 creates a project for a repository in storage3149 skips wiki repos3150 without admin users3151 raises an error3152 #create_project_if_needed3153 starts an import for a project that did not exist3154 skips importing when the project already exists3155 creates a project with the correct path in the database3156 does not schedule an import3157 creates the Git repo on disk with the proper symlink for hooks3158 hashed storage enabled3159 creates a project with the correct path in the database3160 when subgroups are not available3161 #create_project_if_needed3162 raises an error3163Banzai::Filter::ExternalIssueReferenceFilter3164 redmine project3165 behaves like external issue tracker3166 requires project context3167 ignores valid references contained inside 'pre' element3168 ignores valid references contained inside 'code' element3169 ignores valid references contained inside 'a' element3170 ignores valid references contained inside 'style' element3171 ignores valid references when using default tracker3172 links to a valid reference3173 links to the external tracker3174 links with adjacent text3175 includes a title attribute3176 escapes the title attribute3177 includes default classes3178 supports an :only_path context3179 behaves like a reference containing an element node3180 does not escape inner html3181 with RequestStore enabled3182 queries the collection on the first call3183 jira project3184 with right markdown3185 behaves like external issue tracker3186 requires project context3187 ignores valid references contained inside 'pre' element3188 ignores valid references contained inside 'code' element3189 ignores valid references contained inside 'a' element3190 ignores valid references contained inside 'style' element3191 ignores valid references when using default tracker3192 links to a valid reference3193 links to the external tracker3194 links with adjacent text3195 includes a title attribute3196 escapes the title attribute3197 includes default classes3198 supports an :only_path context3199 behaves like a reference containing an element node3200 does not escape inner html3201 with RequestStore enabled3202 queries the collection on the first call3203 with wrong markdown3204 ignores reference3205GroupsFinder3206 #execute3207 root level groups3208 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]3209 should contain exactly #<Group id:1001 @public_group> and #<Group id:1004 @user_public_group>3210 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]3211 should contain exactly #<Group id:1007 @public_group> and #<Group id:1010 @user_public_group>3212 user_type: nil, params: {}, results: [:public_group, :user_public_group]3213 should contain exactly #<Group id:1013 @public_group> and #<Group id:1016 @user_public_group>3214 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3215 should contain exactly #<Group id:1019 @public_group>, #<Group id:1018 @internal_group>, #<Group id:1022 @user_public_group>, #<Group id:1021 @user_internal_group>, and #<Group id:1020 @user_private_group>3216 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3217 should contain exactly #<Group id:1029 @user_public_group>, #<Group id:1028 @user_internal_group>, and #<Group id:1027 @user_private_group>3218 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]3219 should contain exactly #<Group id:1033 @public_group>, #<Group id:1032 @internal_group>, #<Group id:1036 @user_public_group>, #<Group id:1035 @user_internal_group>, and #<Group id:1034 @user_private_group>3220 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3221 should contain exactly #<Group id:1040 @public_group>, #<Group id:1043 @user_public_group>, #<Group id:1042 @user_internal_group>, and #<Group id:1041 @user_private_group>3222 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3223 should contain exactly #<Group id:1050 @user_public_group>, #<Group id:1049 @user_internal_group>, and #<Group id:1048 @user_private_group>3224 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]3225 should contain exactly #<Group id:1054 @public_group>, #<Group id:1057 @user_public_group>, #<Group id:1056 @user_internal_group>, and #<Group id:1055 @user_private_group>3226 user_type: :admin, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3227 should contain exactly #<Group id:1061 @public_group>, #<Group id:1060 @internal_group>, #<Group id:1059 @private_group>, #<Group id:1064 @user_public_group>, #<Group id:1063 @user_internal_group>, and #<Group id:1062 @user_private_group>3228 user_type: :admin, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]3229 should contain exactly #<Group id:1071 @user_public_group>, #<Group id:1070 @user_internal_group>, and #<Group id:1069 @user_private_group>3230 user_type: :admin, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]3231 should contain exactly #<Group id:1075 @public_group>, #<Group id:1074 @internal_group>, #<Group id:1073 @private_group>, #<Group id:1078 @user_public_group>, #<Group id:1077 @user_internal_group>, and #<Group id:1076 @user_private_group>3232 subgroups3233 without a user3234 only returns parent and public subgroups (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3235 with a user3236 returns parent, public, and internal subgroups (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3237 being member3238 returns parent, public subgroups, internal subgroups, and private subgroups user is member of (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3239 parent group private3240 being member of parent group3241 returns all subgroups (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3242 authorized to private project3243 project one level deep3244 includes the subgroup of the project (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3245 does not include private subgroups deeper down (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3246 project two levels deep3247 returns all the ancestor groups (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3248 returns the groups for a given parent (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3249RelativePositioning3250 #max_relative_position3251 returns maximum position3252 #prev_relative_position3253 returns previous position if there is an issue above3254 returns nil if there is no issue above3255 #next_relative_position3256 returns next position if there is an issue below3257 returns nil if there is no issue below3258 #move_before3259 moves issue before3260 #move_after3261 moves issue after3262 #move_to_end3263 moves issue to the end3264 #shift_after?3265 returns true3266 returns false3267 #shift_before?3268 returns true3269 returns false3270 #move_between3271 positions issue between two other3272 positions issue between on top3273 positions issue between to end3274 positions issues even when after and before positions are the same3275 positions issues between other two if distance is 13276 positions issue in the middle of other two if distance is big enough3277 positions issue closer to the middle if we are at the very top3278 positions issue closer to the middle if we are at the very bottom3279 positions issue in the middle of other two if distance is not big enough3280 positions issue in the middle of other two is there is no place3281 uses rebalancing if there is no place3282 positions issue right if we pass none-sequential parameters3283Groups > Members > Request access3284 request access feature is disabled3285 user can request access to a group3286 user does not see private projects3287 user does not see group in the Dashboard > Groups page3288 user is not listed in the group members page3289 user can withdraw its request for access3290 member does not see the request access button3291Help Pages3292 Get the main help page3293 without a trailing slash3294 behaves like help page3295 prefixes links correctly3296 with a trailing slash3297 behaves like help page3298 prefixes links correctly3299 with a relative installation3300 behaves like help page3301 prefixes links correctly3302 quick link shortcuts3303 focuses search bar3304 opens shortcuts help dialog3305 in a production environment with version check enabled3306 has a version check image3307 hides the version check image if the image request fails3308 when help page is customized3309 should display custom help page text3310 should hide marketing content when enabled3311 should use a custom support url3312Projects::VariablesController3313 GET #show3314 renders the variables as json3315 has only one variable3316 PATCH #update3317 with invalid new variable parameters3318 does not update the existing variable3319 does not create the new variable3320 returns a bad request response3321 with duplicate new variable parameters3322 does not update the existing variable3323 does not create the new variable3324 returns a bad request response3325 with valid new variable parameters3326 updates the existing variable3327 creates the new variable3328 returns a successful response3329 has all variables in response3330 with a deleted variable3331 destroys the variable3332 returns a successful response3333 has all variables in response3334SnippetsController3335 GET #index3336 when username parameter is present3337 renders snippets of a user when username is present3338 when username parameter is not present3339 redirects to explore snippets page when user is not logged in3340 redirects to snippets dashboard page when user is logged in3341 GET #new3342 when signed in3343 responds with status 2003344 when not signed in3345 redirects to the sign in page3346 GET #show3347 when the personal snippet is private3348 when signed in3349 when signed in user is not the author3350 responds with status 4043351 when signed in user is the author3352 renders the snippet3353 when not signed in3354 redirects to the sign in page3355 when the personal snippet is internal3356 when signed in3357 renders the snippet3358 when not signed in3359 redirects to the sign in page3360 when the personal snippet is public3361 when signed in3362 renders the snippet3363 when not signed in3364 renders the snippet3365 when the personal snippet does not exist3366 when signed in3367 responds with status 4043368 when not signed in3369 responds with status 4043370 POST #create3371 creates the snippet correctly3372 when the snippet description contains a file3373 creates the snippet3374 stores the snippet description correctly3375 when the snippet is spam3376 when the snippet is private3377 creates the snippet3378 when the snippet is public3379 rejects the shippet3380 creates a spam log3381 renders :new with recaptcha disabled3382 recaptcha enabled3383 renders :verify with recaptcha enabled3384 renders snippet page when recaptcha verified3385 PUT #update3386 when the snippet is spam3387 when the snippet is private3388 updates the snippet3389 when a private snippet is made public3390 rejects the snippet3391 creates a spam log3392 renders :edit with recaptcha disabled3393 recaptcha enabled3394 renders :verify with recaptcha enabled3395 renders snippet page when recaptcha verified3396 when the snippet is public3397 rejects the shippet3398 creates a spam log3399 renders :edit with recaptcha disabled3400 recaptcha enabled3401 renders :verify with recaptcha enabled3402 renders snippet page when recaptcha verified3403 POST #mark_as_spam3404 updates the snippet3405 GET #raw3406 when the personal snippet is private3407 when signed in3408 when signed in user is not the author3409 responds with status 4043410 when signed in user is the author3411 responds with status 2003412 has expected headers3413 when not signed in3414 redirects to the sign in page3415 when the personal snippet is internal3416 when signed in3417 responds with status 2003418 when not signed in3419 redirects to the sign in page3420 when the personal snippet is public3421 when signed in3422 responds with status 2003423 CRLF line ending3424 returns LF line endings by default3425 does not convert line endings when parameter present3426 when not signed in3427 responds with status 2003428 when the personal snippet does not exist3429 when signed in3430 responds with status 4043431 when not signed in3432 redirects to the sign in path3433 award emoji on snippets3434 POST #toggle_award_emoji3435 toggles the award emoji3436 removes the already awarded emoji3437 POST #preview_markdown3438 renders json in a correct format3439Labels::TransferService3440 #execute3441 recreates the missing group labels at project level3442 recreates label priorities related to the missing group labels3443 does not recreate missing group labels that are not applied to issues or merge requests3444 does not recreate missing group labels that already exist in the project group3445 updates only label links in the given project3446admin issues labels3447 list3448 renders labels list3449 deletes label3450 deletes all labels3451 create3452 creates new label3453 does not creates label with invalid color3454 does not creates label if label already exists3455 edit3456 changes bug label3457Dashboard Issues Feed3458 GET /issues3459 atom feed3460 returns 400 if no filter is used3461 renders atom feed via personal access token3462 renders atom feed via feed token3463 renders atom feed with url parameters3464 issue with basic fields3465 renders issue fields3466 issue with label and milestone3467 renders issue label and milestone info3468User visits their profile3469 shows correct menu item3470 shows profile info3471 when user has groups3472 shows user groups3473ScheduleSetConfidentialNoteEventsOnServices3474 schedules background migrations at correct time3475 correctly processes services3476Gitlab::SlashCommands::Command3477 #execute3478 when no command is available3479 displays 404 messages3480 when an unknown command is triggered3481 displays the help message3482 the user can not create an issue3483 rejects the actions3484 when trying to do deployment3485 and user can not create deployment3486 returns action3487 and user has deployment permission3488 returns action3489 when duplicate action exists3490 returns error3491 #match_command3492 IssueShow is triggered3493 should eq Gitlab::SlashCommands::IssueShow3494 IssueCreate is triggered3495 should eq Gitlab::SlashCommands::IssueNew3496 IssueSearch is triggered3497 should eq Gitlab::SlashCommands::IssueSearch3498 IssueMove is triggered3499 should eq Gitlab::SlashCommands::IssueMove3500Projects::TodosController3501 Issues3502 POST create3503 when authorized3504 creates todo for issue3505 returns todo path and pending count3506 when not authorized for project3507 does not create todo for issue that user has no access to3508 does not create todo for issue when user not logged in3509 when not authorized for issue3510 doesn't create todo3511 Merge Requests3512 POST create3513 when authorized3514 creates todo for merge request3515 returns todo path and pending count3516 when not authorized for project3517 does not create todo for merge request user has no access to3518 does not create todo for merge request user has no access to3519 when not authorized for merge_request3520 doesn't create todo3521Groups routing3522 to #show3523 also supports nested groups3524 also display group#show on the short path3525 to #activity3526 to #issues3527 to #members3528 to #labels3529 to #milestones3530 legacy redirection3531 labels3532 behaves like redirecting a legacy path3533 redirects /groups/complex.group-namegit/labels to /groups/complex.group-namegit/-/labels when the resource does not exist3534 does not redirect /groups/complex.group-namegit/labels to /groups/complex.group-namegit/-/labels when the resource exists3535 when requesting JSON3536 behaves like redirecting a legacy path3537 redirects /groups/complex.group-namegit/labels.json to /groups/complex.group-namegit/-/labels.json when the resource does not exist3538 does not redirect /groups/complex.group-namegit/labels.json to /groups/complex.group-namegit/-/labels.json when the resource exists3539 group_members3540 behaves like redirecting a legacy path3541 redirects /groups/complex.group-namegit/group_members to /groups/complex.group-namegit/-/group_members when the resource does not exist3542 does not redirect /groups/complex.group-namegit/group_members to /groups/complex.group-namegit/-/group_members when the resource exists3543 avatar3544 routes to the avatars controller3545 milestones3546 behaves like redirecting a legacy path3547 redirects /groups/complex.group-namegit/milestones to /groups/complex.group-namegit/-/milestones when the resource does not exist3548 does not redirect /groups/complex.group-namegit/milestones to /groups/complex.group-namegit/-/milestones when the resource exists3549 nested routes3550 redirects the nested routes3551 with a query string3552 behaves like redirecting a legacy path3553 redirects /groups/complex.group-namegit/milestones?hello=world to /groups/complex.group-namegit/-/milestones?hello=world when the resource does not exist3554 does not redirect /groups/complex.group-namegit/milestones?hello=world to /groups/complex.group-namegit/-/milestones?hello=world when the resource exists3555 behaves like redirecting a legacy path3556 redirects /groups/complex.group-namegit/milestones?milestones=/milestones to /groups/complex.group-namegit/-/milestones?milestones=/milestones when the resource does not exist3557 does not redirect /groups/complex.group-namegit/milestones?milestones=/milestones to /groups/complex.group-namegit/-/milestones?milestones=/milestones when the resource exists3558 edit3559 behaves like redirecting a legacy path3560 redirects /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource does not exist3561 does not redirect /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource exists (PENDING: still rejected because of the wildcard reserved word)3562 issues3563 behaves like redirecting a legacy path3564 redirects /groups/complex.group-namegit/issues to /groups/complex.group-namegit/-/issues when the resource does not exist3565 does not redirect /groups/complex.group-namegit/issues to /groups/complex.group-namegit/-/issues when the resource exists3566 merge_requests3567 behaves like redirecting a legacy path3568 redirects /groups/complex.group-namegit/merge_requests to /groups/complex.group-namegit/-/merge_requests when the resource does not exist3569 does not redirect /groups/complex.group-namegit/merge_requests to /groups/complex.group-namegit/-/merge_requests when the resource exists3570 projects3571 behaves like redirecting a legacy path3572 redirects /groups/complex.group-namegit/projects to /groups/complex.group-namegit/-/projects when the resource does not exist3573 does not redirect /groups/complex.group-namegit/projects to /groups/complex.group-namegit/-/projects when the resource exists3574 activity3575 behaves like redirecting a legacy path3576 redirects /groups/complex.group-namegit/activity to /groups/complex.group-namegit/-/activity when the resource does not exist3577 does not redirect /groups/complex.group-namegit/activity to /groups/complex.group-namegit/-/activity when the resource exists3578 behaves like redirecting a legacy path3579 redirects /groups/activity/activity to /groups/activity/-/activity when the resource does not exist3580 does not redirect /groups/activity/activity to /groups/activity/-/activity when the resource exists3581 subgroup "boards"3582 shows group show page3583 shows boards index page3584Groups::VariablesController3585 GET #show3586 renders the variables as json3587 has only one variable3588 PATCH #update3589 with invalid new variable parameters3590 does not update the existing variable3591 does not create the new variable3592 returns a bad request response3593 with duplicate new variable parameters3594 does not update the existing variable3595 does not create the new variable3596 returns a bad request response3597 with valid new variable parameters3598 updates the existing variable3599 creates the new variable3600 returns a successful response3601 has all variables in response3602 with a deleted variable3603 destroys the variable3604 returns a successful response3605 has all variables in response3606SentNotificationsController3607 GET unsubscribe3608 when the user is not logged in3609 when the force param is passed3610 unsubscribes the user3611 sets the flash message3612 redirects to the login page3613 when the force param is not passed3614 does not unsubscribe the user3615 does not set the flash message3616 redirects to the login page3617 when the user is logged in3618 when the ID passed does not exist3619 does not unsubscribe the user3620 does not set the flash message3621 returns a 4043622 when the force param is passed3623 unsubscribes the user3624 sets the flash message3625 redirects to the issue page3626 when the force param is not passed3627 unsubscribes the user3628 sets the flash message3629 redirects to the merge request page3630Clusters::Applications::Ingress3631 should belong to cluster3632 should validate that :cluster cannot be empty/falsy3633 #name3634 is .application_name3635 is recorded in Clusters::Cluster::APPLICATIONS3636 status state machine3637 #make_installing3638 is installing3639 #make_installed3640 is installed3641 #make_errored3642 is errored3643 #make_scheduled3644 is scheduled3645 when was errored3646 clears #status_reason3647 #status3648 sets a default status3649 when application helm is scheduled3650 defaults to :not_installable3651 when application is scheduled3652 sets a default status3653 .installed3654 should contain exactly #<Clusters::Applications::Ingress id: 6, cluster_id: 27, created_at: "2018-06-26 13:49:54", updated_a...status: 3, ingress_type: 1, version: "nginx", cluster_ip: nil, status_reason: nil, external_ip: nil>3655 #make_installed!3656 schedules a ClusterWaitForIngressIpAddressWorker3657 #schedule_status_update3658 schedules a ClusterWaitForIngressIpAddressWorker3659 when the application is not installed3660 does not schedule a ClusterWaitForIngressIpAddressWorker3661 when there is already an external_ip3662 does not schedule a ClusterWaitForIngressIpAddressWorker3663 #install_command3664 should be an instance of Gitlab::Kubernetes::Helm::InstallCommand3665 should be initialized with ingress arguments3666 #values3667 should include ingress valid keys3668Projects > Members > Group requester cannot request access to project3669 group requester does not see the request access / withdraw access request button3670RegistrationsController3671 #create3672 email confirmation3673 when send_user_confirmation_email is false3674 signs the user in3675 when send_user_confirmation_email is true3676 does not authenticate user and sends confirmation email3677 when signup_enabled? is false3678 redirects to sign_in3679 when reCAPTCHA is enabled3680 displays an error when the reCAPTCHA is not solved3681 redirects to the dashboard when the recaptcha is solved3682 when terms are enforced3683 redirects back with a notice when the checkbox was not checked3684 creates the user with agreement when terms are accepted3685 #destroy3686 user requires password confirmation3687 fails if password confirmation is not provided3688 fails if password confirmation is wrong3689 succeeds if password is confirmed3690 user does not require password confirmation3691 fails if username confirmation is not provided3692 fails if username confirmation is wrong3693 succeeds if username is confirmed3694GenericCommitStatus3695 validations3696 should validate that the length of :target_url is at most 2553697 should allow :target_url to be ‹nil›3698 should allow :target_url to be ‹"http://gitlab.com/s"›3699 should not allow :target_url to be ‹"javascript:alert(1)"›3700 #context3701 should eq "my_context"3702 #tags3703 should eq [:external]3704 #detailed_status3705 returns detailed status object3706 when user has ability to see datails3707 details path points to an external URL3708 when user should not see details3709 does not have details3710 set_default_values3711 #context3712 should not be nil3713 #stage3714 should not be nil3715 #present3716 should be a kind of GenericCommitStatusPresenter3717ContainerRegistry::Path3718 #components3719 splits components by a forward slash3720 #nodes3721 when repository path is valid3722 return all project path like node in reverse order3723 when repository path is invalid3724 rasises en error3725 #to_s3726 when path does not have uppercase characters3727 return a string with a repository path3728 when path has uppercase characters3729 return a string with a repository path3730 #valid?3731 when path has less than two components3732 should not be valid3733 when path has more than allowed number of components3734 should not be valid3735 when path has invalid characters3736 should not be valid3737 when path has two or more components3738 should be valid3739 when path is related to multi-level image3740 should be valid3741 when path contains uppercase letters3742 should be valid3743 when path contains double underscore3744 should be valid3745 when path contains invalid separator with dot3746 should not be valid3747 when path contains invalid separator with underscore3748 should not be valid3749 #has_repository?3750 when project exists3751 when path already has matching repository3752 should have repository3753 should have project3754 when path does not have matching repository3755 should not have repository3756 should have project3757 when project does not exist3758 should not have repository3759 should not have project3760 #repository_project3761 when project for given path exists3762 returns a correct project3763 when project for given path does not exist3764 returns nil3765 when matching multi-level path3766 when using the zero-level path3767 supports zero-level path3768 when using first-level path3769 supports first-level path3770 when using second-level path3771 supports second-level path3772 when using too deep nesting in the path3773 does not support three-levels of nesting3774 #repository_name3775 when project does not exist3776 returns nil3777 when project exists3778 when project path equal repository path3779 returns an empty string3780 when repository path has one additional level3781 returns a correct repository name3782 when repository path has two additional levels3783 returns a correct repository name3784 #project_path3785 when project does not exist3786 returns nil3787 when project with uppercase characters in path exists3788 returns downcased project path3789Clusters::Applications::Prometheus3790 should belong to cluster3791 should validate that :cluster cannot be empty/falsy3792 #name3793 is .application_name3794 is recorded in Clusters::Cluster::APPLICATIONS3795 status state machine3796 #make_installing3797 is installing3798 #make_installed3799 is installed3800 #make_errored3801 is errored3802 #make_scheduled3803 is scheduled3804 when was errored3805 clears #status_reason3806 #status3807 sets a default status3808 when application helm is scheduled3809 defaults to :not_installable3810 when application is scheduled3811 sets a default status3812 .installed3813 should contain exactly #<Clusters::Applications::Prometheus id: 6, cluster_id: 78, status: 3, version: "2.0.0", status_reason: nil, created_at: "2018-06-26 13:50:05", updated_at: "2018-06-26 13:50:05">3814 transition to installed3815 ensures Prometheus service is activated3816 #prometheus_client3817 cluster is nil3818 returns nil3819 cluster doesn't have kubeclient3820 returns nil3821 cluster has kubeclient3822 creates proxy prometheus rest client3823 creates proper url3824 copies options and headers from kube client to proxy client3825 when cluster is not reachable3826 returns nil3827 #install_command3828 should be an instance of Gitlab::Kubernetes::Helm::InstallCommand3829 should be initialized with 3 arguments3830 #values3831 should include prometheus valid values3832Projects::DeployKeysController3833 GET index3834 when html requested3835 redirects to blob3836 when json requested3837 returns json in a correct format3838Gitlab::CycleAnalytics::BaseEventFetcher3839 limits the rows to the max number3840FillFileStore3841 correctly migrates nullified file_store/store column3842Banzai::Filter::GollumTagsFilter3843 validation3844 ensure that a :project_wiki key exists in context3845 linking internal images3846 creates img tag if image exists3847 does not creates img tag if image does not exist3848 linking external images3849 creates img tag for valid URL3850 does not creates img tag for invalid URL3851 linking external resources3852 the created link's text will be equal to the resource's text3853 the created link's text will be link-text3854 linking internal resources3855 the created link's text includes the resource's text and wiki base path3856 the created link's text will be link-text3857 inside back ticks will be exempt from linkification3858 table of contents3859 replaces [[<em>TOC</em>]] with ToC result3860 handles an empty ToC result3861mail_room.yml3862 when incoming email is disabled3863 contains no configuration3864 when incoming email is enabled3865 contains the intended configuration3866Groups::NestedCreateService3867 without subgroups3868 creates the group3869 returns the group if it already existed3870 raises an error when tring to create a subgroup3871 behaves like with a visibility level3872 creates the group with correct visibility level3873 adding a visibility level3874 overwrites the visibility level3875 with subgroups3876 #execute3877 returns the group if it already existed (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3878 reuses a parent if it already existed (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3879 creates group and subgroup in the database (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3880 behaves like with a visibility level3881 creates the group with correct visibility level (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3882 adding a visibility level3883 overwrites the visibility level (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)3884Disable individual triggers3885 service has multiple supported events3886 shows trigger checkboxes3887 services only has one supported event3888 doesn't show unnecessary Trigger checkboxes3889PruneOldEventsWorker3890 #perform3891 prunes events older than 12 months3892 leaves fresh events3893 leaves events from exactly 12 months ago3894Gitlab::Ci::Pipeline::Chain::Validate::Abilities3895 when users has no ability to run a pipeline3896 adds an error about insufficient permissions3897 breaks the pipeline builder chain3898 when user has ability to create a pipeline3899 does not invalidate the pipeline3900 does not break the chain3901 #allowed_to_create?3902 when user is a developer3903 should be truthy3904 when the branch is protected3905 should be falsey3906 when developers are allowed to merge3907 should be truthy3908 when the tag is protected3909 should be falsey3910 when developers are allowed to create the tag3911 should be truthy3912 when user is a master3913 should be truthy3914 when the branch is protected3915 should be truthy3916 when the tag is protected3917 should be truthy3918 when no one can create the tag3919 should be falsey3920 when owner cannot create pipeline3921 should be falsey3922gitlab:traces rake tasks3923 when trace file stored in default path3924 behaves like passes the job id to worker3925I, [2018-06-26T13:50:28.660527 #84] INFO -- : Archiving legacy traces3926I, [2018-06-26T13:50:28.664467 #84] INFO -- : Scheduled 1 jobs. From [96] to [96]3927 should receive bulk_perform_async([[96]]) 1 time3928 when trace is stored in database3929 behaves like passes the job id to worker3930I, [2018-06-26T13:50:28.887145 #84] INFO -- : Archiving legacy traces3931I, [2018-06-26T13:50:28.890124 #84] INFO -- : Scheduled 1 jobs. From [97] to [97]3932 should receive bulk_perform_async([[97]]) 1 time3933 when job has trace artifact3934 behaves like does not pass the job id to worker3935I, [2018-06-26T13:50:29.129417 #84] INFO -- : Archiving legacy traces3936 should not receive bulk_perform_async(*(any args)) 0 times3937 when job is not finished yet3938 behaves like does not pass the job id to worker3939I, [2018-06-26T13:50:29.389446 #84] INFO -- : Archiving legacy traces3940 should not receive bulk_perform_async(*(any args)) 0 times3941Gitlab::Ci::Status::Build::Retried3942 #text3943 does not override status text3944 #icon3945 does not override status icon3946 #group3947 does not override status group3948 #favicon3949 does not override status label3950 #label3951 does not override status label3952 #badge_tooltip3953 returns status3954 #status_tooltip3955 with a failed build3956 does override status_tooltip3957 with another build3958 does override status_tooltip3959 .matches?3960 with a retried build3961 should be truthy3962 with a build that has not been retried3963 should be falsy3964Ci::PipelineSchedule3965 should belong to project3966 should belong to owner3967 should have many pipelines3968 should have many variables3969 should respond to #ref3970 should respond to #cron3971 should respond to #cron_timezone3972 should respond to #description3973 should respond to #next_run_at3974 validations3975 does not allow invalid cron patters3976 does not allow invalid cron patters3977 when active is false3978 does not allow nullified ref3979 #set_next_run_at3980 when creates new pipeline schedule3981 updates next_run_at automatically3982 when updates cron of exsisted pipeline schedule3983 updates next_run_at automatically3984 #schedule_next_run!3985 when reschedules after 10 days from now3986 points to proper next_run_at3987 #real_next_run3988 when GitLab time_zone is UTC3989 when cron_timezone is Eastern Time (US & Canada)3990 returns the next time worker executes3991 #job_variables3992 should contain exactly {:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false} and {:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false}3993Gitlab::Ci::Charts3994 yearchart3995 goes until the end of the current month (including the whole last day of the month)3996 starts at the beginning of the current year3997 monthchart3998 includes the whole current day3999 starts one month ago4000 weekchart4001 includes the whole current day4002 starts one week ago4003 pipeline_times4004 returns pipeline times in minutes4005 handles nil pipeline times4006Gitlab::Kubernetes::Helm::InstallCommand4007 behaves like helm commands4008 #generate_script4009 should return appropriate command4010 with an application with a repository4011 behaves like helm commands4012 #generate_script4013 should return appropriate command4014 #config_map?4015 should be truthy4016 #config_map_resource4017 returns a KubeClient resource with config map content for the application4018RescheduleCommitsCountForMergeRequestDiff4019 correctly schedules background migrations4020Tree4021 #readme4022 returns nil when repository does not contains a README file4023 returns nil when repository does not contains a previewable README file4024 returns README when repository contains a previewable README file4025 returns first previewable README when repository contains more than one4026 returns first plain text README when repository contains more than one4027 prioritizes previewable README file over one in plain text4028Projects::GitlabProjectsImportService4029 #execute4030 with an invalid path4031 returns an invalid project4032 with a valid path4033 creates a project4034 override params4035 stores them as import data when passed4036 when there is a project with the same path4037 does not create the project4038 when overwrite param is set4039 creates a project in a temporary full_path4040GoogleApi::AuthorizationsController4041 GET|POST #callback4042 sets token and expires_at in session4043 when redirect uri key is stored in state4044 redirects to the URL stored in state param4045 when redirection url is not stored in state4046 redirects to root_path4047Gitlab::ImportExport::WikiRestorer4048 restore a wiki Git repo4049 restores the wiki repo successfully4050 no wiki in the bundle4051 creates an empty wiki4052Gitlab::BackgroundMigration::PopulateImportState4053 creates new import_state records with project's import data4054RenameDuplicatedVariableKey4055 correctly remove duplicated records with smaller id4056Gitlab::CycleAnalytics::PlanEventFetcher4057 behaves like default query config4058 has the stage attribute4059 has the projection attributes4060 no commits4061 does not blow up if there are no commits4062RemoveOldWebHookLogsWorker4063 #perform4064 removes web hook logs older than 2 days4065ProjectMigrateHashedStorageWorker4066 #perform4067 when have exclusive lease4068 skips when project no longer exists4069 skips when project is pending delete4070 delegates removal to service class4071 when dont have exclusive lease4072 skips when dont have lease4073Admin::DashboardController4074 #index4075 allows an admin user to access the page4076 does not allow an auditor user to access the page4077 does not allow a regular user to access the page4078 with pending_delete projects4079 does not retrieve projects that are pending deletion4080BlobViewer::License4081 #license4082 returns the blob project repository license4083 #render_error4084 when there is no license4085 returns :unknown_license4086 when there is a license4087 returns nil4088Gitlab::WikiFileFinder4089 #find4090 behaves like file finder4091 finds by name4092 finds by content4093Banzai::Pipeline::FullPipeline4094 References4095 handles markdown inside a reference4096 sanitizes reference HTML4097 escapes the data-original attribute on a reference4098UserPolicy4099 reading a user's information4100 should be allowed :read_user4101 destroying a user4102 behaves like changing a user4103 when a regular user tries to destroy another regular user4104 should not be allowed :destroy_user4105 when a regular user tries to destroy themselves4106 should be allowed :destroy_user4107 when an admin user tries to destroy a regular user4108 should be allowed :destroy_user4109 when an admin user tries to destroy a ghost user4110 should not be allowed :destroy_user4111 updating a user4112 behaves like changing a user4113 when a regular user tries to destroy another regular user4114 should not be allowed :update_user4115 when a regular user tries to destroy themselves4116 should be allowed :update_user4117 when an admin user tries to destroy a regular user4118 should be allowed :update_user4119 when an admin user tries to destroy a ghost user4120 should not be allowed :update_user4121CacheableAttributes4122 .current_without_cache4123 defaults to last4124 can be overriden4125 .cache_key4126 excludes cache attributes4127 .defaults4128 defaults to {}4129 with defaults defined4130 can be overriden4131 .build_from_defaults4132 without any attributes given4133 intializes a new object with the defaults4134 with attributes given4135 intializes a new object with the given attributes merged into the defaults4136 edge cases on concrete implementations4137 .build_from_defaults4138 without any attributes given4139 intializes all attributes even if they are nil4140 .current4141 uses RequestStore in addition to Rails.cache4142 redis unavailable4143 in production environment4144 returns an uncached record and logs a warning4145 in other environments4146 returns an uncached record and logs a warning4147 when a record is not yet present4148 does not cache nil object4149 caches non-nil object4150 edge cases4151 caching behavior4152 retrieves upload fields properly4153 retrieves markdown fields properly4154 .cached4155 when cache is cold4156 returns nil4157 when cached is warm4158 retrieves the record from cache4159 #cache!4160 caches the attributes4161 edge cases4162 caches the attributes4163MergeRequestBasicSerializer4164 matches basic merge request json4165gitlab:workhorse namespace rake task4166 install4167 no dir given4168 aborts and display a help message4169 when an underlying Git command fail4170 aborts and display a help message4171 checkout or clone4172 calls checkout_or_clone_version with the right arguments4173 gmake/make4174 gmake is available4175 calls gmake in the gitlab-workhorse directory4176 gmake is not available4177 calls make in the gitlab-workhorse directory4178Gitlab::CycleAnalytics::TestEventFetcher4179 behaves like default query config4180 has the stage attribute4181 has the projection attributes4182 has a default order4183MailScheduler::IssueDueWorker4184 #perform4185 sends emails for open issues due tomorrow in the project specified4186User views merged merge requests4187 shows merged merge requests4188Projects > Members > Owner cannot request access to his project4189 owner does not see the request access button4190Keys::DestroyService4191 destroys a key4192WikiDirectory4193 validations4194 should validate that :slug cannot be empty/falsy4195 #initialize4196 when there are pages4197 sets the slug attribute4198 sets the pages attribute4199 when there are no pages4200 sets the slug attribute4201 sets the pages attribute to an empty array4202 #to_partial_path4203 returns the relative path to the partial to be used4204ContinueParams4205 cleans up any params that are not allowed4206 does not allow cross host redirection4207 allows redirecting to a path with querystring4208Gitlab::GithubImport::Stage::FinishImportWorker4209 #perform4210 marks the import as finished4211 #report_import_time4212 reports the total import time4213Participable4214 .participant4215 adds the participant attributes to the existing list4216 #participants4217 returns the list of participants4218 caches the raw list of participants4219 supports attributes returning another Participable4220 when using a Proc as an attribute4221 calls the supplied Proc4222BuildTraceSectionsWorker4223 #perform4224 when build exists4225 updates trace sections4226 when build does not exist4227 does not raise exception4228ServiceHook4229 associations4230 should belong to service4231 validations4232 should validate that :service cannot be empty/falsy4233 execute4234 #execute4235LfsObjectsProject4236 associations4237 should belong to project4238 should belong to lfs_object4239 validation4240 should validate that :lfs_object_id cannot be empty/falsy4241 should validate that :project_id cannot be empty/falsy4242 validates object id4243 #update_project_statistics4244 updates project statistics when the object is added4245 updates project statistics when the object is removed4246Projects::OpenMergeRequestsCountService4247 #count4248 returns the number of open merge requests4249CreateSnippetService4250 When public visibility is restricted4251 non-admins are not able to create a public snippet4252 admins are able to create a public snippet4253Oauth::ApplicationsController4254 project members4255 GET #index4256 shows list of applications4257 redirects back to profile page if OAuth applications are disabled4258Gitlab::EncodingHelper4259 #encode!4260 nil4261 empty string4262 invalid utf-8 encoded string4263 frozen non-ascii string4264 leaves ascii only string as is4265 leaves valid utf8 string as is4266 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.4267 string with detected encoding that is not supported in Ruby4268 leaves binary string as is4269 with corrupted diff4270 does not corrupt data but remove invalid characters4271 #encode_utf84272 nil4273 empty string4274 invalid utf-8 encoded string4275 encodes valid utf8 encoded string to utf84276 encodes valid ASCII-8BIT encoded string to utf84277 encodes valid ISO-8859-1 encoded string to utf84278 Equifax branch name4279WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` 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/encoding_helper_spec.rb:126:in `block (3 levels) in <top (required)>'.4280 returns empty string on conversion errors4281 with strings that can be forcefully encoded into utf84282 doesn't use CharlockHolmes if the encoding can be forced into utf_84283 #clean4284 leaves ascii only string as is4285 leaves valid utf8 string as is4286 removes invalid bytes from ASCII-8bit encoded multibyte string.4287 handles UTF-16BE encoded strings4288 encode_binary4289 encodes nil to ""4290 encodes "" to ""4291 encodes " " to " "4292 encodes "a1" to "a1"4293 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"4294Gitlab::Ci::Config::Entry::Policy4295 when using simplified policy4296 validations4297 when entry config value is valid4298 when config is a branch or tag name4299 #valid?4300 is valid4301 #value4302 returns refs hash4303 when config is a regexp4304 #valid?4305 is valid4306 when config is a special keyword4307 #valid?4308 is valid4309 when entry value is not valid4310 #errors4311 saves errors4312 when using complex policy4313 when specifiying refs policy4314 is a correct configuraton4315 when specifying kubernetes policy4316 is a correct configuraton4317 when specifying invalid kubernetes policy4318 reports an error about invalid policy4319 when specifying valid variables expressions policy4320 is a correct configuraton4321 when specifying variables expressions in invalid format4322 reports an error about invalid format4323 when specifying invalid variables expressions statement4324 reports an error about invalid statement4325 when specifying invalid variables expressions token4326 reports an error about invalid expression4327 when using invalid variables expressions regexp4328 reports an error about invalid expression4329 when specifying unknown policy4330 returns error about invalid key4331 when policy is empty4332 is not a valid configuration4333 when policy strategy does not match4334 returns information about errors4335 .default4336 does not have a default value4337LfsObject4338 #local_store?4339 returns true when file_store is nil4340 returns true when file_store is equal to LfsObjectUploader::Store::LOCAL4341 returns false whe file_store is equal to LfsObjectUploader::Store::REMOTE4342 #schedule_background_upload4343 when object storage is disabled4344 does not schedule the migration4345 when object storage is enabled4346 when background upload is enabled4347 when is licensed4348 schedules the model for migration4349 schedules the model for migration once4350 when background upload is disabled4351 schedules the model for migration4352 file is being stored4353 when object has nil store4354 is stored locally4355 when existing object has local store4356 is stored locally4357 when direct upload is enabled4358 when file is stored4359 is stored remotely4360Gitlab::Diff::Parser4361 #parse4362 should eq 304363 lines4364 first line4365 should eq "match"4366 should eq 64367 should eq 64368 should eq "@@ -6,12 +6,18 @@ module Popen"4369 removal line4370 should eq "old"4371 should eq 144372 should eq 134373 should eq "- options = { chdir: path }"4374 addition line4375 should eq "new"4376 should eq 154377 should eq 184378 should eq "+ options = {"4379 unchanged line4380 should eq nil4381 should eq 244382 should eq 314383 should eq " @cmd_output << stderr.read"4384 \ No newline at end of file4385 parses nonewline in one file correctly4386 parses nonewline in two files correctly4387 when lines is empty4388 should eq []4389 should eq []4390 tolerates special diff markers in a content4391 counts lines correctly4392RuboCop::Cop::Migration::ReversibleAddColumnWithDefault4393 in migration4394 registers an offense when add_column_with_default is used inside a change method4395 registers no offense when add_column_with_default is used inside an up method4396 outside of migration4397 registers no offense4398Gitlab::Git::AttributesParser4399 #attributes4400 using a path with attributes4401 returns the attributes as a Hash4402 returns a Hash containing multiple attributes4403 returns a Hash containing attributes for a file with multiple extensions4404 returns a Hash containing attributes for a file in a directory4405 returns a Hash containing attributes with query string parameters4406 returns a Hash containing the attributes for an absolute path4407 returns a Hash containing the attributes when a pattern is defined using an absolute path4408 returns an empty Hash for a defined path without attributes4409 when the "binary" option is set for a path4410 returns true for the "binary" option4411 returns false for the "diff" option4412 using a path without any attributes4413 returns an empty Hash4414 when attributes data is nil4415 returns an empty Hash4416 #patterns4417 parses a file with entries4418 parses an entry that uses a tab to separate the pattern and attributes4419 stores patterns in reverse order4420 ignores any comments and empty lines4421 #parse_attributes4422 parses a boolean attribute4423 parses a negated boolean attribute4424 parses a key-value pair4425 parses multiple attributes4426 parses attributes with query string parameters4427 #each_line4428 iterates over every line in the attributes file4429 does not yield when the attributes file has an unsupported encoding4430PageLayoutHelper4431 page_description4432 defaults to nil4433 returns the last-pushed description4434 squishes multiple newlines4435 truncates4436 sanitizes all HTML4437 page_image4438 defaults to the GitLab logo4439 with @project assigned4440 uses Project avatar if available4441 falls back to the default when avatar_url is nil4442 with no assignments4443 falls back to the default4444 with @user assigned4445 uses User avatar if available4446 falls back to the default when avatar_url is nil4447 with no assignments4448 falls back to the default4449 with @group assigned4450 uses Group avatar if available4451 falls back to the default when avatar_url is nil4452 with no assignments4453 falls back to the default4454 page_card_attributes4455 raises ArgumentError when given more than two attributes4456 rejects blank values4457 page_card_meta_tags4458 returns the twitter:label and twitter:data tags4459 escapes content4460TriggerableHooks4461 scopes4462 defines a scope for each of the requested triggers4463 .hooks_for4464 the model has the required trigger scope4465 returns the record4466 the model does not have the required trigger scope4467 returns an empty relation4468 the stock scope ".all" is accepted4469 returns the record4470Gitlab::SQL::RecursiveCTE4471 #to_arel4472 generates an Arel relation for the CTE body (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4473 #alias_to4474 returns an alias for the CTE (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4475 #apply_to4476 applies a CTE to an ActiveRecord::Relation (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4477Gitlab::ImportExport::FileImporter4478 normal run4479 removes symlinks in root folder4480 removes hidden symlinks in root folder4481 removes symlinks in subfolders4482 does not remove a valid file4483 creates the file in the right subfolder4484 error4485 removes symlinks in root folder4486 removes hidden symlinks in root folder4487 removes symlinks in subfolders4488 does not remove a valid file4489DiffViewer::ServerSide4490 #prepare!4491 loads all diff file data4492 #render_error4493 when the diff file is stored externally4494 return :server_side_but_stored_externally4495Resolvers::ProjectResolver4496 #resolve4497 batch-resolves projects by full path4498 resolves an unknown full_path to nil4499BasePolicy4500 .class_for4501 detects policy class based on the subject ancestors4502 detects policy class for a presented subject4503 uses GlobalPolicy when :global is given4504Gitlab::Metrics::Samplers::RubySampler4505 #sample4506 samples various statistics4507 adds a metric containing the memory usage4508 adds a metric containing the amount of open file descriptors4509 clears any GC profiles4510 #sample_gc4511 adds a metric containing garbage collection time statistics4512 adds a metric containing garbage collection statistics4513RspecFlaky::Example4514 #initialize4515 when given an Rspec::Core::Example that responds to #example4516 behaves like a valid Example instance4517 returns valid attributes4518 when given an Rspec::Core::Example that does not respond to #example4519 behaves like a valid Example instance4520 returns valid attributes4521 #uid4522 returns a hash of the full description4523 #example_id4524 returns the ID of the RSpec::Core::Example4525 #attempts4526 returns the attempts of the RSpec::Core::Example4527 #file4528 returns the metadata[:file_path] of the RSpec::Core::Example4529 #line4530 returns the metadata[:line_number] of the RSpec::Core::Example4531 #description4532 returns the metadata[:full_description] of the RSpec::Core::Example4533 #status4534 returns the execution_result.status of the RSpec::Core::Example4535 #exception4536 returns the execution_result.exception of the RSpec::Core::Example4537Gitlab::Kubernetes::Namespace4538 should eq "a_namespace"4539 #exists?4540 when namespace do not exits4541 returns false4542 when namespace exits4543 returns true4544 when cluster cannot be reached4545 raises exception4546 #create!4547 creates a namespace4548 #ensure_exists!4549 checks for existing namespace before creating4550 do not re-create an existing namespace4551Gitlab::Metrics::SidekiqMiddleware4552 #call4553 tracks the transaction4554 tracks the transaction (for messages without `enqueued_at`)4555 tracks any raised exceptions4556TabHelper4557 nav_link4558 captures block output4559 performs checks on the current controller4560 performs checks on the current action4561 performs checks on both controller and action when both are present4562 accepts a path shorthand4563 passes extra html options to the list element4564Gitlab::Ci::Config::Entry::Undefined4565 #leaf?4566 is leaf node4567 #valid?4568 is always valid4569 #errors4570 is does not contain errors4571 #value4572 returns nil4573 #relevant?4574 is not relevant4575 #specified?4576 is not defined4577Gitlab::StorageCheck::Response4578 #valid?4579 is valid for a success response with parseable JSON4580 #check_interval4581 returns the result from the JSON4582 #responsive_shards4583 contains the names of working shards4584 #skipped_shards4585 contains the names of skipped shards4586 #failing_shards4587 contains the name of failing shards4588Gitlab::Metrics::RequestsRackMiddleware4589 #call4590 @app.call succeeds with 2004591 increments requests count4592 measures execution time4593 @app.call throws exception4594 increments exceptions count4595 increments requests count4596 does't measure request execution time4597Gitlab::Ci::Status::Failed4598 #text4599 should eq "failed"4600 #label4601 should eq "failed"4602 #icon4603 should eq "status_failed"4604 #favicon4605 should eq "favicon_status_failed"4606 #group4607 should eq "failed"4608Gitlab::ImportExport::AttributeCleaner4609 removes unwanted attributes from the hash4610 removes attributes not present in relation_class4611 removes excluded keys from the hash4612 does not remove excluded key if not listed4613Gitlab::PollingInterval4614 .set_header4615 when polling is disabled4616 sets value to -14617 when polling is enabled4618 applies modifier to base interval4619Project4620 should eq "Project"4621 nested merge request4622 should have graphql field :merge_request4623 authorizes the merge request4624Gitlab::GitalyClient::StorageSettings4625 #initialize4626 when the storage contains no path4627 raises an error4628 when the argument isn't a hash4629 raises an error4630 when the storage is valid4631 raises no error4632Gitlab::GithubImport::Importer::IssueAndLabelLinksImporter4633 #execute4634 imports an issue and its labels4635Gitlab::CiAccess4636 #can_do_action?4637 when action is :build_download_code4638 should be truthy4639 when action is not :build_download_code4640 should be falsey4641Gitlab::GithubImport::ImportIssueWorker4642 #import4643 imports an issue4644Banzai::Filter::MermaidFilter4645 adds `js-render-mermaid` class to the `code` tag4646Knapsack report was generated. Preview:4647{4648 "spec/lib/gitlab/cycle_analytics/events_spec.rb": 97.81130695343018,4649 "spec/features/merge_request/user_sees_merge_widget_spec.rb": 44.88989591598511,4650 "spec/requests/api/branches_spec.rb": 45.470651388168335,4651 "spec/features/discussion_comments/merge_request_spec.rb": 39.20793294906616,4652 "spec/models/cycle_analytics/code_spec.rb": 35.44475317001343,4653 "spec/models/issue_spec.rb": 26.32977318763733,4654 "spec/models/gpg_key_subkey_spec.rb": 24.919328451156616,4655 "spec/services/boards/issues/list_service_spec.rb": 12.940368890762329,4656 "spec/features/search/user_uses_header_search_field_spec.rb": 16.575183868408203,4657 "spec/lib/banzai/filter/label_reference_filter_spec.rb": 15.09602665901184,4658 "spec/services/merge_requests/squash_service_spec.rb": 13.489863872528076,4659 "spec/features/explore/groups_spec.rb": 11.516001462936401,4660 "spec/features/merge_request/user_assigns_themselves_spec.rb": 8.706855535507202,4661 "spec/requests/api/search_spec.rb": 11.164996862411499,4662 "spec/features/projects/blobs/blob_line_permalink_updater_spec.rb": 9.337178468704224,4663 "spec/features/projects/tree/create_directory_spec.rb": 7.756956577301025,4664 "spec/features/search/user_searches_for_commits_spec.rb": 5.747340440750122,4665 "spec/controllers/projects/discussions_controller_spec.rb": 8.705509424209595,4666 "spec/features/milestone_spec.rb": 7.096560001373291,4667 "spec/lib/gitlab/bare_repository_import/importer_spec.rb": 3.8171136379241943,4668 "spec/lib/banzai/filter/external_issue_reference_filter_spec.rb": 7.661059379577637,4669 "spec/finders/groups_finder_spec.rb": 2.9802162647247314,4670 "spec/models/concerns/relative_positioning_spec.rb": 5.180687665939331,4671 "spec/features/groups/members/request_access_spec.rb": 5.9674787521362305,4672 "spec/features/help_pages_spec.rb": 5.85050368309021,4673 "spec/controllers/projects/variables_controller_spec.rb": 4.301215171813965,4674 "spec/controllers/snippets_controller_spec.rb": 4.834798574447632,4675 "spec/services/labels/transfer_service_spec.rb": 3.8582262992858887,4676 "spec/features/admin/admin_labels_spec.rb": 3.7208950519561768,4677 "spec/features/atom/dashboard_issues_spec.rb": 3.0240392684936523,4678 "spec/features/profiles/user_visits_profile_spec.rb": 3.191312551498413,4679 "spec/migrations/active_record/schedule_set_confidential_note_events_on_services_spec.rb": 2.1842634677886963,4680 "spec/lib/gitlab/slash_commands/command_spec.rb": 3.0806260108947754,4681 "spec/controllers/projects/todos_controller_spec.rb": 2.9373323917388916,4682 "spec/routing/group_routing_spec.rb": 2.7677159309387207,4683 "spec/controllers/groups/variables_controller_spec.rb": 2.3401708602905273,4684 "spec/controllers/sent_notifications_controller_spec.rb": 3.5478920936584473,4685 "spec/models/clusters/applications/ingress_spec.rb": 2.3556787967681885,4686 "spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb": 2.365276336669922,4687 "spec/controllers/registrations_controller_spec.rb": 2.2308757305145264,4688 "spec/models/generic_commit_status_spec.rb": 1.8070638179779053,4689 "spec/lib/container_registry/path_spec.rb": 2.05964732170105,4690 "spec/models/clusters/applications/prometheus_spec.rb": 2.0752179622650146,4691 "spec/controllers/projects/deploy_keys_controller_spec.rb": 1.733283281326294,4692 "spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb": 2.039658784866333,4693 "spec/migrations/fill_file_store_spec.rb": 2.6499900817871094,4694 "spec/lib/banzai/filter/gollum_tags_filter_spec.rb": 1.9601247310638428,4695 "spec/config/mail_room_spec.rb": 1.2020249366760254,4696 "spec/services/groups/nested_create_service_spec.rb": 0.4764134883880615,4697 "spec/features/projects/services/disable_triggers_spec.rb": 2.321871519088745,4698 "spec/workers/prune_old_events_worker_spec.rb": 1.3792343139648438,4699 "spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb": 1.233790397644043,4700 "spec/tasks/gitlab/traces_rake_spec.rb": 1.3788220882415771,4701 "spec/lib/gitlab/ci/status/build/retried_spec.rb": 1.1299467086791992,4702 "spec/models/ci/pipeline_schedule_spec.rb": 1.26106595993042,4703 "spec/lib/gitlab/ci/charts_spec.rb": 1.0803358554840088,4704 "spec/lib/gitlab/kubernetes/helm/install_command_spec.rb": 0.6517050266265869,4705 "spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb": 1.566338062286377,4706 "spec/models/tree_spec.rb": 1.4876625537872314,4707 "spec/services/projects/gitlab_projects_import_service_spec.rb": 1.1325640678405762,4708 "spec/controllers/google_api/authorizations_controller_spec.rb": 1.1969168186187744,4709 "spec/lib/gitlab/import_export/wiki_restorer_spec.rb": 0.9441413879394531,4710 "spec/lib/gitlab/background_migration/populate_import_state_spec.rb": 2.1104257106781006,4711 "spec/migrations/rename_duplicated_variable_key_spec.rb": 1.9430322647094727,4712 "spec/lib/gitlab/cycle_analytics/plan_event_fetcher_spec.rb": 0.7278256416320801,4713 "spec/workers/remove_old_web_hook_logs_worker_spec.rb": 0.5665733814239502,4714 "spec/workers/project_migrate_hashed_storage_worker_spec.rb": 0.6908395290374756,4715 "spec/controllers/admin/dashboard_controller_spec.rb": 0.7677555084228516,4716 "spec/models/blob_viewer/license_spec.rb": 0.6379785537719727,4717 "spec/lib/gitlab/wiki_file_finder_spec.rb": 0.6745634078979492,4718 "spec/lib/banzai/pipeline/full_pipeline_spec.rb": 0.5859615802764893,4719 "spec/policies/user_policy_spec.rb": 0.5639727115631104,4720 "spec/models/concerns/cacheable_attributes_spec.rb": 0.5479815006256104,4721 "spec/serializers/merge_request_basic_serializer_spec.rb": 0.4613335132598877,4722 "spec/tasks/gitlab/workhorse_rake_spec.rb": 0.5230185985565186,4723 "spec/lib/gitlab/cycle_analytics/test_event_fetcher_spec.rb": 0.4325859546661377,4724 "spec/workers/mail_scheduler/issue_due_worker_spec.rb": 0.38259410858154297,4725 "spec/features/projects/merge_requests/user_views_merged_merge_requests_spec.rb": 0.37368011474609375,4726 "spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb": 0.31459593772888184,4727 "spec/services/keys/destroy_service_spec.rb": 0.37245678901672363,4728 "spec/models/wiki_directory_spec.rb": 0.36731505393981934,4729 "spec/controllers/concerns/continue_params_spec.rb": 0.33834147453308105,4730 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 0.269028902053833,4731 "spec/models/concerns/participable_spec.rb": 0.1859121322631836,4732 "spec/workers/build_trace_sections_worker_spec.rb": 0.30039072036743164,4733 "spec/models/hooks/service_hook_spec.rb": 0.20277833938598633,4734 "spec/models/lfs_objects_project_spec.rb": 0.22094082832336426,4735 "spec/services/projects/open_merge_requests_count_service_spec.rb": 0.22927260398864746,4736 "spec/services/create_snippet_service_spec.rb": 0.15618538856506348,4737 "spec/controllers/oauth/applications_controller_spec.rb": 0.1699540615081787,4738 "spec/lib/gitlab/encoding_helper_spec.rb": 0.08725714683532715,4739 "spec/lib/gitlab/ci/config/entry/policy_spec.rb": 0.09391665458679199,4740 "spec/models/lfs_object_spec.rb": 0.39345788955688477,4741 "spec/lib/gitlab/diff/parser_spec.rb": 0.06295180320739746,4742 "spec/rubocop/cop/migration/reversible_add_column_with_default_spec.rb": 0.103668212890625,4743 "spec/lib/gitlab/git/attributes_parser_spec.rb": 0.07770466804504395,4744 "spec/helpers/page_layout_helper_spec.rb": 0.10455799102783203,4745 "spec/models/concerns/triggerable_hooks_spec.rb": 0.06954574584960938,4746 "spec/lib/gitlab/import_export/file_importer_spec.rb": 0.050826072692871094,4747 "spec/models/diff_viewer/server_side_spec.rb": 0.048458099365234375,4748 "spec/graphql/resolvers/project_resolver_spec.rb": 0.05239391326904297,4749 "spec/policies/base_policy_spec.rb": 0.03905081748962402,4750 "spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb": 0.06481337547302246,4751 "spec/lib/rspec_flaky/example_spec.rb": 0.03174400329589844,4752 "spec/lib/gitlab/kubernetes/namespace_spec.rb": 0.027354955673217773,4753 "spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb": 0.01776742935180664,4754 "spec/helpers/tab_helper_spec.rb": 0.0650782585144043,4755 "spec/lib/gitlab/ci/config/entry/undefined_spec.rb": 0.015801191329956055,4756 "spec/lib/gitlab/storage_check/response_spec.rb": 0.017201662063598633,4757 "spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb": 0.023737430572509766,4758 "spec/lib/gitlab/ci/status/failed_spec.rb": 0.013576745986938477,4759 "spec/lib/gitlab/import_export/attribute_cleaner_spec.rb": 0.014688968658447266,4760 "spec/lib/gitlab/polling_interval_spec.rb": 0.019170761108398438,4761 "spec/graphql/types/project_type_spec.rb": 0.010398149490356445,4762 "spec/lib/gitlab/gitaly_client/storage_settings_spec.rb": 0.008879899978637695,4763 "spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb": 0.00776219367980957,4764 "spec/lib/gitlab/ci_access_spec.rb": 0.00617527961730957,4765 "spec/workers/gitlab/github_import/import_issue_worker_spec.rb": 0.012594223022460938,4766 "spec/lib/banzai/filter/mermaid_filter_spec.rb": 0.00572609901428222664767}4768Knapsack global time execution for tests: 09m 29s4769Pending: (Failures listed here are expected and do not affect your suite's status)4770 1) Issue modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required does not validate presence4771 # No reason given4772 # ./spec/support/shared_examples/models/atomic_internal_id_spec.rb:334773 2) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service delegates search to IssuesFinder4774 # around hook at ./spec/spec_helper.rb:198 did not execute the example4775 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:24776 3) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service issues are ordered by priority returns opened issues when list_id is missing4777 # around hook at ./spec/spec_helper.rb:198 did not execute the example4778 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:114779 4) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service issues are ordered by priority returns opened issues when listing issues from Backlog4780 # around hook at ./spec/spec_helper.rb:198 did not execute the example4781 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:194782 5) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service issues are ordered by priority returns closed issues when listing issues from Closed4783 # around hook at ./spec/spec_helper.rb:198 did not execute the example4784 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:274785 6) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service issues are ordered by priority returns opened issues that have label list applied when listing issues from a label list4786 # around hook at ./spec/spec_helper.rb:198 did not execute the example4787 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:354788 7) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service with list that does not belong to the board raises an error4789 # around hook at ./spec/spec_helper.rb:198 did not execute the example4790 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:454791 8) Boards::Issues::ListService#execute when parent is a group and group is an ancestor behaves like issues list service with invalid list id raises an error4792 # around hook at ./spec/spec_helper.rb:198 did not execute the example4793 # ./spec/support/shared_examples/services/boards/issues_list_service.rb:544794 9) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute creates a project for a repository in storage4795 # around hook at ./spec/spec_helper.rb:198 did not execute the example4796 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:324797 10) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute skips wiki repos4798 # around hook at ./spec/spec_helper.rb:198 did not execute the example4799 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:424800 11) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute without admin users raises an error4801 # around hook at ./spec/spec_helper.rb:198 did not execute the example4802 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:554803 12) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed starts an import for a project that did not exist4804 # around hook at ./spec/spec_helper.rb:198 did not execute the example4805 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:624806 13) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed skips importing when the project already exists4807 # around hook at ./spec/spec_helper.rb:198 did not execute the example4808 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:684809 14) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed creates a project with the correct path in the database4810 # around hook at ./spec/spec_helper.rb:198 did not execute the example4811 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:774812 15) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed does not schedule an import4813 # around hook at ./spec/spec_helper.rb:198 did not execute the example4814 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:834815 16) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed creates the Git repo on disk with the proper symlink for hooks4816 # around hook at ./spec/spec_helper.rb:198 did not execute the example4817 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:894818 17) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed hashed storage enabled creates a project with the correct path in the database4819 # around hook at ./spec/spec_helper.rb:198 did not execute the example4820 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:1064821 18) GroupsFinder#execute subgroups without a user only returns parent and public subgroups4822 # around hook at ./spec/spec_helper.rb:198 did not execute the example4823 # ./spec/finders/groups_finder_spec.rb:764824 19) GroupsFinder#execute subgroups with a user returns parent, public, and internal subgroups4825 # around hook at ./spec/spec_helper.rb:198 did not execute the example4826 # ./spec/finders/groups_finder_spec.rb:844827 20) GroupsFinder#execute subgroups with a user being member returns parent, public subgroups, internal subgroups, and private subgroups user is member of4828 # around hook at ./spec/spec_helper.rb:198 did not execute the example4829 # ./spec/finders/groups_finder_spec.rb:894830 21) GroupsFinder#execute subgroups with a user parent group private being member of parent group returns all subgroups4831 # around hook at ./spec/spec_helper.rb:198 did not execute the example4832 # ./spec/finders/groups_finder_spec.rb:1024833 22) GroupsFinder#execute subgroups with a user parent group private authorized to private project project one level deep includes the subgroup of the project4834 # around hook at ./spec/spec_helper.rb:198 did not execute the example4835 # ./spec/finders/groups_finder_spec.rb:1164836 23) GroupsFinder#execute subgroups with a user parent group private authorized to private project project one level deep does not include private subgroups deeper down4837 # around hook at ./spec/spec_helper.rb:198 did not execute the example4838 # ./spec/finders/groups_finder_spec.rb:1204839 24) GroupsFinder#execute subgroups with a user parent group private authorized to private project project two levels deep returns all the ancestor groups4840 # around hook at ./spec/spec_helper.rb:198 did not execute the example4841 # ./spec/finders/groups_finder_spec.rb:1344842 25) GroupsFinder#execute subgroups with a user parent group private authorized to private project project two levels deep returns the groups for a given parent4843 # around hook at ./spec/spec_helper.rb:198 did not execute the example4844 # ./spec/finders/groups_finder_spec.rb:1384845 26) Groups routing legacy redirection edit behaves like redirecting a legacy path does not redirect /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource exists4846 # still rejected because of the wildcard reserved word4847 Failure/Error: create(:group, parent: group, path: 'edit')4848 ActiveRecord::RecordInvalid:4849 Validation failed: Path edit is a reserved name4850 Shared Example Group: "redirecting a legacy path" called from ./spec/routing/group_routing_spec.rb:964851 # ./spec/routing/group_routing_spec.rb:99:in `block (5 levels) in <top (required)>'4852 # ./spec/support/shared_examples/legacy_path_redirect_shared_examples.rb:9:in `block (2 levels) in <top (required)>'4853 27) Groups::NestedCreateService with subgroups #execute returns the group if it already existed4854 # around hook at ./spec/spec_helper.rb:198 did not execute the example4855 # ./spec/services/groups/nested_create_service_spec.rb:614856 28) Groups::NestedCreateService with subgroups #execute reuses a parent if it already existed4857 # around hook at ./spec/spec_helper.rb:198 did not execute the example4858 # ./spec/services/groups/nested_create_service_spec.rb:714859 29) Groups::NestedCreateService with subgroups #execute creates group and subgroup in the database4860 # around hook at ./spec/spec_helper.rb:198 did not execute the example4861 # ./spec/services/groups/nested_create_service_spec.rb:784862 30) Groups::NestedCreateService with subgroups #execute behaves like with a visibility level creates the group with correct visibility level4863 # around hook at ./spec/spec_helper.rb:198 did not execute the example4864 # ./spec/services/groups/nested_create_service_spec.rb:94865 31) Groups::NestedCreateService with subgroups #execute behaves like with a visibility level adding a visibility level overwrites the visibility level4866 # around hook at ./spec/spec_helper.rb:198 did not execute the example4867 # ./spec/services/groups/nested_create_service_spec.rb:194868 32) Gitlab::SQL::RecursiveCTE#to_arel generates an Arel relation for the CTE body4869 # around hook at ./spec/spec_helper.rb:202 did not execute the example4870 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:74871 33) Gitlab::SQL::RecursiveCTE#alias_to returns an alias for the CTE4872 # around hook at ./spec/spec_helper.rb:202 did not execute the example4873 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:264874 34) Gitlab::SQL::RecursiveCTE#apply_to applies a CTE to an ActiveRecord::Relation4875 # around hook at ./spec/spec_helper.rb:202 did not execute the example4876 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:374877Finished in 11 minutes 12 seconds (files took 26.24 seconds to load)48781468 examples, 0 failures, 34 pending4880$ date4881Tue Jun 26 13:52:06 UTC 20184884coverage/: found 5 matching files 4885knapsack/: found 5 matching files 4886rspec_flaky/: found 4 matching files 4887WARNING: tmp/capybara/: no matching files 4888Uploading artifacts to coordinator... ok id=77521951 responseStatus=201 Created token=7gQkSC-P4889Job succeeded