rspec-mysql 18 30
Passed Started
by
@groulot

Gilbert Roulot
1Running with gitlab-runner 11.0.0-rc1 (6dcccded)2 on docker-auto-scale-com 1d6b581d3Using 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-1d6b581d-project-278964-concurrent-0 via runner-1d6b581d-gsrm-1530019917-f55e93bd...
00:02
14 Cloning repository for 5488_license_management_app_blacklist_backend with git depth set to 20...
00:09
15Cloning into '/builds/gitlab-org/gitlab-ee'...16Checking out 9b412872 as 5488_license_management_app_blacklist_backend...17Skipping Git submodules setup19Downloading cache.zip from http://runners-cache-3-internal.gitlab.com:444/runner/project/278964/ruby-2.4.4-debian-stretch-with-yarn-1 20Successfully extracted cache22Downloading artifacts from coordinator... ok id=77521866 responseStatus=200 OK token=tTkyAyhq23Downloading artifacts for compile-assets (77521867)...24Downloading artifacts from coordinator... ok id=77521867 responseStatus=200 OK token=wmuNn8yw25Downloading artifacts for setup-test-env (77521869)...26Downloading artifacts from coordinator... ok id=77521869 responseStatus=200 OK token=1w6WnMuM27WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 29Bundler version 1.16.230$ date31Tue Jun 26 13:39:49 UTC 201832$ source scripts/utils.sh33$ date34Tue Jun 26 13:39:49 UTC 201835$ source scripts/prepare_build.sh36The Gemfile's dependencies are satisfied37Successfully installed knapsack-1.16.0381 gem installed39Database 'gitlabhq_test' does not exist40-- enable_extension("plpgsql")41 -> 0.0014s42-- enable_extension("pg_trgm")43 -> 0.0000s44-- create_table("abuse_reports", {:force=>:cascade})45 -> 0.0166s46-- create_table("appearances", {:force=>:cascade})47 -> 0.0129s48-- create_table("application_setting_terms", {:force=>:cascade})49 -> 0.0108s50-- create_table("application_settings", {:force=>:cascade})51 -> 0.0173s52-- create_table("approvals", {:force=>:cascade})53 -> 0.0106s54-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})55 -> 0.0142s56-- create_table("approver_groups", {:force=>:cascade})57 -> 0.0111s58-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})59 -> 0.0090s60-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})61 -> 0.0087s62-- create_table("approvers", {:force=>:cascade})63 -> 0.0107s64-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})65 -> 0.0095s66-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})67 -> 0.0089s68-- create_table("audit_events", {:force=>:cascade})69 -> 0.0114s70-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})71 -> 0.0096s72-- create_table("award_emoji", {:force=>:cascade})73 -> 0.0115s74-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})75 -> 0.0093s76-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})77 -> 0.0093s78-- create_table("badges", {:force=>:cascade})79 -> 0.0106s80-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})81 -> 0.0091s82-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})83 -> 0.0089s84-- create_table("board_assignees", {:force=>:cascade})85 -> 0.0112s86-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})87 -> 0.0095s88-- create_table("board_labels", {:force=>:cascade})89 -> 0.0106s90-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})91 -> 0.0091s92-- create_table("boards", {:force=>:cascade})93 -> 0.0124s94-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})95 -> 0.0088s96-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})97 -> 0.0085s98-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})99 -> 0.0084s100-- create_table("broadcast_messages", {:force=>:cascade})101 -> 0.0109s102-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})103 -> 0.0113s104-- create_table("chat_names", {:force=>:cascade})105 -> 0.0118s106-- 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})107 -> 0.0107s108-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})109 -> 0.0093s110-- create_table("chat_teams", {:force=>:cascade})111 -> 0.0106s112-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})113 -> 0.0090s114-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})115 -> 0.0112s116-- 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})117 -> 0.0106s118-- create_table("ci_build_trace_section_names", {:force=>:cascade})119 -> 0.0116s120-- 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})121 -> 0.0092s122-- create_table("ci_build_trace_sections", {:force=>:cascade})123 -> 0.0118s124-- 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})125 -> 0.0095s126-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})127 -> 0.0090s128-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})129 -> 0.0096s130-- create_table("ci_builds", {:force=>:cascade})131 -> 0.0119s132-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})133 -> 0.0104s134-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})135 -> 0.0105s136-- 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})137 -> 0.0150s138-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})139 -> 0.0157s140-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})141 -> 0.0153s142-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})143 -> 0.0130s144-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})145 -> 0.0118s146-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})147 -> 0.0102s148-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})149 -> 0.0099s150-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})151 -> 0.0113s152-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})153 -> 0.0101s154-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})155 -> 0.0125s156-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})157 -> 0.0109s158-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})159 -> 0.0107s160-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})161 -> 0.0112s162-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})163 -> 0.0116s164-- create_table("ci_builds_metadata", {:force=>:cascade})165 -> 0.0121s166-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})167 -> 0.0095s168-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})169 -> 0.0093s170-- create_table("ci_group_variables", {:force=>:cascade})171 -> 0.0114s172-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})173 -> 0.0101s174-- create_table("ci_job_artifacts", {:force=>:cascade})175 -> 0.0120s176-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})177 -> 0.0100s178-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})179 -> 0.0090s180-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})181 -> 0.0107s182-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})183 -> 0.0101s184-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})185 -> 0.0127s186-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})187 -> 0.0104s188-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})189 -> 0.0131s190-- 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})191 -> 0.0102s192-- create_table("ci_pipeline_schedules", {:force=>:cascade})193 -> 0.0117s194-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})195 -> 0.0124s196-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})197 -> 0.0094s198-- create_table("ci_pipeline_variables", {:force=>:cascade})199 -> 0.0111s200-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})201 -> 0.0101s202-- create_table("ci_pipelines", {:force=>:cascade})203 -> 0.0121s204-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})205 -> 0.0101s206-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})207 -> 0.0098s208-- 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})209 -> 0.0106s210-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})211 -> 0.0127s212-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})213 -> 0.0107s214-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})215 -> 0.0092s216-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})217 -> 0.0092s218-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})219 -> 0.0095s220-- create_table("ci_runner_namespaces", {:force=>:cascade})221 -> 0.0103s222-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})223 -> 0.0083s224-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})225 -> 0.0098s226-- create_table("ci_runner_projects", {:force=>:cascade})227 -> 0.0104s228-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})229 -> 0.0099s230-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})231 -> 0.0084s232-- create_table("ci_runners", {:force=>:cascade})233 -> 0.0105s234-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})235 -> 0.0086s236-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})237 -> 0.0085s238-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})239 -> 0.0084s240-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})241 -> 0.0085s242-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})243 -> 0.0084s244-- create_table("ci_sources_pipelines", {:force=>:cascade})245 -> 0.0106s246-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})247 -> 0.0084s248-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})249 -> 0.0084s250-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})251 -> 0.0099s252-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})253 -> 0.0080s254-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})255 -> 0.0088s256-- create_table("ci_stages", {:force=>:cascade})257 -> 0.0109s258-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})259 -> 0.0091s260-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})261 -> 0.0093s262-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})263 -> 0.0095s264-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})265 -> 0.0091s266-- create_table("ci_trigger_requests", {:force=>:cascade})267 -> 0.0108s268-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})269 -> 0.0086s270-- create_table("ci_triggers", {:force=>:cascade})271 -> 0.0107s272-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})273 -> 0.0101s274-- create_table("ci_variables", {:force=>:cascade})275 -> 0.0109s276-- 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})277 -> 0.0104s278-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})279 -> 0.0116s280-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})281 -> 0.0096s282-- create_table("cluster_projects", {:force=>:cascade})283 -> 0.0108s284-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})285 -> 0.0092s286-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})287 -> 0.0088s288-- create_table("cluster_providers_gcp", {:force=>:cascade})289 -> 0.0190s290-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})291 -> 0.0099s292-- create_table("clusters", {:force=>:cascade})293 -> 0.0124s294-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})295 -> 0.0094s296-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})297 -> 0.0086s298-- create_table("clusters_applications_helm", {:force=>:cascade})299 -> 0.0112s300-- create_table("clusters_applications_ingress", {:force=>:cascade})301 -> 0.0113s302-- create_table("clusters_applications_jupyter", {:force=>:cascade})303 -> 0.0113s304-- create_table("clusters_applications_prometheus", {:force=>:cascade})305 -> 0.0109s306-- create_table("clusters_applications_runners", {:force=>:cascade})307 -> 0.0104s308-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})309 -> 0.0088s310-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})311 -> 0.0088s312-- create_table("container_repositories", {:force=>:cascade})313 -> 0.0110s314-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})315 -> 0.0095s316-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})317 -> 0.0106s318-- create_table("conversational_development_index_metrics", {:force=>:cascade})319 -> 0.0115s320-- create_table("deploy_keys_projects", {:force=>:cascade})321 -> 0.0111s322-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})323 -> 0.0095s324-- create_table("deploy_tokens", {:force=>:cascade})325 -> 0.0116s326-- 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})327 -> 0.0103s328-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})329 -> 0.0089s330-- create_table("deployments", {:force=>:cascade})331 -> 0.0115s332-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})333 -> 0.0095s334-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})335 -> 0.0097s336-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})337 -> 0.0108s338-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})339 -> 0.0099s340-- create_table("emails", {:force=>:cascade})341 -> 0.0113s342-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})343 -> 0.0089s344-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})345 -> 0.0088s346-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})347 -> 0.0087s348-- create_table("environments", {:force=>:cascade})349 -> 0.0107s350-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})351 -> 0.0105s352-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})353 -> 0.0095s354-- create_table("epic_issues", {:force=>:cascade})355 -> 0.0108s356-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})357 -> 0.0093s358-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})359 -> 0.0091s360-- create_table("epic_metrics", {:force=>:cascade})361 -> 0.0116s362-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})363 -> 0.0090s364-- create_table("epics", {:force=>:cascade})365 -> 0.0119s366-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})367 -> 0.0101s368-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})369 -> 0.0111s370-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})371 -> 0.0109s372-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})373 -> 0.0099s374-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})375 -> 0.0103s376-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})377 -> 0.0104s378-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})379 -> 0.0114s380-- create_table("events", {:force=>:cascade})381 -> 0.0116s382-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})383 -> 0.0102s384-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})385 -> 0.0127s386-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})387 -> 0.0105s388-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})389 -> 0.0110s390-- create_table("feature_gates", {:force=>:cascade})391 -> 0.0127s392-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})393 -> 0.0142s394-- create_table("features", {:force=>:cascade})395 -> 0.0135s396-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})397 -> 0.0102s398-- create_table("fork_network_members", {:force=>:cascade})399 -> 0.0132s400-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})401 -> 0.0100s402-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})403 -> 0.0096s404-- create_table("fork_networks", {:force=>:cascade})405 -> 0.0120s406-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})407 -> 0.0102s408-- create_table("forked_project_links", {:force=>:cascade})409 -> 0.0121s410-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})411 -> 0.0114s412-- create_table("gcp_clusters", {:force=>:cascade})413 -> 0.0216s414-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})415 -> 0.0105s416-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})417 -> 0.0125s418-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})419 -> 0.0110s420-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})421 -> 0.0110s422-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})423 -> 0.0095s424-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})425 -> 0.0091s426-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})427 -> 0.0093s428-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})429 -> 0.0112s430-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})431 -> 0.0091s432-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})433 -> 0.0117s434-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})435 -> 0.0105s436-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})437 -> 0.0120s438-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})439 -> 0.0090s440-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})441 -> 0.0115s442-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})443 -> 0.0094s444-- create_table("geo_node_namespace_links", {:force=>:cascade})445 -> 0.0112s446-- 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})447 -> 0.0115s448-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})449 -> 0.0108s450-- create_table("geo_node_statuses", {:force=>:cascade})451 -> 0.0129s452-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})453 -> 0.0106s454-- create_table("geo_nodes", {:force=>:cascade})455 -> 0.0119s456-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})457 -> 0.0096s458-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})459 -> 0.0093s460-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})461 -> 0.0096s462-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})463 -> 0.0120s464-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})465 -> 0.0104s466-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})467 -> 0.0153s468-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})469 -> 0.0103s470-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})471 -> 0.0116s472-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})473 -> 0.0098s474-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})475 -> 0.0133s476-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})477 -> 0.0132s478-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})479 -> 0.0122s480-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})481 -> 0.0097s482-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})483 -> 0.0100s484-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})485 -> 0.0118s486-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})487 -> 0.0102s488-- create_table("gpg_key_subkeys", {:force=>:cascade})489 -> 0.0117s490-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})491 -> 0.0099s492-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})493 -> 0.0095s494-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})495 -> 0.0097s496-- create_table("gpg_keys", {:force=>:cascade})497 -> 0.0120s498-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})499 -> 0.0114s500-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})501 -> 0.0100s502-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})503 -> 0.0101s504-- create_table("gpg_signatures", {:force=>:cascade})505 -> 0.0122s506-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})507 -> 0.0101s508-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})509 -> 0.0096s510-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})511 -> 0.0105s512-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})513 -> 0.0106s514-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})515 -> 0.0108s516-- create_table("group_custom_attributes", {:force=>:cascade})517 -> 0.0121s518-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})519 -> 0.0114s520-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})521 -> 0.0105s522-- create_table("historical_data", {:force=>:cascade})523 -> 0.0119s524-- create_table("identities", {:force=>:cascade})525 -> 0.0112s526-- add_index("identities", ["saml_provider_id"], {:name=>"index_identities_on_saml_provider_id", :where=>"(saml_provider_id IS NOT NULL)", :using=>:btree})527 -> 0.0096s528-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})529 -> 0.0087s530-- create_table("index_statuses", {:force=>:cascade})531 -> 0.0143s532-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})533 -> 0.0102s534-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})535 -> 0.0114s536-- 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})537 -> 0.0095s538-- 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})539 -> 0.0090s540-- create_table("issue_assignees", {:id=>false, :force=>:cascade})541 -> 0.0122s542-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})543 -> 0.0200s544-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})545 -> 0.0095s546-- create_table("issue_links", {:force=>:cascade})547 -> 0.0117s548-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})549 -> 0.0098s550-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})551 -> 0.0288s552-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})553 -> 0.0101s554-- create_table("issue_metrics", {:force=>:cascade})555 -> 0.0135s556-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})557 -> 0.0089s558-- create_table("issues", {:force=>:cascade})559 -> 0.0114s560-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})561 -> 0.0136s562-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})563 -> 0.0139s564-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})565 -> 0.0014s566-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})567 -> 0.0105s568-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})569 -> 0.0108s570-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})571 -> 0.0142s572-- 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})573 -> 0.0137s574-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})575 -> 0.0117s576-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})577 -> 0.0133s578-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})579 -> 0.0094s580-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})581 -> 0.0108s582-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})583 -> 0.0013s584-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})585 -> 0.0103s586-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})587 -> 0.0110s588-- create_table("keys", {:force=>:cascade})589 -> 0.0125s590-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})591 -> 0.0109s592-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})593 -> 0.0092s594-- create_table("label_links", {:force=>:cascade})595 -> 0.0112s596-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})597 -> 0.0094s598-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})599 -> 0.0116s600-- create_table("label_priorities", {:force=>:cascade})601 -> 0.0120s602-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})603 -> 0.0100s604-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})605 -> 0.0103s606-- create_table("labels", {:force=>:cascade})607 -> 0.0117s608-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})609 -> 0.0123s610-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})611 -> 0.0093s612-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})613 -> 0.0086s614-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})615 -> 0.0092s616-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})617 -> 0.0111s618-- create_table("ldap_group_links", {:force=>:cascade})619 -> 0.0116s620-- create_table("lfs_file_locks", {:force=>:cascade})621 -> 0.0119s622-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})623 -> 0.0105s624-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})625 -> 0.0093s626-- create_table("lfs_objects", {:force=>:cascade})627 -> 0.0114s628-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})629 -> 0.0089s630-- create_table("lfs_objects_projects", {:force=>:cascade})631 -> 0.0139s632-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})633 -> 0.0097s634-- create_table("licenses", {:force=>:cascade})635 -> 0.0115s636-- create_table("lists", {:force=>:cascade})637 -> 0.0121s638-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})639 -> 0.0101s640-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})641 -> 0.0092s642-- add_index("lists", ["user_id"], {:name=>"index_lists_on_user_id", :using=>:btree})643 -> 0.0093s644-- create_table("managed_licenses", {:force=>:cascade})645 -> 0.0143s646-- add_index("managed_licenses", ["project_id", "name"], {:name=>"index_managed_licenses_on_project_id_and_name", :unique=>true, :using=>:btree})647 -> 0.0122s648-- add_index("managed_licenses", ["project_id"], {:name=>"index_managed_licenses_on_project_id", :using=>:btree})649 -> 0.0096s650-- create_table("members", {:force=>:cascade})651 -> 0.0130s652-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})653 -> 0.0098s654-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})655 -> 0.0093s656-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})657 -> 0.0123s658-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})659 -> 0.0114s660-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})661 -> 0.0116s662-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})663 -> 0.0116s664-- 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})665 -> 0.0212s666-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})667 -> 0.0113s668-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})669 -> 0.0128s670-- 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})671 -> 0.0202s672-- create_table("merge_request_diffs", {:force=>:cascade})673 -> 0.0127s674-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})675 -> 0.0117s676-- create_table("merge_request_metrics", {:force=>:cascade})677 -> 0.0117s678-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})679 -> 0.0093s680-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})681 -> 0.0092s682-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})683 -> 0.0089s684-- create_table("merge_requests", {:force=>:cascade})685 -> 0.0125s686-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})687 -> 0.0106s688-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})689 -> 0.0103s690-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})691 -> 0.0100s692-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})693 -> 0.0015s694-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})695 -> 0.0107s696-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})697 -> 0.0106s698-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})699 -> 0.0105s700-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})701 -> 0.0107s702-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})703 -> 0.0102s704-- 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})705 -> 0.0120s706-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})707 -> 0.0129s708-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})709 -> 0.0109s710-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})711 -> 0.0122s712-- 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})713 -> 0.0121s714-- 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})715 -> 0.0144s716-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})717 -> 0.0110s718-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})719 -> 0.0014s720-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})721 -> 0.0108s722-- create_table("merge_requests_closing_issues", {:force=>:cascade})723 -> 0.0118s724-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})725 -> 0.0092s726-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})727 -> 0.0090s728-- create_table("milestones", {:force=>:cascade})729 -> 0.0119s730-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})731 -> 0.0018s732-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})733 -> 0.0104s734-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})735 -> 0.0095s736-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})737 -> 0.0114s738-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})739 -> 0.0098s740-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})741 -> 0.0011s742-- create_table("namespace_statistics", {:force=>:cascade})743 -> 0.0116s744-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})745 -> 0.0098s746-- create_table("namespaces", {:force=>:cascade})747 -> 0.0126s748-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})749 -> 0.0107s750-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})751 -> 0.0111s752-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})753 -> 0.0103s754-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})755 -> 0.0120s756-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})757 -> 0.0015s758-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})759 -> 0.0108s760-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})761 -> 0.0125s762-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})763 -> 0.0103s764-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})765 -> 0.0014s766-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})767 -> 0.0102s768-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})769 -> 0.0102s770-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})771 -> 0.0114s772-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})773 -> 0.0125s774-- create_table("note_diff_files", {:force=>:cascade})775 -> 0.0131s776-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})777 -> 0.0093s778-- create_table("notes", {:force=>:cascade})779 -> 0.0122s780-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})781 -> 0.0107s782-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})783 -> 0.0103s784-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})785 -> 0.0116s786-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})787 -> 0.0099s788-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})789 -> 0.0107s790-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})791 -> 0.0013s792-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})793 -> 0.0140s794-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})795 -> 0.0096s796-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})797 -> 0.0113s798-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})799 -> 0.0120s800-- create_table("notification_settings", {:force=>:cascade})801 -> 0.0119s802-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})803 -> 0.0115s804-- 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})805 -> 0.0114s806-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})807 -> 0.0099s808-- create_table("oauth_access_grants", {:force=>:cascade})809 -> 0.0115s810-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})811 -> 0.0096s812-- create_table("oauth_access_tokens", {:force=>:cascade})813 -> 0.0115s814-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})815 -> 0.0099s816-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})817 -> 0.0094s818-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})819 -> 0.0094s820-- create_table("oauth_applications", {:force=>:cascade})821 -> 0.0128s822-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})823 -> 0.0121s824-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})825 -> 0.0104s826-- create_table("oauth_openid_requests", {:force=>:cascade})827 -> 0.0123s828-- create_table("pages_domains", {:force=>:cascade})829 -> 0.0122s830-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})831 -> 0.0110s832-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})833 -> 0.0120s834-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})835 -> 0.0104s836-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})837 -> 0.0122s838-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})839 -> 0.0132s840-- create_table("path_locks", {:force=>:cascade})841 -> 0.0112s842-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})843 -> 0.0101s844-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})845 -> 0.0093s846-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})847 -> 0.0095s848-- create_table("personal_access_tokens", {:force=>:cascade})849 -> 0.0128s850-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})851 -> 0.0100s852-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})853 -> 0.0094s854-- create_table("plans", {:force=>:cascade})855 -> 0.0118s856-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})857 -> 0.0098s858-- create_table("project_authorizations", {:id=>false, :force=>:cascade})859 -> 0.0128s860-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})861 -> 0.0103s862-- 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})863 -> 0.0264s864-- create_table("project_auto_devops", {:force=>:cascade})865 -> 0.0138s866-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})867 -> 0.0115s868-- create_table("project_ci_cd_settings", {:force=>:cascade})869 -> 0.0142s870-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})871 -> 0.0111s872-- create_table("project_custom_attributes", {:force=>:cascade})873 -> 0.0135s874-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})875 -> 0.0136s876-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})877 -> 0.0126s878-- create_table("project_deploy_tokens", {:force=>:cascade})879 -> 0.0214s880-- 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})881 -> 0.0130s882-- create_table("project_features", {:force=>:cascade})883 -> 0.0125s884-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})885 -> 0.0112s886-- create_table("project_group_links", {:force=>:cascade})887 -> 0.0127s888-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})889 -> 0.0107s890-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})891 -> 0.0107s892-- create_table("project_import_data", {:force=>:cascade})893 -> 0.0122s894-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})895 -> 0.0106s896-- create_table("project_mirror_data", {:force=>:cascade})897 -> 0.0131s898-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})899 -> 0.0108s900-- add_index("project_mirror_data", ["last_successful_update_at"], {:name=>"index_project_mirror_data_on_last_successful_update_at", :using=>:btree})901 -> 0.0106s902-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})903 -> 0.0114s904-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})905 -> 0.0107s906-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})907 -> 0.0105s908-- create_table("project_repository_states", {:force=>:cascade})909 -> 0.0124s910-- 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})911 -> 0.0099s912-- 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})913 -> 0.0099s914-- 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})915 -> 0.0102s916-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})917 -> 0.0124s918-- create_table("project_statistics", {:force=>:cascade})919 -> 0.0127s920-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})921 -> 0.0105s922-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})923 -> 0.0120s924-- create_table("projects", {:force=>:cascade})925 -> 0.0182s926-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})927 -> 0.0145s928-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})929 -> 0.0158s930-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})931 -> 0.0159s932-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})933 -> 0.0038s934-- add_index("projects", ["id", "repository_storage", "last_repository_updated_at"], {:name=>"idx_projects_on_repository_storage_last_repository_updated_at", :using=>:btree})935 -> 0.0239s936-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})937 -> 0.0129s938-- 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})939 -> 0.0119s940-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})941 -> 0.0152s942-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})943 -> 0.0150s944-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})945 -> 0.0131s946-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})947 -> 0.0138s948-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})949 -> 0.0025s950-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})951 -> 0.0140s952-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})953 -> 0.0150s954-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})955 -> 0.0045s956-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})957 -> 0.0148s958-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})959 -> 0.0153s960-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})961 -> 0.0150s962-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})963 -> 0.0163s964-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})965 -> 0.0154s966-- create_table("prometheus_metrics", {:force=>:cascade})967 -> 0.0115s968-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})969 -> 0.0122s970-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})971 -> 0.0111s972-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})973 -> 0.0129s974-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})975 -> 0.0101s976-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})977 -> 0.0114s978-- create_table("protected_branch_push_access_levels", {:force=>:cascade})979 -> 0.0132s980-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})981 -> 0.0110s982-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})983 -> 0.0106s984-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})985 -> 0.0124s986-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})987 -> 0.0115s988-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})989 -> 0.0112s990-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})991 -> 0.0132s992-- create_table("protected_branches", {:force=>:cascade})993 -> 0.0138s994-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})995 -> 0.0116s996-- create_table("protected_tag_create_access_levels", {:force=>:cascade})997 -> 0.0134s998-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})999 -> 0.0118s1000-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})1001 -> 0.0111s1002-- create_table("protected_tags", {:force=>:cascade})1003 -> 0.0129s1004-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})1005 -> 0.0100s1006-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})1007 -> 0.0128s1008-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})1009 -> 0.0194s1010-- create_table("push_rules", {:force=>:cascade})1011 -> 0.0151s1012-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})1013 -> 0.0126s1014-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})1015 -> 0.0125s1016-- create_table("redirect_routes", {:force=>:cascade})1017 -> 0.0131s1018-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1019 -> 0.0109s1020-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1021 -> 0.0010s1022-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1023 -> 0.0148s1024-- create_table("releases", {:force=>:cascade})1025 -> 0.0162s1026-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1027 -> 0.0131s1028-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1029 -> 0.0133s1030-- create_table("remote_mirrors", {:force=>:cascade})1031 -> 0.0145s1032-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1033 -> 0.0142s1034-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1035 -> 0.0112s1036-- create_table("routes", {:force=>:cascade})1037 -> 0.0135s1038-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1039 -> 0.0106s1040-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1041 -> 0.0009s1042-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1043 -> 0.0130s1044-- create_table("saml_providers", {:force=>:cascade})1045 -> 0.0145s1046-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1047 -> 0.0116s1048-- create_table("sent_notifications", {:force=>:cascade})1049 -> 0.0136s1050-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1051 -> 0.0110s1052-- create_table("services", {:force=>:cascade})1053 -> 0.0139s1054-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1055 -> 0.0106s1056-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1057 -> 0.0119s1058-- create_table("slack_integrations", {:force=>:cascade})1059 -> 0.0128s1060-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1061 -> 0.0112s1062-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1063 -> 0.0116s1064-- create_table("snippets", {:force=>:cascade})1065 -> 0.0135s1066-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1067 -> 0.0104s1068-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1069 -> 0.0010s1070-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1071 -> 0.0105s1072-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1073 -> 0.0021s1074-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1075 -> 0.0111s1076-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1077 -> 0.0111s1078-- create_table("spam_logs", {:force=>:cascade})1079 -> 0.0125s1080-- create_table("subscriptions", {:force=>:cascade})1081 -> 0.0163s1082-- 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})1083 -> 0.0134s1084-- create_table("system_note_metadata", {:force=>:cascade})1085 -> 0.0120s1086-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1087 -> 0.0104s1088-- create_table("taggings", {:force=>:cascade})1089 -> 0.0119s1090-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1091 -> 0.0147s1092-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1093 -> 0.0105s1094-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1095 -> 0.0116s1096-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1097 -> 0.0117s1098-- create_table("tags", {:force=>:cascade})1099 -> 0.0132s1100-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1101 -> 0.0096s1102-- create_table("term_agreements", {:force=>:cascade})1103 -> 0.0145s1104-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})1105 -> 0.0115s1106-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})1107 -> 0.0120s1108-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})1109 -> 0.0110s1110-- create_table("timelogs", {:force=>:cascade})1111 -> 0.0153s1112-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1113 -> 0.0129s1114-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1115 -> 0.0103s1116-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1117 -> 0.0117s1118-- create_table("todos", {:force=>:cascade})1119 -> 0.0136s1120-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1121 -> 0.0111s1122-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1123 -> 0.0100s1124-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1125 -> 0.0100s1126-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1127 -> 0.0136s1128-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1129 -> 0.0113s1130-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1131 -> 0.0116s1132-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1133 -> 0.0119s1134-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1135 -> 0.0105s1136-- create_table("trending_projects", {:force=>:cascade})1137 -> 0.0138s1138-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1139 -> 0.0184s1140-- create_table("u2f_registrations", {:force=>:cascade})1141 -> 0.0199s1142-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1143 -> 0.0174s1144-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1145 -> 0.0114s1146-- create_table("uploads", {:force=>:cascade})1147 -> 0.0147s1148-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1149 -> 0.0165s1150-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1151 -> 0.0196s1152-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1153 -> 0.0128s1154-- create_table("user_agent_details", {:force=>:cascade})1155 -> 0.0238s1156-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1157 -> 0.0114s1158-- create_table("user_callouts", {:force=>:cascade})1159 -> 0.0118s1160-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1161 -> 0.0099s1162-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1163 -> 0.0094s1164-- create_table("user_custom_attributes", {:force=>:cascade})1165 -> 0.0108s1166-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1167 -> 0.0117s1168-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1169 -> 0.0114s1170-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1171 -> 0.0107s1172-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1173 -> 0.0202s1174-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1175 -> 0.0088s1176-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1177 -> 0.0116s1178-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1179 -> 0.0101s1180-- create_table("users", {:force=>:cascade})1181 -> 0.0175s1182-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1183 -> 0.0146s1184-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1185 -> 0.0131s1186-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1187 -> 0.0136s1188-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1189 -> 0.0136s1190-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1191 -> 0.0045s1192-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1193 -> 0.0153s1194-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1195 -> 0.0131s1196-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1197 -> 0.0120s1198-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1199 -> 0.0134s1200-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1201 -> 0.0052s1202-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1203 -> 0.0164s1204-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1205 -> 0.0155s1206-- add_index("users", ["state"], {:name=>"index_users_on_state_and_internal_attrs", :where=>"((ghost <> true) AND (support_bot <> true))", :using=>:btree})1207 -> 0.0372s1208-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1209 -> 0.0106s1210-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1211 -> 0.0106s1212-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1213 -> 0.0017s1214-- create_table("users_star_projects", {:force=>:cascade})1215 -> 0.0119s1216-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1217 -> 0.0093s1218-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1219 -> 0.0096s1220-- create_table("vulnerability_feedback", {:force=>:cascade})1221 -> 0.0107s1222-- add_index("vulnerability_feedback", ["author_id"], {:name=>"index_vulnerability_feedback_on_author_id", :using=>:btree})1223 -> 0.0084s1224-- add_index("vulnerability_feedback", ["issue_id"], {:name=>"index_vulnerability_feedback_on_issue_id", :using=>:btree})1225 -> 0.0084s1226-- add_index("vulnerability_feedback", ["pipeline_id"], {:name=>"index_vulnerability_feedback_on_pipeline_id", :using=>:btree})1227 -> 0.0082s1228-- add_index("vulnerability_feedback", ["project_id", "category", "feedback_type", "project_fingerprint"], {:name=>"vulnerability_feedback_unique_idx", :unique=>true, :using=>:btree})1229 -> 0.0108s1230-- create_table("web_hook_logs", {:force=>:cascade})1231 -> 0.0117s1232-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1233 -> 0.0091s1234-- create_table("web_hooks", {:force=>:cascade})1235 -> 0.0119s1236-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1237 -> 0.0109s1238-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1239 -> 0.0092s1240-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1241 -> 0.0196s1242-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1243 -> 0.0238s1244-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1245 -> 0.0285s1246-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1247 -> 0.0252s1248-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1249 -> 0.0192s1250-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1251 -> 0.0217s1252-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1253 -> 0.0246s1254-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1255 -> 0.0232s1256-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1257 -> 0.0227s1258-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1259 -> 0.0261s1260-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1261 -> 0.0212s1262-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1263 -> 0.0210s1264-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1265 -> 0.0217s1266-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1267 -> 0.0251s1268-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1269 -> 0.0269s1270-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1271 -> 0.0240s1272-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1273 -> 0.0628s1274-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1275 -> 0.0584s1276-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1277 -> 0.0526s1278-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1279 -> 0.0542s1280-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1281 -> 0.0224s1282-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1283 -> 0.0221s1284-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1285 -> 0.0198s1286-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1287 -> 0.0277s1288-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1289 -> 0.0312s1290-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1291 -> 0.0247s1292-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1293 -> 0.0242s1294-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1295 -> 0.0217s1296-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1297 -> 0.0268s1298-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1299 -> 0.0259s1300-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1301 -> 0.0234s1302-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1303 -> 0.0323s1304-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1305 -> 0.0338s1306-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1307 -> 0.0351s1308-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1309 -> 0.0269s1310-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1311 -> 0.0227s1312-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1313 -> 0.0233s1314-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1315 -> 0.0280s1316-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1317 -> 0.0290s1318-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1319 -> 0.0322s1320-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1321 -> 0.0324s1322-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1323 -> 0.0327s1324-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1325 -> 0.0303s1326-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1327 -> 0.0316s1328-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1329 -> 0.0230s1330-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1331 -> 0.0199s1332-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1333 -> 0.0219s1334-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1335 -> 0.0220s1336-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1337 -> 0.0416s1338-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1339 -> 0.0393s1340-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1341 -> 0.0397s1342-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1343 -> 0.0252s1344-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1345 -> 0.0256s1346-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1347 -> 0.0207s1348-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1349 -> 0.0194s1350-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1351 -> 0.0209s1352-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1353 -> 0.0238s1354-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1355 -> 0.0230s1356-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1357 -> 0.0247s1358-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1359 -> 0.0233s1360-- add_foreign_key("container_repositories", "projects")1361 -> 0.0225s1362-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1363 -> 0.0223s1364-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1365 -> 0.0288s1366-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1367 -> 0.0246s1368-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1369 -> 0.0230s1370-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1371 -> 0.0243s1372-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1373 -> 0.0233s1374-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1375 -> 0.0375s1376-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1377 -> 0.0359s1378-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1379 -> 0.0331s1380-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1381 -> 0.0330s1382-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1383 -> 0.0281s1384-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1385 -> 0.0305s1386-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1387 -> 0.0248s1388-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1389 -> 0.0257s1390-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1391 -> 0.0314s1392-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1393 -> 0.0222s1394-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1395 -> 0.0213s1396-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1397 -> 0.0217s1398-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1399 -> 0.0284s1400-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1401 -> 0.0284s1402-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1403 -> 0.0311s1404-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1405 -> 0.0331s1406-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1407 -> 0.0367s1408-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1409 -> 0.0391s1410-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1411 -> 0.0388s1412-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1413 -> 0.0363s1414-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1415 -> 0.0362s1416-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1417 -> 0.0344s1418-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1419 -> 0.0373s1420-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1421 -> 0.0214s1422-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1423 -> 0.0192s1424-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1425 -> 0.0218s1426-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1427 -> 0.0239s1428-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1429 -> 0.0227s1430-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1431 -> 0.0188s1432-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1433 -> 0.0222s1434-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1435 -> 0.0217s1436-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1437 -> 0.0232s1438-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1439 -> 0.0285s1440-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1441 -> 0.0258s1442-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1443 -> 0.0469s1444-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1445 -> 0.0321s1446-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1447 -> 0.0318s1448-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1449 -> 0.0213s1450-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1451 -> 0.0244s1452-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1453 -> 0.0269s1454-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1455 -> 0.0296s1456-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1457 -> 0.0270s1458-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1459 -> 0.0197s1460-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1461 -> 0.0208s1462-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1463 -> 0.0252s1464-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1465 -> 0.0259s1466-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1467 -> 0.0217s1468-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1469 -> 0.0469s1470-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1471 -> 0.0411s1472-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1473 -> 0.0437s1474-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1475 -> 0.0517s1476-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1477 -> 0.0528s1478-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1479 -> 0.0475s1480-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1481 -> 0.0268s1482-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1483 -> 0.0243s1484-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1485 -> 0.0288s1486-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1487 -> 0.0297s1488-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1489 -> 0.0216s1490-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1491 -> 0.0247s1492-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1493 -> 0.0270s1494-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1495 -> 0.0256s1496-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1497 -> 0.0258s1498-- add_foreign_key("managed_licenses", "projects", {:on_delete=>:cascade})1499 -> 0.0271s1500-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1501 -> 0.0315s1502-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1503 -> 0.0235s1504-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1505 -> 0.0202s1506-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1507 -> 0.0258s1508-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1509 -> 0.0267s1510-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1511 -> 0.0253s1512-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1513 -> 0.0284s1514-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1515 -> 0.0302s1516-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1517 -> 0.0537s1518-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1519 -> 0.0573s1520-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1521 -> 0.0538s1522-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1523 -> 0.0579s1524-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1525 -> 0.0556s1526-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1527 -> 0.0526s1528-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1529 -> 0.0523s1530-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1531 -> 0.0611s1532-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1533 -> 0.0562s1534-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1535 -> 0.0219s1536-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1537 -> 0.0245s1538-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1539 -> 0.0274s1540-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1541 -> 0.0293s1542-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1543 -> 0.0223s1544-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1545 -> 0.0427s1546-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1547 -> 0.0200s1548-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1549 -> 0.0394s1550-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1551 -> 0.0217s1552-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1553 -> 0.0317s1554-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1555 -> 0.0263s1556-- add_foreign_key("path_locks", "users")1557 -> 0.0247s1558-- add_foreign_key("personal_access_tokens", "users")1559 -> 0.0220s1560-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1561 -> 0.0229s1562-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1563 -> 0.0199s1564-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1565 -> 0.0200s1566-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1567 -> 0.0234s1568-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1569 -> 0.0265s1570-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1571 -> 0.0217s1572-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1573 -> 0.0263s1574-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1575 -> 0.0216s1576-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1577 -> 0.0232s1578-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1579 -> 0.0222s1580-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1581 -> 0.0330s1582-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1583 -> 0.0287s1584-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1585 -> 0.0245s1586-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1587 -> 0.0236s1588-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1589 -> 0.0279s1590-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1591 -> 0.0261s1592-- add_foreign_key("protected_branch_merge_access_levels", "users")1593 -> 0.0344s1594-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1595 -> 0.0305s1596-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1597 -> 0.0267s1598-- add_foreign_key("protected_branch_push_access_levels", "users")1599 -> 0.0257s1600-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1601 -> 0.0252s1602-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1603 -> 0.0365s1604-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1605 -> 0.0240s1606-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1607 -> 0.0203s1608-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1609 -> 0.0248s1610-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1611 -> 0.0247s1612-- add_foreign_key("protected_tag_create_access_levels", "users")1613 -> 0.0272s1614-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1615 -> 0.0207s1616-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1617 -> 0.0231s1618-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1619 -> 0.0237s1620-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1621 -> 0.0257s1622-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1623 -> 0.0247s1624-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1625 -> 0.0215s1626-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1627 -> 0.0245s1628-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1629 -> 0.0244s1630-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1631 -> 0.0270s1632-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1633 -> 0.0237s1634-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1635 -> 0.0234s1636-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1637 -> 0.0256s1638-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1639 -> 0.0263s1640-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1641 -> 0.0244s1642-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1643 -> 0.0283s1644-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1645 -> 0.0385s1646-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1647 -> 0.0368s1648-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1649 -> 0.0374s1650-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1651 -> 0.0396s1652-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1653 -> 0.0321s1654-- add_foreign_key("u2f_registrations", "users")1655 -> 0.0229s1656-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1657 -> 0.0229s1658-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1659 -> 0.0260s1660-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1661 -> 0.0231s1662-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1663 -> 0.0231s1664-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1665 -> 0.0232s1666-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1667 -> 0.0554s1668-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1669 -> 0.0247s1670-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1671 -> 0.0270s1672-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1673 -> 0.0303s1674-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1675 -> 0.0280s1676-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1677 -> 0.0468s1678-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1679 -> 0.0200s1680-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1681 -> 0.0247s1682-- initialize_schema_migrations_table()1683 -> 0.0330s1684Adding limits to schema.rb for mysql1685-- column_exists?(:merge_request_diffs, :st_commits)1686 -> 0.0014s1687-- column_exists?(:merge_request_diffs, :st_diffs)1688 -> 0.0008s1689-- change_column(:snippets, :content, :text, {:limit=>2147483647})1690 -> 0.0339s1691-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1692 -> 0.0422s1693-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1694 -> 0.0294s1695-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647})1696 -> 0.0275s1697-- change_column(:ci_build_trace_chunks, :raw_data, :binary, {:limit=>16777215})1698 -> 0.0260s1699-- change_column(:gpg_keys, :key, :text, {:limit=>16777215})1700 -> 0.0278s1701Database 'gitlabhq_geo_test' does not exist1702-- enable_extension("plpgsql")1703 -> 0.0012s1704-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1705 -> 0.0143s1706-- create_table("file_registry", {:force=>:cascade})1707 -> 0.0126s1708-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1709 -> 0.0106s1710-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1711 -> 0.0091s1712-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1713 -> 0.0110s1714-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1715 -> 0.0098s1716-- create_table("job_artifact_registry", {:force=>:cascade})1717 -> 0.0126s1718-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1719 -> 0.0098s1720-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1721 -> 0.0088s1722-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1723 -> 0.0094s1724-- create_table("project_registry", {:force=>:cascade})1725 -> 0.0125s1726-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1727 -> 0.0124s1728-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1729 -> 0.0100s1730-- 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})1731 -> 0.0103s1732-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1733 -> 0.0102s1734-- 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})1735 -> 0.0099s1736-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1737 -> 0.0097s1738-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1739 -> 0.0098s1740-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1741 -> 0.0097s1742-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1743 -> 0.0099s1744-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1745 -> 0.0100s1746-- 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})1747 -> 0.0099s1748-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1749 -> 0.0110s1750-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1751 -> 0.0099s1752-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1753 -> 0.0099s1754-- 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})1755 -> 0.0099s1756-- initialize_schema_migrations_table()1757 -> 0.0288s1758$ date1759Tue Jun 26 13:41:12 UTC 20181760$ JOB_NAME=( $CI_JOB_NAME )1761$ export CI_NODE_INDEX=${JOB_NAME[-2]}1762$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1763$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1764$ export KNAPSACK_GENERATE_REPORT=true1765$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1766$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1767$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1768$ export FLAKY_RSPEC_GENERATE_REPORT=true1769$ export CACHE_CLASSES=true1770$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1771$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1772$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1773$ scripts/gitaly-test-spawn1774Checking gitaly-ruby bundle...1775The Gemfile's dependencies are satisfied1776Trying to connect to gitaly: .... OK1777$ knapsack rspec "--color --format documentation --tag ~geo"1778Report specs:1779spec/features/discussion_comments/issue_spec.rb1780spec/features/merge_request/user_sees_versions_spec.rb1781spec/features/issues/filtered_search/dropdown_emoji_spec.rb1782spec/models/gpg_signature_spec.rb1783spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb1784spec/features/boards/modal_filter_spec.rb1785spec/features/projects/clusters/user_spec.rb1786spec/requests/api/jobs_spec.rb1787spec/features/projects/files/user_uploads_files_spec.rb1788spec/features/merge_requests/user_lists_merge_requests_spec.rb1789spec/features/issuables/close_reopen_report_toggle_spec.rb1790spec/features/profile_spec.rb1791spec/requests/api/group_milestones_spec.rb1792spec/models/project_services/hipchat_service_spec.rb1793spec/services/merge_requests/rebase_service_spec.rb1794spec/lib/gitlab/ci/status/pipeline/factory_spec.rb1795spec/migrations/fix_wrongly_renamed_routes_spec.rb1796spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb1797spec/features/projects/merge_requests/user_closes_merge_request_spec.rb1798spec/lib/gitlab/usage_data_spec.rb1799spec/requests/api/pages_domains_spec.rb1800spec/features/groups/issues_spec.rb1801spec/requests/api/group_boards_spec.rb1802spec/services/merge_requests/merge_when_pipeline_succeeds_service_spec.rb1803spec/models/container_repository_spec.rb1804spec/lib/gitlab/legacy_github_import/importer_spec.rb1805spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb1806spec/features/milestones/user_creates_milestone_spec.rb1807spec/controllers/projects/imports_controller_spec.rb1808spec/workers/remove_expired_members_worker_spec.rb1809spec/models/concerns/subscribable_spec.rb1810spec/mailers/emails/pages_domains_spec.rb1811spec/features/projects/members/group_members_spec.rb1812spec/features/projects/branches/user_deletes_branch_spec.rb1813spec/tasks/gitlab/artifacts/migrate_rake_spec.rb1814spec/features/users/logout_spec.rb1815spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb1816spec/features/projects/sub_group_issuables_spec.rb1817spec/features/projects/show/redirects_spec.rb1818spec/controllers/projects/protected_branches_controller_spec.rb1819spec/views/projects/commit/show.html.haml_spec.rb1820spec/features/projects/show/rss_spec.rb1821spec/features/projects/files/dockerfile_dropdown_spec.rb1822spec/services/lfs/file_transformer_spec.rb1823spec/lib/gitlab/plugin_spec.rb1824spec/features/groups/members/filter_members_spec.rb1825spec/migrations/schedule_merge_request_diff_migrations_spec.rb1826spec/services/labels/find_or_create_service_spec.rb1827spec/lib/banzai/object_renderer_spec.rb1828spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb1829spec/controllers/projects/blame_controller_spec.rb1830spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb1831spec/features/projects/show/download_buttons_spec.rb1832spec/lib/gitlab/otp_key_rotator_spec.rb1833spec/migrations/remove_assignee_id_from_issue_spec.rb1834spec/services/members/request_access_service_spec.rb1835spec/models/members/group_member_spec.rb1836spec/requests/api/broadcast_messages_spec.rb1837spec/lib/gitlab/github_import/milestone_finder_spec.rb1838spec/services/tags/create_service_spec.rb1839spec/requests/api/settings_spec.rb1840spec/migrations/clean_stage_id_reference_migration_spec.rb1841spec/models/project_deploy_token_spec.rb1842spec/controllers/import/fogbugz_controller_spec.rb1843spec/models/upload_spec.rb1844spec/lib/gitlab/ci/status/build/canceled_spec.rb1845spec/services/milestones/create_service_spec.rb1846spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb1847spec/features/projects/files/files_sort_submodules_with_folders_spec.rb1848spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb1849spec/controllers/profiles/preferences_controller_spec.rb1850spec/lib/gitlab/ci/status/build/created_spec.rb1851spec/lib/gitlab/auth/user_access_denied_reason_spec.rb1852spec/models/project_services/pushover_service_spec.rb1853spec/services/emails/create_service_spec.rb1854spec/lib/gitlab/git/diff_collection_spec.rb1855spec/lib/gitlab/gitlab_import/project_creator_spec.rb1856spec/requests/api/sidekiq_metrics_spec.rb1857spec/validators/url_validator_spec.rb1858spec/tasks/gitlab/info_rake_spec.rb1859spec/controllers/import/gitlab_projects_controller_spec.rb1860spec/lib/system_check/orphans/repository_check_spec.rb1861spec/validators/variable_duplicates_validator_spec.rb1862spec/migrations/update_retried_for_ci_build_spec.rb1863spec/lib/gitlab/ci/config/entry/global_spec.rb1864spec/lib/gitlab/gitaly_client_spec.rb1865spec/helpers/auth_helper_spec.rb1866spec/uploaders/lfs_object_uploader_spec.rb1867spec/services/emails/confirm_service_spec.rb1868spec/initializers/doorkeeper_spec.rb1869spec/lib/gitlab/metrics/method_call_spec.rb1870spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb1871spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb1872spec/lib/gitlab/git/index_spec.rb1873spec/rubocop/cop/migration/remove_index_spec.rb1874spec/lib/banzai/filter/math_filter_spec.rb1875spec/lib/gitlab/health_checks/redis/queues_check_spec.rb1876spec/helpers/pagination_helper_spec.rb1877spec/lib/gitlab/dependency_linker_spec.rb1878spec/lib/gitlab/file_detector_spec.rb1879spec/lib/gitlab/auth/ldap/auth_hash_spec.rb1880spec/routing/openid_connect_spec.rb1881spec/lib/gitlab/sherlock/file_sample_spec.rb1882spec/lib/gitlab/downtime_check_spec.rb1883spec/lib/gitlab/diff/formatters/text_formatter_spec.rb1884spec/lib/gitlab/ci/config/entry/factory_spec.rb1885spec/lib/gitlab/cycle_analytics/staging_stage_spec.rb1886spec/lib/gitlab/diff/formatters/image_formatter_spec.rb1887spec/lib/gitlab/ci/config/entry/validatable_spec.rb1888spec/models/protected_tag_spec.rb1889spec/rubocop/cop/sidekiq_options_queue_spec.rb1890spec/lib/gitlab/chat_name_token_spec.rb1891spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb1892spec/lib/banzai/filter/yaml_front_matter_filter_spec.rb1893spec/models/conversational_development_index/metric_spec.rb1894spec/workers/concerns/cronjob_queue_spec.rb1895spec/lib/gitlab/github_import/representation_spec.rb1896spec/lib/gitlab/routing_spec.rb1897spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb1898Leftover specs:1899Knapsack report generator started!1900Run options: exclude {:geo=>true}1901==> Setting up GitLab Shell...1902 GitLab Shell setup in 0.378157707 seconds...1903==> Setting up Gitaly...1904 Gitaly setup in 0.000197377 seconds...1905Discussion Comments Issue1906Starting the Capybara driver server...1907 behaves like discussion comments1908 clicking "Comment" will post a comment1909 clicking 'Comment & close issue' will post a comment and close the issue1910 when the toggle is clicked1911 has a "Comment" item (selected by default) and "Start discussion" item1912 closes the menu when clicking the toggle or body1913 clicking the ul padding or divider should not change the text1914 when selecting "Start discussion"1915 updates the submit button text and closes the dropdown1916 updates the close button text1917 typing does not change the close button text1918 clicking 'Start discussion & close issue' will post a discussion and close the issue1919 creating a discussion1920 clicking "Start discussion" will post a discussion1921 when opening the menu19222nd Try error in ./spec/support/features/discussion_comments_shared_example.rb:188:1923 Unable to find visible css ".js-main-target-form .comment-type-dropdown .dropdown-menu li" 1924RSpec::Retry: 2nd try ./spec/support/features/discussion_comments_shared_example.rb:1881925 should have "Start discussion" selected1926 when selecting "Comment"1927 updates the submit button text and closes the dropdown1928 updates the close button text1929 typing does not change the close button text1930 should have "Comment" selected when opening the menu1931 on a closed issue1932 should show a 'Comment & reopen issue' button1933 should show a 'Start discussion & reopen issue' button when 'Start discussion' is selected1934Merge request > User sees versions1935 compare with the latest version1936 show the latest version of the diff1937 behaves like allows commenting1938 should text "Typo, please fix."1939 switch between versions1940 shows comments that were last relevant at that version1941 behaves like allows commenting1942 should text "Typo, please fix."1943 compare with older version1944 has a path with comparison context and shows comments that were last relevant at that version1945 show diff between new and old version1946 returns to latest version when "Show latest version" button is clicked1947 behaves like allows commenting1948 should text "Typo, please fix."1949 compare with same version1950 has 0 chages between versions1951 compare with newer version1952 sets the compared versions to be the same1953 scoped in a commit1954 should only show diffs from the commit1955 behaves like allows commenting1956 should text "Typo, please fix."1957Dropdown emoji1958 when user not logged in1959 behavior1960 does not open when the search bar has my-reaction:1961 when user loggged in1962 behavior1963 opens when the search bar has my-reaction:1964 closes when the search bar is unfocused1965 should show loading indicator when opened1966 should hide loading indicator when loaded1967 should load all the emojis when opened1968 shows the most populated emoji at top of dropdown1969 filtering1970 filters by name1971 filters by case insensitive name1972 selecting from dropdown1973 fills in the my-reaction name1974 input has existing content1975 opens my-reaction dropdown with existing search term1976 opens my-reaction dropdown with existing assignee1977 opens my-reaction dropdown with existing label1978 opens my-reaction dropdown with existing milestone1979 opens my-reaction dropdown with existing my-reaction1980 caching requests1981 caches requests after the first load1982GpgSignature1983 associations1984 should belong to project1985 should belong to gpg_key1986 should belong to gpg_key_subkey1987 validation1988 should validate that :commit_sha cannot be empty/falsy1989 should validate that :project_id cannot be empty/falsy1990 should validate that :gpg_key_primary_keyid cannot be empty/falsy1991 #commit1992 fetches the commit through the project1993 #gpg_key=1994 supports the assignment of a GpgKey1995 supports the assignment of a GpgKeySubkey1996 clears gpg_key and gpg_key_subkey_id when passing nil1997 #gpg_commit1998 when commit does not exist1999 returns nil2000 when commit exists2001 returns an instance of Gitlab::Gpg::Commit2002ObjectStorage::MigrateUploadsWorker2003 for AvatarUploader2004 behaves like uploads migration worker2005 .enqueue!2006 is guarded by .sanity_check!2007 sanity_check! fails2008 does not enqueue a job2009 .sanity_check!2010 uploader types mismatch2011 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2012 model types mismatch2013 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2014 mount point not found2015 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2016 #perform2017 migrates files2018 behaves like outputs correctly2019 outputs the reports2020 migration is unsuccessful2021 behaves like outputs correctly2022 outputs upload failures2023 limits N+1 queries2024 to N*52025 for FileUploader2026 behaves like uploads migration worker2027 .enqueue!2028 is guarded by .sanity_check!2029 sanity_check! fails2030 does not enqueue a job2031 .sanity_check!2032 uploader types mismatch2033 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2034 model types mismatch2035 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2036 mount point not found2037 should raise ObjectStorage::MigrateUploadsWorker::SanityCheckError2038 #perform2039 migrates files2040 behaves like outputs correctly2041 outputs the reports2042 migration is unsuccessful2043 behaves like outputs correctly2044 outputs upload failures2045 limits N+1 queries2046 to N*52047Issue Boards add issue modal filtering2048 shows empty state when no results found2049 restores filters when closing2050 resotres filters after clicking clear button2051 author2052 filters by selected user2053 assignee2054 filters by unassigned2055 filters by selected user2056 milestone2057 filters by upcoming milestone2058 filters by selected milestone2059 label2060 filters by no label2061 filters by label2062User Cluster2063 when user does not have a cluster and visits cluster index page2064 when user filled form with valid parameters2065 user sees a cluster details page2066 when user filled form with invalid parameters2067 user sees a validation error2068 when user does have a cluster and visits cluster page2069 user sees a cluster details page2070 when user disables the cluster2071 user sees the successful message2072 when user changes cluster parameters2073 user sees the successful message2074 when user destroy the cluster2075 user sees creation form with the successful message2076API::Jobs2077 GET /projects/:id/jobs2078 authorized user2079 returns project jobs2080 returns correct values2081 returns pipeline data2082 avoids N+1 queries2083 filter project with one scope element2084 should be a kind of Array2085 filter project with array of scope elements2086 should be a kind of Array2087 respond 400 when scope contains invalid state2088 should respond with numeric status code 4002089 unauthorized user2090 does not return project jobs2091 GET /projects/:id/pipelines/:pipeline_id/jobs2092 authorized user2093 returns pipeline jobs2094 returns correct values2095 returns pipeline data2096 avoids N+1 queries2097 filter jobs with one scope element2098 should be a kind of Array2099 filter jobs with array of scope elements2100 should be a kind of Array2101 respond 400 when scope contains invalid state2102 should respond with numeric status code 4002103 jobs in different pipelines2104 excludes jobs from other pipelines2105 unauthorized user2106 does not return jobs2107 GET /projects/:id/jobs/:job_id2108 authorized user2109 returns specific job data2110 returns pipeline data2111 unauthorized user2112 does not return specific job data2113 GET /projects/:id/jobs/:job_id/artifacts/:artifact_path2114 when job has artifacts2115 when user is anonymous2116 when project is public2117 allows to access artifacts2118 when project is public with builds access disabled2119 rejects access to artifacts2120 when project is private2121 rejects access and hides existence of artifacts2122 when user is authorized2123 returns a specific artifact file for a valid path2124 when job does not have artifacts2125 does not return job artifact file2126 GET /projects/:id/jobs/:job_id/artifacts2127 normal authentication2128 job with artifacts2129 does not return job artifacts if not uploaded2130 when artifacts are stored locally2131 authorized user2132 behaves like downloads artifact2133 returns specific job artifacts2134 unauthorized user2135 does not return specific job artifacts2136 when artifacts are stored remotely2137 when proxy download is enabled2138 responds with the workhorse send-url2139 when proxy download is disabled2140 returns location redirect2141 authorized user2142 returns the file remote URL2143 unauthorized user2144 does not return specific job artifacts2145 GET /projects/:id/artifacts/:ref_name/download?job=name2146 when not logged in2147 does not find a resource in a private project2148 when logging as guest2149 gives 4032150 non-existing job2151 has no such ref2152 behaves like not found2153 should respond with numeric status code not_found2154 has no such job2155 behaves like not found2156 should respond with numeric status code not_found2157 find proper job2158 with regular branch2159 behaves like a valid file2160 when artifacts are stored locally2161 should respond with status code :ok (200)2162 should include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=ci_build_artifacts.zip"}2163 when artifacts are stored remotely2164 returns location redirect2165 with branch name containing slash2166 behaves like a valid file2167 when artifacts are stored locally2168 should respond with status code :ok (200)2169 should include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=ci_build_artifacts.zip"}2170 when artifacts are stored remotely2171 returns location redirect2172 when using job_token to authenticate2173 when user is reporter2174 behaves like a valid file2175 when artifacts are stored locally2176 should respond with status code :ok (200)2177 should include {"Content-Transfer-Encoding" => "binary", "Content-Disposition" => "attachment; filename=ci_build_artifacts.zip"}2178 when artifacts are stored remotely2179 returns location redirect2180 when user is admin, but not member2181 does not allow to see that artfiact is present2182 GET /projects/:id/jobs/:job_id/trace2183 authorized user2184 when trace is in ObjectStorage2185 returns specific job trace2186 when trace is artifact2187 returns specific job trace2188 when trace is file2189 returns specific job trace2190 unauthorized user2191 does not return specific job trace2192 POST /projects/:id/jobs/:job_id/cancel2193 authorized user2194 user with :update_build persmission2195 cancels running or pending job2196 user without :update_build permission2197 does not cancel job2198 unauthorized user2199 does not cancel job2200 POST /projects/:id/jobs/:job_id/retry2201 authorized user2202 user with :update_build permission2203 retries non-running job2204 user without :update_build permission2205 does not retry job2206 unauthorized user2207 does not retry job2208 POST /projects/:id/jobs/:job_id/erase2209 job is erasable2210 erases job content2211 updates job2212 job is not erasable2213 responds with forbidden2214 when a developer erases a build2215 when the build was created by the developer2216 should respond with numeric status code 2012217 when the build was created by the other2218 should respond with numeric status code 4032219 POST /projects/:id/jobs/:job_id/artifacts/keep2220 artifacts did not expire2221 keeps artifacts2222 no artifacts2223 responds with not found2224 POST /projects/:id/jobs/:job_id/play2225 on an playable job2226 when user is authorized to trigger a manual action2227 plays the job2228 when user is not authorized to trigger a manual action2229 when user does not have access to the project2230 does not trigger a manual action2231 when user is not allowed to trigger the manual action2232 does not trigger a manual action2233 on a non-playable job2234 returns a status code 400, Bad Request2235Projects > Files > User uploads files2236 when an user has write access2237 uploads and commit a new text file2238 uploads and commit a new image file2239 when an user does not have write access2240 uploads and commit a new file to a forked project2241Merge requests > User lists merge requests2242 filters on no assignee2243 filters on a specific assignee2244 sorts by newest2245 sorts by last updated2246 sorts by milestone2247 filters on one label and sorts by due date2248 while filtering on two labels2249 sorts by due date2250 filter on assignee and2251 sorts by due soon2252 sorts by recently due milestone2253Issuables Close/Reopen/Report toggle2254 on an issue2255 when user has permission to update2256 behaves like an issuable close/reopen/report toggle2257 shows toggle2258 opens a dropdown when toggle is clicked2259 changes the button when an item is selected2260 when user doesnt have permission to update2261 only shows the `Report abuse` and `New issue` buttons2262 on a merge request2263 when user has permission to update2264 behaves like an issuable close/reopen/report toggle2265 shows toggle2266 opens a dropdown when toggle is clicked2267 changes the button when an item is selected2268 when user doesnt have permission to update2269 only shows a `Report abuse` button2270Profile account page2271 when I delete my account2272 should text "Delete account"2273 does not immediately delete the account2274 deletes user2275 shows invalid password flash message2276 does not show delete button when user owns a group2277 when I reset feed token2278 resets feed token2279 when I reset incoming email token2280 resets incoming email token2281 when I change my username2282 changes my username2283API::GroupMilestones2284 behaves like group and project milestones2285 GET /groups/:id/milestones2286 returns milestones list2287 returns a 401 error if user not authenticated2288 returns an array of active milestones2289 returns an array of closed milestones2290 returns an array of milestones specified by iids2291 does not return any milestone if none found2292 returns a milestone by iids array2293 returns a milestone by searching for title2294 returns a milestones by searching for description2295 GET /groups/:id/milestones/:milestone_id2296 returns a milestone by id2297 returns a milestone by id2298 returns 401 error if user not authenticated2299 returns a 404 error if milestone id not found2300 POST /groups/:id/milestones2301 creates a new milestone2302 creates a new milestone with description and dates2303 returns a 400 error if title is missing2304 returns a 400 error if params are invalid (duplicate title)2305 creates a new milestone with reserved html characters2306 PUT /groups/:id/milestones/:milestone_id2307 updates a milestone2308 removes a due date if nil is passed2309 returns a 404 error if milestone id not found2310 closes milestone2311 updates milestone with only start date2312 GET /groups/:id/milestones/:milestone_id/issues2313 returns issues for a particular milestone2314 returns issues sorted by label priority2315 matches V4 response schema for a list of issues2316 returns a 401 error if user not authenticated2317 confidential issues2318 returns confidential issues to team members2319 does not return confidential issues to team members with guest role2320 does not return confidential issues to regular users2321 returns issues ordered by label priority2322 GET /groups/:id/milestones/:milestone_id/merge_requests2323 returns merge_requests for a particular milestone2324 returns merge_requests sorted by label priority2325 returns a 404 error if milestone id not found2326 returns a 404 if the user has no access to the milestone2327 returns a 401 error if user not authenticated2328 returns merge_requests ordered by position asc2329HipchatService2330 Associations2331 should belong to project2332 should have one service_hook2333 Validations2334 when service is active2335 should validate that :token cannot be empty/falsy2336 when service is inactive2337 should not validate that :token cannot be empty/falsy2338 Execute2339 tests and return errors2340 uses v1 if version is provided2341 uses v2 as the version when nothing is provided2342 push events2343 calls Hipchat API for push events2344 creates a push message2345 tag_push events2346 calls Hipchat API for tag push events2347 creates a tag push message2348 issue events2349 calls Hipchat API for issue events2350 creates an issue message2351 merge request events2352 calls Hipchat API for merge requests events2353 merge request message2354 creates a merge request message2355 creates a message for approved merge requests2356 Note events2357 when commit comment event triggered2358 calls Hipchat API for commit comment events2359 when merge request comment event triggered2360 calls Hipchat API for merge request comment events2361 when issue comment event triggered2362 calls Hipchat API for issue comment events2363 with confidential issue2364 calls Hipchat API with issue comment2365 when snippet comment event triggered2366 calls Hipchat API for snippet comment events2367 pipeline events2368 for failed2369 calls Hipchat API2370 creates a build message2371 for succeeded2372 calls Hipchat API2373 notifies only broken2374 #message_options2375 is set to the defaults2376 sets notify to true2377 sets the color2378 with a successful build2379 uses the green color2380 with a failed build2381 uses the red color2382MergeRequests::RebaseService2383 #execute2384 when another rebase is already in progress2385 saves the error message2386 returns an error2387 when unexpected error occurs2388 saves a generic error message2389 returns an error2390 with git command failure2391 saves a generic error message2392 returns an error2393 valid params2394 when Gitaly rebase feature is enabled2395 behaves like successful rebase2396 rebases source branch2397 records the new SHA on the merge request2398 logs correct author and commiter2399 when Gitaly rebase feature is disabled2400 behaves like successful rebase2401 rebases source branch2402 records the new SHA on the merge request2403 logs correct author and commiter2404 git commands2405 sets GL_REPOSITORY env variable when calling git commands2406 fork2407 when Gitaly rebase feature is enabled2408 behaves like successful fork rebase2409 rebases source branch2410 when Gitaly rebase feature is disabled2411 behaves like successful fork rebase2412 rebases source branch2413Gitlab::Ci::Status::Pipeline::Factory2414 when pipeline has a core status2415 when core status is created2416 matches correct core status for created2417 does not match extended statuses2418 fabricates a core status created2419 extends core status with common pipeline methods2420 when core status is pending2421 matches correct core status for pending2422 does not match extended statuses2423 fabricates a core status pending2424 extends core status with common pipeline methods2425 when core status is running2426 matches correct core status for running2427 does not match extended statuses2428 fabricates a core status running2429 extends core status with common pipeline methods2430 when core status is success2431 matches correct core status for success2432 does not match extended statuses2433 fabricates a core status success2434 extends core status with common pipeline methods2435 when core status is failed2436 matches correct core status for failed2437 does not match extended statuses2438 fabricates a core status failed2439 extends core status with common pipeline methods2440 when core status is canceled2441 matches correct core status for canceled2442 does not match extended statuses2443 fabricates a core status canceled2444 extends core status with common pipeline methods2445 when core status is skipped2446 matches correct core status for skipped2447 does not match extended statuses2448 fabricates a core status skipped2449 extends core status with common pipeline methods2450 when core status is manual2451 matches manual core status2452 matches a correct extended statuses2453 extends core status with common pipeline methods2454 when pipeline has warnings2455 matches correct core status2456 matches correct extended statuses2457 fabricates extended "success with warnings" status2458 extends core status with common pipeline method2459FixWronglyRenamedRoutes2460 #wrongly_renamed2461 includes routes that have names that don't match their namespace2462 #paths_and_corrections2463 finds the wrong path and gets the correction from the namespace2464 #routes_in_namespace_query2465 includes only the required routes2466 #up2467 renames incorrectly named routes2468 doesn't touch namespaces that look like something that should be renamed2469Merge request > User sees Check out branch modal2470 shows the check out branch modal2471 closes the check out branch model with Escape keypress2472User closes a merge requests2473 closes a merge request2474Gitlab::UsageData2475 #data2476 gathers usage data2477 gathers usage counts2478 gathers projects data correctly2479 #features_usage_data_ce2480 gathers feature usage data2481 #features_usage_data_ee2482 gathers feature usage data of EE2483 #components_usage_data2484 gathers components usage data2485 #license_usage_data2486 gathers license data2487 .service_desk_counts2488 when Service Desk is disabled2489 returns an empty hash2490 when there is no license2491 returns an empty hash2492 when Service Desk is enabled2493 gathers Service Desk data2494API::PagesDomains2495 GET /pages/domains2496 when pages is disabled2497 behaves like 404 response2498 returns 4042499 when pages is enabled2500 when authenticated as an admin2501 returns paginated all pages domains2502 when authenticated as a non-member2503 behaves like 403 response2504 returns 4032505 GET /projects/:project_id/pages/domains2506 when pages is disabled2507 behaves like 404 response2508 returns 4042509 when user is a master2510 behaves like get pages domains2511 returns paginated pages domains2512 when user is a developer2513 behaves like 403 response2514 returns 4032515 when user is a reporter2516 behaves like 403 response2517 returns 4032518 when user is a guest2519 behaves like 403 response2520 returns 4032521 when user is not a member2522 behaves like 404 response2523 returns 4042524 GET /projects/:project_id/pages/domains/:domain2525 when domain is vacant2526 behaves like 404 response2527 returns 4042528 when user is a master2529 behaves like get pages domain2530 returns pages domain2531 returns pages domain with project path2532 returns pages domain with a certificate2533 returns pages domain with an expired certificate2534 when user is a developer2535 behaves like 403 response2536 returns 4032537 when user is a reporter2538 behaves like 403 response2539 returns 4032540 when user is a guest2541 behaves like 403 response2542 returns 4032543 when user is not a member2544 behaves like 404 response2545 returns 4042546 POST /projects/:project_id/pages/domains2547 when user is a master2548 behaves like post pages domains2549 creates a new pages domain2550 creates a new secure pages domain2551 fails to create pages domain without key2552 fails to create pages domain with key missmatch2553 when user is a developer2554 behaves like 403 response2555 returns 4032556 when user is a reporter2557 behaves like 403 response2558 returns 4032559 when user is a guest2560 behaves like 403 response2561 returns 4032562 when user is not a member2563 behaves like 404 response2564 returns 4042565 PUT /projects/:project_id/pages/domains/:domain2566 when domain is vacant2567 behaves like 404 response2568 returns 4042569 when user is a master2570 behaves like put pages domain2571 updates pages domain removing certificate2572 updates pages domain adding certificate2573 updates pages domain with expired certificate2574 updates pages domain with expired certificate not updating key2575 fails to update pages domain adding certificate without key2576 fails to update pages domain adding certificate with missing chain2577 fails to update pages domain with key missmatch2578 when user is a developer2579 behaves like 403 response2580 returns 4032581 when user is a reporter2582 behaves like 403 response2583 returns 4032584 when user is a guest2585 behaves like 403 response2586 returns 4032587 when user is not a member2588 behaves like 404 response2589 returns 4042590 DELETE /projects/:project_id/pages/domains/:domain2591 when domain is vacant2592 behaves like 404 response2593 returns 4042594 when user is a master2595 behaves like delete pages domain2596 deletes a pages domain2597 when user is a developer2598 behaves like 403 response2599 returns 4032600 when user is a reporter2601 behaves like 403 response2602 returns 4032603 when user is a guest2604 behaves like 403 response2605 returns 4032606 when user is not a member2607 behaves like 404 response2608 returns 4042609Group issues page2610 with shared examples2611 public access level2612 group member2613 should text "this is my created issuable"2614 non-member2615 should text "this is my created issuable"2616 private access level2617 group member2618 should text "this is my created issuable"2619 non-member2620 should not text "this is my created issuable"2621 rss feed2622 when signed in2623 behaves like it has an RSS button with current_user's feed token2624 shows the RSS button with current_user's feed token2625 behaves like an autodiscoverable RSS feed with current_user's feed token2626 has an RSS autodiscovery link tag with current_user's feed token2627 when signed out2628 behaves like it has an RSS button without a feed token2629 shows the RSS button without a feed token2630 behaves like an autodiscoverable RSS feed without a feed token2631 has an RSS autodiscovery link tag without a feed token2632 assignee2633 filters by only group users2634 issues list2635 returns all group and subgroup issues (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2636 when project is archived2637 does not render issue (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2638API::GroupBoards2639 behaves like group and project boards2640 GET /groups/:id/boards2641 when unauthenticated2642 returns authentication error2643 when authenticated2644 returns the issue boards2645 GET /groups/:id/boards/:board_id2646 get a single board by id2647 GET /groups/:id/boards/:board_id/lists2648 returns issue board lists2649 returns 404 if board not found2650 GET /groups/:id/boards/:board_id/lists/:list_id2651 returns a list2652 returns 404 if list not found2653 POST /groups/:id/boards/lists2654 creates a new issue board list for labels2655 returns 400 when creating a new list if label_id is invalid2656 returns 403 for members with guest role2657 PUT /groups/:id/boards/:board_id/lists/:list_id to update only position2658 updates a list2659 returns 404 error if list id not found2660 returns 403 for members with guest role2661 DELETE /groups/:id/boards/lists/:list_id2662 rejects a non member from deleting a list2663 rejects a user with guest role from deleting a list2664 returns 404 error if list id not found2665 when the user is parent owner2666 deletes the list if an admin requests it2667 behaves like 412 response2668 for a modified ressource2669 returns 4122670 for an unmodified ressource2671 returns accepted2672 POST /groups/:id/boards/lists2673 does not create lists for child project labels2674MergeRequests::MergeWhenPipelineSucceedsService2675 #execute2676 first time enabling2677 sets the params, merge_user, and flag2678 creates a system note2679 already approved2680 updates the merge params2681 #trigger2682 when triggered by pipeline with valid ref and sha2683 merges all merge requests with merge when the pipeline succeeds enabled2684 when triggered by an old pipeline2685 it does not merge merge request2686 when triggered by pipeline from a different branch2687 does not merge request2688 #cancel2689 resets all the pipeline succeeds params2690 Posts a system note2691 pipeline integration2692 when there are multiple stages in the pipeline2693 doesn't merge if any of stages failed2694 merges when all stages succeeded2695ContainerRepository2696 associations2697 belongs to the project2698 #tag2699 has a test tag2700 #path2701 when project path does not contain uppercase letters2702 returns a full path to the repository2703 when path contains uppercase letters2704 returns a full path without capital letters2705 #manifest2706 returns non-empty manifest2707 #valid?2708 is a valid repository2709 #tags2710 returns non-empty tags list2711 #has_tags?2712 has tags2713 #delete_tags!2714 when action succeeds2715 returns status that indicates success2716 when action fails2717 returns status that indicates failure2718 #location2719 when registry is running on a custom port2720 returns a full location of the repository2721 #root_repository?2722 when repository is a root repository2723 returns true2724 when repository is not a root repository2725 returns false2726 .build_from_path2727 fabricates repository assigned to a correct project2728 fabricates repository with a correct name2729 is not persisted2730 .create_from_path!2731 when received multi-level repository path2732 fabricates repository assigned to a correct project2733 fabricates repository with a correct name2734 when path is too long2735 does not create repository and raises error2736 when received multi-level repository with nested groups2737 fabricates repository assigned to a correct project2738 fabricates repository with a correct name2739 has path including a nested group2740 when received root repository path2741 fabricates repository assigned to a correct project2742 fabricates repository with an empty name2743 .build_root_repository2744 fabricates a root repository object2745 assignes it to the correct project2746 does not persist it2747Gitlab::LegacyGithubImport::Importer2748 when importing a GitHub project2749 behaves like Gitlab::LegacyGithubImport::Importer#execute2750 calls import methods2751 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs2752 returns true2753 does not raise an error2754 stores error messages2755 behaves like Gitlab::LegacyGithubImport unit-testing2756 #clean_up_restored_branches2757 when pull request stills open2758 does not remove branches2759 when pull request is closed2760 does remove branches2761 #client2762 instantiates a Client2763 when importing a Gitea project2764 behaves like Gitlab::LegacyGithubImport::Importer#execute2765 calls import methods2766 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs2767 returns true2768 does not raise an error2769 stores error messages2770 behaves like Gitlab::LegacyGithubImport unit-testing2771 #clean_up_restored_branches2772 when pull request stills open2773 does not remove branches2774 when pull request is closed2775 does remove branches2776 #client2777 instantiates a Client2778Projects > Files > Project owner sees a link to create a license file in empty project2779 project master creates a license file from a template2780User creates milestone2781 creates milestone2782Projects::ImportsController2783 GET #show2784 when repository does not exists2785 renders template2786 sets flash.now if params is present2787 when repository exists2788 when import is in progress2789 renders template2790 sets flash.now if params is present2791 when import failed2792 redirects to new_namespace_project_import_path2793 when import finished2794 when project is a fork2795 redirects to namespace_project_path2796 when project is external2797 redirects to namespace_project_path2798 when continue params is present2799 redirects to internal params[:to]28002nd Try error in ./spec/controllers/projects/imports_controller_spec.rb:100:2801 Cannot redirect to nil! 2802RSpec::Retry: 2nd try ./spec/controllers/projects/imports_controller_spec.rb:1002803 does not redirect to external params[:to]2804 when import never happened2805 redirects to namespace_project_path2806RemoveExpiredMembersWorker2807 #perform2808 project members28092018-06-26T13:51:00.041Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1038 cannot be removed - undefined method `name' for nil:NilClass2810 removes expired members28112018-06-26T13:51:00.729Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1044 cannot be removed - undefined method `name' for nil:NilClass2812 leaves members that expire in the future28132018-06-26T13:51:01.357Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1050 cannot be removed - undefined method `name' for nil:NilClass2814 leaves members that do not expire at all2815 group members28162018-06-26T13:51:01.678Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1055 cannot be removed - undefined method `name' for nil:NilClass2817 removes expired members28182018-06-26T13:51:02.034Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1058 cannot be removed - undefined method `name' for nil:NilClass2819 leaves members that expire in the future28202018-06-26T13:51:02.352Z 83 TID-gq0cvh15r ERROR: Expired Member ID=1061 cannot be removed - undefined method `name' for nil:NilClass2821 leaves members that do not expire at all2822 when the last group owner expires2823 does not delete the owner2824Subscribable Subscribable2825 #subscribed?2826 without user2827 returns false2828 without project2829 returns false when no subscription exists2830 returns true when a subcription exists and subscribed is true2831 returns false when a subcription exists and subscribed is false2832 with project2833 returns false when no subscription exists2834 returns true when a subcription exists and subscribed is true2835 returns false when a subcription exists and subscribed is false2836 #subscribers2837 returns [] when no subcribers exists2838 returns the subscribed users2839 #toggle_subscription2840 without project2841 toggles the current subscription state for the given user2842 with project2843 toggles the current subscription state for the given user2844 #subscribe2845 without project2846 subscribes the given user2847 with project2848 subscribes the given user2849 #unsubscribe2850 without project2851 unsubscribes the given current user2852 with project2853 unsubscribes the given current user2854Emails::PagesDomains2855 #pages_domain_enabled_email2856 should have body including "has been enabled"2857 behaves like a pages domain email2858 has the expected content2859 behaves like an email sent from GitLab2860 has the characteristics of an email sent from GitLab2861 behaves like it should not have Gmail Actions links2862 should not have body including "ViewAction"2863 behaves like a user cannot unsubscribe through footer link2864 does not have a List-Unsubscribe header or a body link2865 #pages_domain_disabled_email2866 should have body including "has been disabled"2867 behaves like a pages domain email2868 has the expected content2869 behaves like an email sent from GitLab2870 has the characteristics of an email sent from GitLab2871 behaves like it should not have Gmail Actions links2872 should not have body including "ViewAction"2873 behaves like a user cannot unsubscribe through footer link2874 does not have a List-Unsubscribe header or a body link2875 #pages_domain_verification_succeeded_email2876 should have body including "successfully verified"2877 behaves like a pages domain email2878 has the expected content2879 behaves like an email sent from GitLab2880 has the characteristics of an email sent from GitLab2881 behaves like it should not have Gmail Actions links2882 should not have body including "ViewAction"2883 behaves like a user cannot unsubscribe through footer link2884 does not have a List-Unsubscribe header or a body link2885 #pages_domain_verification_failed_email2886 says verification has failed and when the domain is enabled until2887 behaves like a pages domain email2888 has the expected content2889 behaves like an email sent from GitLab2890 has the characteristics of an email sent from GitLab2891 behaves like it should not have Gmail Actions links2892 should not have body including "ViewAction"2893 behaves like a user cannot unsubscribe through footer link2894 does not have a List-Unsubscribe header or a body link2895Projects members2896 with a group invitee2897 does not appear in the project members page2898 with a group and a project invitee2899 shows the project invitee, the project developer, and the group owner2900 with a group requester2901 does not appear in the project members page2902 with a group and a project requesters2903 shows the project requester, the project developer, and the group owner2904User deletes branch2905 deletes branch2906gitlab:artifacts namespace rake task2907 legacy artifacts2908 migrate2909 when local storage is used2910 and job does not have file store defined2911I, [2018-06-26T13:51:16.857133 #83] INFO -- : Starting transfer of artifacts2912I, [2018-06-26T13:51:16.872531 #83] INFO -- : Transferred artifacts of 83 of 106365 to object storage2913 migrates file to remote storage2914 and remote storage is defined2915I, [2018-06-26T13:51:17.123996 #83] INFO -- : Starting transfer of artifacts2916I, [2018-06-26T13:51:17.138060 #83] INFO -- : Transferred artifacts of 84 of 106365 to object storage2917 migrates file to remote storage2918 and remote storage is not defined2919I, [2018-06-26T13:51:17.370085 #83] INFO -- : Starting transfer of artifacts2920E, [2018-06-26T13:51:17.376133 #83] ERROR -- : Failed to transfer artifacts of 85 with error: Object Storage is not enabled2921 fails to migrate to remote storage2922 when remote storage is used2923I, [2018-06-26T13:51:17.611485 #83] INFO -- : Starting transfer of artifacts2924 file stays on remote storage2925 job artifacts2926 when local storage is used2927 and job does not have file store defined2928I, [2018-06-26T13:51:17.860596 #83] INFO -- : Starting transfer of artifacts2929I, [2018-06-26T13:51:17.903592 #83] INFO -- : Transferred artifacts of 87 of 106365 to object storage2930 migrates file to remote storage2931 and remote storage is defined2932I, [2018-06-26T13:51:18.115305 #83] INFO -- : Starting transfer of artifacts2933I, [2018-06-26T13:51:18.127421 #83] INFO -- : Transferred artifacts of 88 of 106365 to object storage2934 migrates file to remote storage2935 and remote storage is not defined2936I, [2018-06-26T13:51:18.352344 #83] INFO -- : Starting transfer of artifacts2937E, [2018-06-26T13:51:18.358642 #83] ERROR -- : Failed to transfer artifacts of 89 with error: Object Storage is not enabled2938 fails to migrate to remote storage2939 when remote storage is used2940I, [2018-06-26T13:51:18.563763 #83] INFO -- : Starting transfer of artifacts2941I, [2018-06-26T13:51:18.572960 #83] INFO -- : Transferred artifacts of 90 of 106365 to object storage2942 file stays on remote storage2943Logout/Sign out2944 sign out redirects to sign in page2945 sign out does not show signed out flash notice2946Gitlab::Database::RenameReservedPathsMigration::V1::RenameBase2947 #remove_last_ocurrence2948 removes only the last occurance of a string2949 #remove_cached_html_for_projects2950 removes description_html from projects2951 removes issue descriptions2952 removes merge request descriptions2953 removes note html2954 removes milestone description2955 #rename_path_for_routable2956 for namespaces2957 renames namespaces called the-path2958 renames the route to the namespace2959 renames the route for projects of the namespace2960 returns the old & the new path2961 doesn't rename routes that start with a similar name2962 the-path namespace -> subgroup -> the-path0 project2963 updates the route of the project correctly2964 for projects2965 renames the project called `the-path`2966 renames the route for the project2967 returns the old & new path2968 #perform_rename2969 for namespaces2970 renames the path2971 renames all the routes for the namespace2972 #move_pages2973 moves the pages directory2974 #move_uploads2975 moves subdirectories in the uploads folder2976 doesn't move uploads when they are stored in object storage2977 #move_folders2978 moves a folder with files2979 #track_rename2980 tracks a rename in redis2981 #reverts_for_type2982 yields for each tracked rename2983 keeps the revert in redis if it failed2984Subgroup Issuables2985 shows the full subgroup title when issues index page is empty (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2986 shows the full subgroup title when merge requests index page is empty (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2987Projects > Show > Redirects2988 shows public project page2989 redirects to sign in page when project is private2990 redirects to sign in page when project does not exist2991 redirects to public project page after signing in2992 redirects to private project page after sign in2993 when signed in2994 returns 404 status when project does not exist2995 returns 404 when project is private2996Projects::ProtectedBranchesController2997 GET #index2998 redirects empty repo to projects page2999 POST #create3000 creates the protected branch rule3001 when a policy restricts rule deletion3002 prevents creation of the protected branch rule3003 PUT #update3004 updates the protected branch rule3005 when a policy restricts rule deletion3006 prevents update of the protected branch rule3007 DELETE #destroy3008 deletes the protected branch rule3009 when a policy restricts rule deletion3010 prevents deletion of the protected branch rule3011projects/commit/show.html.haml3012 inline diff view3013 has limited width3014 parallel diff view3015 spans full width3016 in the context of a merge request3017Unused parameters passed to Capybara::Queries::SelectorQuery : ["http://test.host/namespace695/project701/merge_requests/1/diffs?commit_id=b83d6e391c22777fca1ed3012fce84f633d7fed0"]3018 shows that it is in the context of a merge request3019Projects > Show > RSS3020 when signed in3021 behaves like an autodiscoverable RSS feed with current_user's feed token3022 has an RSS autodiscovery link tag with current_user's feed token3023 when signed out3024 behaves like an autodiscoverable RSS feed without a feed token3025 has an RSS autodiscovery link tag without a feed token3026Projects > Files > User wants to add a Dockerfile file3027 user can pick a Dockerfile file from the dropdown3028Lfs::FileTransformer3029 #new_file3030 with lfs disabled3031 skips gitattributes check3032 returns untransformed content3033 returns untransformed encoding3034 with lfs enabled3035 reuses cached gitattributes3036 creates an LfsObject with the file's content3037 returns an LFS pointer3038 returns LFS pointer encoding as text3039 links LfsObjects to project3040 when doesn't use LFS3041 doesn't create LFS pointers3042 when LfsObject already exists3043 links LfsObjects to project3044Gitlab::Plugin3045 .execute3046 successful execution3047 should equal true3048 should be empty3049 ensures plugin received data via stdin3050 non-executable3051 should equal false3052 should include "Permission denied"3053 non-zero exit3054 should equal false3055 should be empty3056Groups > Members > Filter members3057 shows all members3058 shows only 2FA members3059 shows only non 2FA members3060ScheduleMergeRequestDiffMigrations3061 correctly schedules background migrations3062 schedules background migrations3063Labels::FindOrCreateService3064 #execute3065 when acting on behalf of a specific user3066 when finding labels on project level3067 when label does not exist at group level3068 creates a new label at project level3069 when label exists at group level3070 returns the group label3071 when label exists at project level3072 returns the project label3073 when finding labels on group level3074 when label does not exist at group level3075 creates a new label at group level3076 when label exists at group level3077 returns the group label3078 when authorization is not required3079 when finding labels on project level3080 returns the project label3081 when finding labels on group level3082 returns the group label3083Banzai::ObjectRenderer3084 #render3085 with cache3086 renders and redacts an Array of objects3087 calls Banzai::Redactor to perform redaction3088 retrieves field content using Banzai::Renderer.render_field3089 passes context to PostProcessPipeline3090 without cache3091 renders and redacts an Array of objects3092 calls Banzai::Redactor to perform redaction3093 retrieves field content using Banzai::Renderer.cacheless_render_field3094MigrateRemainingMrMetricsPopulatingBackgroundMigration3095 correctly schedules background migrations3096Projects::BlameController3097 GET show3098 valid file3099 should respond with 2003100 invalid file3101 should respond with numeric status code 4043102ScheduleSetConfidentialNoteEventsOnWebhooks3103 schedules background migrations at correct time3104 correctly processes web hooks3105Projects > Show > Download buttons3106 when checking project main page3107 with artifacts3108 shows download artifacts button3109 download links have download attribute3110Gitlab::OtpKeyRotator3111 #rotate!3112 stores the calculated values in a spreadsheet3113 new key is too short3114 should raise ArgumentError3115 new key is the same as the old key3116 should raise ArgumentError3117 #rollback!3118 updates rows to the old value3119RemoveAssigneeIdFromIssue3120 #down3121 sets the assignee_id to a random matching assignee from the assignees table3122Members::RequestAccessService3123 when source is nil3124 behaves like a service raising Gitlab::Access::AccessDeniedError3125 raises Gitlab::Access::AccessDeniedError3126 when current user cannot request access to the project3127 behaves like a service raising Gitlab::Access::AccessDeniedError3128 raises Gitlab::Access::AccessDeniedError3129 behaves like a service raising Gitlab::Access::AccessDeniedError3130 raises Gitlab::Access::AccessDeniedError3131 when access requests are disabled3132 behaves like a service raising Gitlab::Access::AccessDeniedError3133 raises Gitlab::Access::AccessDeniedError3134 behaves like a service raising Gitlab::Access::AccessDeniedError3135 raises Gitlab::Access::AccessDeniedError3136 when current user can request access to the project3137 behaves like a service creating a access request3138 succeeds3139 returns a <Source>Member3140 behaves like a service creating a access request3141 succeeds3142 returns a <Source>Member3143GroupMember3144 .access_level_roles3145 returns Gitlab::Access.options_with_owner3146 .access_levels3147 returns Gitlab::Access.options_with_owner3148 .add_users3149 adds the given users to the given group3150 behaves like members notifications3151 #after_create3152 sends email to user3153 #after_update3154 calls NotificationService.update_group_member3155 does not send an email when the access level has not changed3156 #accept_request3157 calls NotificationService.new_group_member3158 #accept_invite!3159 calls NotificationService.accept_group_invite3160 #decline_invite!3161 calls NotificationService.decline_group_invite3162 #real_source_type3163 should eq "Group"3164 #update_two_factor_requirement3165 is called after creation and deletion3166API::BroadcastMessages3167 GET /broadcast_messages3168 returns a 401 for anonymous users3169 returns a 403 for users3170 returns an Array of BroadcastMessages for admins3171 GET /broadcast_messages/:id3172 returns a 401 for anonymous users3173 returns a 403 for users3174 returns the specified message for admins3175 POST /broadcast_messages3176 returns a 401 for anonymous users3177 returns a 403 for users3178 as an admin3179 requires the `message` parameter3180 defines sane default start and end times3181 accepts a custom background and foreground color3182 PUT /broadcast_messages/:id3183 returns a 401 for anonymous users3184 returns a 403 for users3185 as an admin3186 accepts new background and foreground colors3187 accepts new start and end times3188 accepts a new message3189 DELETE /broadcast_messages/:id3190 returns a 401 for anonymous users3191 returns a 403 for users3192 deletes the broadcast message for admins3193 behaves like 412 response3194 for a modified ressource3195 returns 4123196 for an unmodified ressource3197 returns accepted3198Gitlab::GithubImport::MilestoneFinder3199 #id_for3200 with a cache in place3201 returns the milestone ID of the given issuable3202 returns nil for an empty cache key3203 returns nil for an issuable with a non-existing milestone3204 without a cache in place3205 returns nil3206 #build_cache3207 builds the cache of all project milestones3208 #cache_key_for3209 returns the cache key for an IID3210Tags::CreateService3211 #execute3212 creates the tag and returns success3213 when target is invalid3214 returns an error3215 when tag already exists3216 returns an error3217 when pre-receive hook fails3218 returns an error3219API::Settings Settings3220 GET /application/settings3221 returns application settings3222 PUT /application/settings3223 supports legacy performance_bar_allowed_group_id3224 supports legacy performance_bar_enabled3225 custom repository storage type set in the config3226 updates application settings3227 missing koding_url value when koding_enabled is true3228 returns a blank parameter error message3229 missing plantuml_url value when plantuml_enabled is true3230 returns a blank parameter error message3231CleanStageIdReferenceMigration3232 when there are pending background migrations3233Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gitlab-org/gitlab-ee/spec/support/sidekiq.rb:13:in `block (3 levels) in <top (required)>')3234 processes pending jobs synchronously3235 when there are no background migrations pending3236Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gitlab-org/gitlab-ee/spec/support/sidekiq.rb:13:in `block (3 levels) in <top (required)>')3237 does nothing3238ProjectDeployToken3239 should belong to project3240 should belong to deploy_token3241 should validate that :deploy_token cannot be empty/falsy3242 should validate that :project cannot be empty/falsy3243 should validate that :deploy_token_id is case-sensitively unique within the scope of :project_id3244Import::FogbugzController3245 GET status3246 assigns variables3247 does not show already added project3248Upload3249 assocations3250 should belong to model3251 validations3252 should validate that :size cannot be empty/falsy3253 should validate that :path cannot be empty/falsy3254 should validate that :model cannot be empty/falsy3255 should validate that :uploader cannot be empty/falsy3256 callbacks3257 for a file above the checksum threshold3258 schedules checksum calculation3259 for a file at or below the checksum threshold3260 calculates checksum immediately before save3261 after_destroy3262 uploader is FileUploader-based3263 calls delete_file!3264 #absolute_path3265 returns the path directly when already absolute3266 delegates to the uploader's absolute_path method3267 #calculate_checksum!3268 sets `checksum` to SHA256 sum of the file3269 sets `checksum` to nil for a non-existant file3270 #exist?3271 returns true when the file exists3272 when the file does not exist3273 returns false3274 when the record is persisted3275 sends a message to Sentry3276 increments a metric counter to signal a problem3277 when the record is not persisted3278 does not send a message to Sentry3279 does not increment a metric counter3280 #uploader_context3281 should match (a hash including {:secret => "secret", :identifier => "file.txt"})3282Gitlab::Ci::Status::Build::Canceled3283 #illustration3284 should include :image, :size, and :title3285 .matches?3286 when build is canceled3287 is a correct match3288 when build is not canceled3289 does not match3290Milestones::CreateService3291 #execute3292 valid params3293 should be valid3294 should eq "v2.1.9"3295Gitlab::ImportExport::AfterExportStrategies::WebUploadStrategy3296 validations3297 only POST and PUT method allowed3298 onyl allow urls as upload urls3299 #execute3300 removes the exported project file after the upload3301Projects > Files > User views files page3302 user sees folders and submodules sorted together, followed by files3303Gitlab::LegacyGithubImport::ReleaseFormatter3304 #attributes3305 returns formatted attributes3306 #valid3307 when release is not a draft3308 returns true3309 when release is draft3310 returns false3311Profiles::PreferencesController3312 GET show3313 renders3314 assigns user3315 PATCH update3316 on successful update3317 sets the flash3318 changes the user's preferences3319 on failed update3320 sets the flash3321 on invalid dashboard setting3322 sets the flash3323 as js3324 renders3325 as html3326 redirects3327Gitlab::Ci::Status::Build::Created3328 #illustration3329 should include :image, :size, :title, and :content3330 .matches?3331 when build is created3332 is a correct match3333 when build is not created3334 does not match3335Gitlab::Auth::UserAccessDeniedReason3336 #rejection_message3337 when a user is blocked3338 should match /blocked/3339 a user did not accept the enforced terms3340 should match /must accept the Terms of Service/3341 should include "user1335"3342 when the user is internal3343 should match /This action cannot be performed by internal users/3344PushoverService3345 Associations3346 should belong to project3347 should have one service_hook3348 Validations3349 when service is active3350 should validate that :api_key cannot be empty/falsy3351 should validate that :user_key cannot be empty/falsy3352 should validate that :priority cannot be empty/falsy3353 when service is inactive3354 should not validate that :api_key cannot be empty/falsy3355 should not validate that :user_key cannot be empty/falsy3356 should not validate that :priority cannot be empty/falsy3357 Execute3358 calls Pushover API3359Emails::CreateService3360 #execute3361 creates an email with valid attributes3362 creates an email with additional attributes3363 has the right user association3364 registers a security event3365Gitlab::Git::DiffCollection3366 #to_a3367 should be a kind of Array3368 #decorate!3369 modifies the array in place3370 avoids future iterator iterations3371 overflow handling3372 adding few enough files3373 and few enough lines3374 #overflow?3375 should be falsey3376 #empty?3377 should be falsey3378 #real_size3379 should eq "3"3380 #size3381 should eq 33382 does not change after peeking3383 when limiting is disabled3384 #overflow?3385 should be falsey3386 #empty?3387 should be falsey3388 #real_size3389 should eq "3"3390 #size3391 should eq 33392 does not change after peeking3393 and too many lines3394 should eq 03395 #overflow?3396 should be truthy3397 #empty?3398 should be falsey3399 #real_size3400 should eq "0+"3401 when limiting is disabled3402 should eq 33403 #overflow?3404 should be falsey3405 #empty?3406 should be falsey3407 #real_size3408 should eq "3"3409 adding too many files3410 and few enough lines3411 should eq 103412 #overflow?3413 should be truthy3414 #empty?3415 should be falsey3416 #real_size3417 should eq "10+"3418 when limiting is disabled3419 should eq 113420 #overflow?3421 should be falsey3422 #empty?3423 should be falsey3424 #real_size3425 should eq "11"3426 and too many lines3427 should eq 33428 #overflow?3429 should be truthy3430 #empty?3431 should be falsey3432 #real_size3433 should eq "3+"3434 when limiting is disabled3435 should eq 113436 #overflow?3437 should be falsey3438 #empty?3439 should be falsey3440 #real_size3441 should eq "11"3442 adding exactly the maximum number of files3443 and few enough lines3444 should eq 103445 #overflow?3446 should be falsey3447 #empty?3448 should be falsey3449 #real_size3450 should eq "10"3451 adding too many bytes3452 should eq 93453 #overflow?3454 should be truthy3455 #empty?3456 should be falsey3457 #real_size3458 should eq "9+"3459 when limiting is disabled3460 should eq 103461 #overflow?3462 should be falsey3463 #empty?3464 should be falsey3465 #real_size3466 should eq "10"3467 empty collection3468 #overflow?3469 should be falsey3470 #empty?3471 should be truthy3472 #size3473 should eq 03474 #real_size3475 should eq "0"3476 #each3477 when diff are too large3478 yields Diff instances even when they are too large3479 prunes diffs that are too large3480 when diff is quite large will collapse by default3481 when no collapse is set3482 yields Diff instances even when they are quite big3483 does not prune diffs3484 when no collapse is unset3485 yields Diff instances even when they are quite big3486 prunes diffs that are quite big3487 when go over safe limits on files3488 prunes diffs by default even little ones3489 when go over safe limits on lines3490 prunes diffs by default even little ones3491 when go over safe limits on bytes3492 prunes diffs by default even little ones3493 when limiting is disabled3494 yields Diff instances even when they are quite big3495 does not prune diffs3496Gitlab::GitlabImport::ProjectCreator3497 creates project3498API::SidekiqMetrics3499 GET sidekiq/*3500 defines the `queue_metrics` endpoint3501 defines the `process_metrics` endpoint3502 defines the `job_stats` endpoint3503 defines the `compound_metrics` endpoint3504UrlValidator3505 #validates_each3506 with no options3507 allows http,https protocols by default3508 checks that the url structure is valid3509 with protocols3510 allows urls with the defined protocols3511 add error if the url protocol does not match the selected ones3512 by default3513 does not block urls pointing to localhost3514 does not block urls pointing to the local network3515 when allow_localhost is set to false3516 blocks urls pointing to localhost3517 when allow_local_network is set to false3518 blocks urls pointing to the local network3519 when ports is3520 empty3521 does not block any port3522 set3523 blocks urls with a different port3524 when enforce_user is3525 true3526 checks user format3527 false (default)3528 does not check user format3529gitlab:env:info3530 git version3531 when git installed3532 prints git version3533 when git not installed3534 prints unknown3535Import::GitlabProjectsController3536 POST create3537 with an invalid path3538 redirects with an error3539 redirects with an error when a relative path is used3540 with a valid path3541 redirects to the new project path3542SystemCheck::Orphans::RepositoryCheck3543 #multi_check3544 all orphans3545 prints list of all orphaned namespaces except @hashed3546 few orphans with existing namespace3547 prints list of orphaned namespaces3548 few orphans with existing namespace and parents with same name as orphans3549 prints list of orphaned namespaces ignoring parents with same namespace as orphans3550 no orphans3551 prints an empty list ignoring @hashed3552VariableDuplicatesValidator3553 #validate_each3554 with no scope3555 does not have any errors3556 with duplicates3557 has a duplicate key error3558 with a scope attribute3559 does not have any errors3560 with duplicates3561 has a duplicate key error3562UpdateRetriedForCiBuild3563 updates ci_builds.is_retried3564Gitlab::Ci::Config::Entry::Global3565 .nodes3566 returns a hash3567 when filtering all the entry/node names3568 contains the expected node names3569 when configuration is valid3570 when some entries defined3571 #compose!3572 creates nodes hash3573 creates node object for each entry3574 creates node object using valid class3575 sets correct description for nodes3576 #leaf?3577 is not leaf3578 when not composed3579 #before_script_value3580 returns nil3581 #leaf?3582 is leaf3583 when composed3584 #errors3585 has no errors3586 #before_script_value3587 returns correct script3588 #image_value3589 returns valid image3590 #services_value3591 returns array of services3592 #after_script_value3593 returns after script3594 #variables_value3595 returns variables3596 #stages_value3597 when stages key defined3598 returns array of stages3599 when deprecated types key defined3600 returns array of types as stages3601 #cache_value3602 returns cache configuration3603 #jobs_value3604 returns jobs configuration3605 when most of entires not defined3606 #nodes3607 instantizes all nodes3608 contains unspecified nodes3609 #variables_value3610 returns default value for variables3611 #stages_value3612 returns an array of default stages3613 #cache_value3614 returns correct cache definition3615 when entires specified but not defined3616 #variables_value3617 undefined entry returns a default value3618 when configuration is not valid3619 when before script is not an array3620 #valid?3621 is not valid3622 #errors3623 reports errors from child nodes3624 #before_script_value3625 returns nil3626 when job does not have commands3627 #errors3628 reports errors about missing script3629 when value is not a hash3630 #valid?3631 is not valid3632 #errors3633 returns error about invalid type3634 #specified?3635 is concrete entry that is defined3636 #[]3637 when entry exists3638 returns correct entry3639 when entry does not exist3640 always return unspecified node3641Gitlab::GitalyClient3642 .stub_class3643 returns the gRPC health check stub3644 returns a Gitaly stub3645 .stub_address3646 returns the same result after being called multiple times3647 .stub3648 when passed a UNIX socket address3649 passes the address as-is to GRPC3650 when passed a TCP address3651 strips tcp:// prefix before passing it to GRPC::Core::Channel initializer3652 allow_n_plus_1_calls3653 when RequestStore is enabled3654 returns the result of the allow_n_plus_1_calls block3655 when RequestStore is not active3656 returns the result of the allow_n_plus_1_calls block3657 enforce_gitaly_request_limits?3658 when RequestStore is enabled3659 allows up the maximum number of allowed calls3660 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block3661 when the maximum number of calls has been reached3662 fails on the next call3663 when the maximum number of calls has been reached within an allow_n_plus_1_calls block3664 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block3665 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block3666 when RequestStore is not active3667 does not raise errors when the maximum number of allowed calls is exceeded3668 does not fail when the maximum number of calls is exceeded within an allow_n_plus_1_calls block3669 get_request_count3670 when RequestStore is enabled3671 when enforce_gitaly_request_limits is called outside of allow_n_plus_1_calls blocks3672 counts gitaly calls3673 when enforce_gitaly_request_limits is called inside and outside of allow_n_plus_1_calls blocks3674 counts gitaly calls3675 when reset_counts is called3676 resets counts3677 when RequestStore is not active3678 returns zero3679 feature_enabled?3680 when Gitaly is disabled3681 returns false3682 when the feature status is DISABLED3683 returns false3684 when the feature_status is OPT_IN3685 when the feature flag hasn't been set3686 returns false3687 when the feature flag is set to disable3688 returns false3689 when the feature flag is set to enable3690 returns true3691 when the feature flag is set to a percentage of time3692 bases the result on pseudo-random numbers3693 when a feature is not persisted3694 returns false when opt_into_all_features is off3695 returns true when the override is on3696 when the feature_status is OPT_OUT3697 when the feature flag hasn't been set3698 returns true3699 when the feature flag is set to disable3700 returns false3701 timeouts3702 with default values3703 returns expected values3704AuthHelper3705 button_based_providers3706 returns all enabled providers from devise3707 does not return ldap provider3708 excludes group_saml3709 returns empty array3710 providers_for_base_controller3711 returns all enabled providers from devise3712 excludes ldap providers3713 excludes group_saml3714 form_based_providers3715 includes LDAP providers3716 includes crowd provider3717 includes kerberos provider3718 enabled_button_based_providers3719 all providers are enabled to sign in3720 returns all the enabled providers from settings3721 GitHub OAuth sign in is disabled from application setting3722 doesn't return github as provider3723 button_based_providers_enabled?3724 button based providers enabled3725 returns true3726 all the button based providers are disabled via application_setting3727 returns false3728 unlink_allowed?3729 returns true if the provider is saml3730 returns true if the provider is cas33731 returns false if the provider is twitter3732 returns false if the provider is facebook3733 returns false if the provider is google_oauth23734 returns false if the provider is gitlab3735 returns false if the provider is github3736 returns false if the provider is bitbucket3737 returns false if the provider is crowd3738 returns false if the provider is auth03739 returns false if the provider is authentiq3740LfsObjectUploader3741 behaves like builds correct paths3742 #store_dir3743 behaves like matches the method pattern3744 should match /\h{2}\/\h{2}/3745 #cache_dir3746 behaves like matches the method pattern3747 should match /\/lfs-objects\/tmp\/cache/3748 #work_dir3749 behaves like matches the method pattern3750 should match /\/lfs-objects\/tmp\/work/3751 #upload_path3752 behaves like matches the method pattern3753 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3754 .absolute_path3755 behaves like matches the method pattern3756 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3757 .base_dir3758 behaves like matches the method pattern3759 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3760 object store is REMOTE3761 behaves like builds correct paths3762 #store_dir3763 behaves like matches the method pattern3764 should match /\h{2}\/\h{2}/3765 #cache_dir3766 behaves like matches the method pattern3767 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3768 #work_dir3769 behaves like matches the method pattern3770 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3771 #upload_path3772 behaves like matches the method pattern3773 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3774 .absolute_path3775 behaves like matches the method pattern3776 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3777 .base_dir3778 behaves like matches the method pattern3779 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3780 migration to object storage3781 with object storage disabled3782 is skipped3783 with object storage enabled3784 is scheduled to run after creation3785 remote file3786 with object storage enabled3787 can store file remotely3788Emails::ConfirmService3789 #execute3790 sends a confirmation email again3791#<Doorkeeper::Config:0x000055d01f1365b0>3792 #default_scopes3793 matches Gitlab::Auth::DEFAULT_SCOPES3794 #optional_scopes3795 matches Gitlab::Auth.optional_scopes3796 #resource_owner_authenticator3797 with a user present3798 returns the user3799 does not redirect3800 does not store the return path3801 without a user present3802 returns nil3803 redirects to the login form3804 stores the return path3805Gitlab::Metrics::MethodCall3806 #measure3807 measures the performance of the supplied block3808 when measurement is above threshold3809 prometheus instrumentation is enabled3810 metric is not a NullMetric3811 observes the performance of the supplied block3812 prometheus instrumentation is disabled3813 observes using NullMetric3814 when measurement is below threshold3815 does not observe the performance3816 #to_metric3817 returns a Metric instance3818 #above_threshold?3819 returns false when the total call time is not above the threshold3820 returns true when the total call time is above the threshold3821 #call_count3822 without any method calls3823 returns 03824 with method calls3825 returns the number of method calls3826 #cpu_time3827 without timings3828 returns 0.03829 with timings3830 returns the total CPU time3831 #real_time3832 without timings3833 returns 0.03834 with timings3835 returns the total real time3836Gitlab::Ci::Pipeline::Chain::Sequence3837 when one of steps breaks the chain3838 does not process the second step3839 returns a pipeline object3840 when all chains are executed correctly3841 iterates through entire sequence3842 returns a pipeline object3843Gitlab::DependencyLinker::PodspecLinker3844 .support?3845 supports *.podspec3846 does not support other files3847 #link3848 links the gem name3849 links the license3850 links the homepage3851 links the source URL3852 links dependencies3853Gitlab::Git::Index3854 #create3855 when no file at that path exists3856 creates the file in the index3857 when a file at that path exists3858 raises an error3859 when content is in base643860 decodes base643861 when content contains CRLF3862 converts to LF3863 #create_dir3864 when no file or dir at that path exists3865 creates the dir in the index3866 when a file at that path exists3867 raises an error3868 when a directory at that path exists3869 raises an error3870 #update3871 when no file at that path exists3872 raises an error3873 when a file at that path exists3874 updates the file in the index3875 preserves file mode3876 #move3877 when no file at that path exists3878 raises an error3879 when a file at the new path already exists3880 raises an error3881 when a file at that path exists3882 removes the old file in the index3883 creates the new file in the index3884 preserves file mode3885 #delete3886 when no file at that path exists3887 raises an error3888 when a file at that path exists3889 removes the file in the index3890RuboCop::Cop::Migration::RemoveIndex3891 in migration3892 registers an offense when remove_index is used3893 outside of migration3894 registers no offense3895Banzai::Filter::MathFilter3896 leaves regular inline code unchanged3897 removes surrounding dollar signs and adds class code, math and js-render-math3898 only removes surrounding dollar signs3899 only removes surrounding single dollar sign3900 adds data-math-style inline attribute to inline math3901 adds class code and math to inline math3902 adds js-render-math class to inline math3903 ignores cases with missing dolar sign at the end3904 ignores cases with missing dolar sign at the beginning3905 ignores dollar signs if it is not adjacent3906 ignores dollar signs if they are inside another element3907 adds data-math-style display attribute to display math3908 adds js-render-math class to display math3909 ignores code blocks that are not math3910 requires the pre to contain both code and math3911 dollar signs around to display math3912Gitlab::HealthChecks::Redis::QueuesCheck3913 #metrics3914 Check is passing3915 should include (have attributes {:name => "redis_queues_ping_success", :value => 1})3916 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})3917 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3918 Check is misbehaving3919 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})3920 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})3921 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3922 Check is timeouting3923 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})3924 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 1})3925 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3926 #readiness3927 Check returns ok3928 should have attributes {:success => true}3929 Check is misbehaving3930 should have attributes {:success => false, :message => "unexpected Queues check result: error!"}3931 Check is timeouting3932 should have attributes {:success => false, :message => "Queues check timed out"}3933 #liveness3934 should eq #<struct Gitlab::HealthChecks::Result success=true, message=nil, labels=nil>3935PaginationHelper3936 #paginate_collection3937 paginates a collection without using a COUNT3938 paginates a collection using a COUNT3939Gitlab::DependencyLinker3940 .link3941 links using GemfileLinker3942 links using GemspecLinker3943 links using PackageJsonLinker3944 links using ComposerJsonLinker3945 links using PodfileLinker3946 links using PodspecLinker3947 links using PodspecJsonLinker3948 links using CartfileLinker3949 links using GodepsJsonLinker3950 links using RequirementsTxtLinker3951Gitlab::FileDetector3952 .types_in_paths3953 returns the file types for the given paths3954 does not include unrecognized file paths3955 .type_of3956 returns the type of a README file3957 returns nil for a README file in a directory3958 returns the type of a changelog file3959 returns the type of a license file3960 returns the type of a version file3961 returns the type of a .gitignore file3962 returns the type of a Koding config file3963 returns the type of a GitLab CI config file3964 returns the type of an avatar3965 returns the type of an issue template3966 returns the type of a merge request template3967 returns nil for an unknown file3968Gitlab::Auth::LDAP::AuthHash3969 without overridden attributes3970 has the correct username3971 has the correct name3972 with overridden attributes3973 has the correct username3974 has the correct name3975 #uid3976 when there is extraneous (but valid) whitespace3977 removes the extraneous whitespace3978 when there are upper case characters3979 downcases3980 #username3981 if lowercase_usernames setting is3982 enabled the username attribute is lower cased3983 disabled the username attribute is not lower cased3984Doorkeeper::OpenidConnect::DiscoveryController routing3985 to #provider3986 to #webfinger3987 to #keys3988Doorkeeper::OpenidConnect::UserinfoController routing3989 to #show3990 to #show3991Gitlab::Sherlock::FileSample3992 #id3993 returns the ID3994 #file3995 returns the file path3996 #line_samples3997 returns the line samples3998 #events3999 returns the total number of events4000 #duration4001 returns the total execution time4002 #relative_path4003 returns the relative path4004 #to_param4005 returns the sample ID4006 #source4007 returns the contents of the file4008Gitlab::DowntimeCheck4009 #check4010 when a migration does not specify if downtime is required4011 raises RuntimeError4012 when a migration requires downtime4013 when no reason is specified4014 raises RuntimeError4015 when a reason is specified4016 returns an Array of messages4017 #check_and_print4018 checks the migrations and prints the results to STDOUT4019 #class_for_migration_file4020 returns the class for a migration file path4021 #online?4022 returns true when a migration can be performed online4023 returns false when a migration can not be performed online4024 #downtime_reason4025 when a reason is defined4026 returns the downtime reason4027 when a reason is not defined4028 returns nil4029Gitlab::Diff::Formatters::TextFormatter4030 behaves like position formatter4031 #key4032 should eq [123, 456, 789, "35bd01186d18c9f4842e2f377cc780a95bab7bcf", "02fa17b1a8378a17c3103dc5a6cb16a5f73a1433", 1, 2]4033 #complete?4034 when there are missing key attributes4035 should be truthy4036 when old_line and new_line are nil4037 should be falsy4038 #to_h4039 should eq {:base_sha=>123, :start_sha=>456, :head_sha=>789, :old_path=>"old_path.txt", :new_path=>"new_path.txt", :old_line=>1, :new_line=>2, :position_type=>"text"}4040 #==4041 should eq #<Gitlab::Diff::Formatters::TextFormatter:0x000055d01c6db720 @old_line=1, @new_line=2, @old_path="old_path.txt", @new_path="new_path.txt", @base_sha=123, @start_sha=456, @head_sha=789>4042 #line_age4043 when there is only new_line4044 should eq "new"4045 when there is only old_line4046 should eq "old"4047Gitlab::Ci::Config::Entry::Factory4048 #create!4049 when setting a concrete value4050 creates entry with valid value4051 when setting description4052 creates entry with description4053 when setting key4054 creates entry with custom key4055 when setting a parent4056 creates entry with valid parent4057 when not setting a value4058 raises error4059 when creating entry with nil value4060 creates an unspecified entry4061 when passing metadata4062 passes metadata as a parameter4063Gitlab::CycleAnalytics::StagingStage4064 behaves like base stage4065 has the median data value4066 has the median data stage4067 has the median data description4068 has the title4069 has the events4070Gitlab::Diff::Formatters::ImageFormatter4071 behaves like position formatter4072 #key4073 should eq [123, 456, 789, "8b5f87754bd090b9e0837feef68f1737103de62b", "5b972068ce0905d88056d0c4b788554d34949d27", 1, 2]4074 #complete?4075 when there are missing key attributes4076 should be truthy4077 when old_line and new_line are nil4078 should be falsy4079 #to_h4080 should eq {:base_sha=>123, :start_sha=>456, :head_sha=>789, :old_path=>"old_image.png", :new_path=>"new_image.png", :position_type=>"image", :width=>100, :height=>100, :x=>1, :y=>2}4081 #==4082 should eq #<Gitlab::Diff::Formatters::ImageFormatter:0x000055d010aec2f8 @x=1, @y=2, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>4083Gitlab::Ci::Config::Entry::Validatable4084 .validator4085 returns validator4086 returns only one validator to mitigate leaks4087 when validating entry instance4088 when attribute is valid4089 instance of validator is valid4090 when attribute is not valid4091 instance of validator is invalid4092ProtectedTag4093 Associations4094 should belong to project4095 Validation4096 should validate that :project cannot be empty/falsy4097 should validate that :name cannot be empty/falsy4098RuboCop::Cop::SidekiqOptionsQueue4099 registers an offense when `sidekiq_options` is used with the `queue` option4100 does not register an offense when `sidekiq_options` is used with another option4101Gitlab::ChatNameToken4102 when using unknown token4103 returns empty data4104 when storing data4105 returns stored data4106 and after deleting them4107 data are removed4108Gitlab::LegacyGithubImport::IssuableFormatter4109 #project_association4110 should raise NotImplementedError4111 #number4112 should eq 424113 #find_condition4114 should eq {:iid=>42}4115Banzai::Filter::YamlFrontMatterFilter4116 allows for `encoding:` before the frontmatter4117 converts YAML frontmatter to a fenced code block4118 on content without frontmatter4119 returns the content unmodified4120ConversationalDevelopmentIndex::Metric4121 #percentage_score4122 returns stored percentage score4123CronjobQueue4124 sets the queue name of a worker4125 disables retrying of failed jobs4126Gitlab::GithubImport::Representation4127 .symbolize_hash4128 returns a Hash with the keys as Symbols4129 parses timestamp fields into Time instances4130Gitlab::Routing4131 when module is included4132 makes it possible to access url helpers4133 when module is not included4134 exposes url helpers module through a method4135Gitlab::GithubImport::Representation::ExposeAttribute4136 defines a getter method that returns an attribute value4137Knapsack report was generated. Preview:4138{4139 "spec/features/discussion_comments/issue_spec.rb": 111.35785102844238,4140 "spec/features/merge_request/user_sees_versions_spec.rb": 59.38346195220947,4141 "spec/features/issues/filtered_search/dropdown_emoji_spec.rb": 49.132715463638306,4142 "spec/models/gpg_signature_spec.rb": 39.331517696380615,4143 "spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb": 26.034177780151367,4144 "spec/features/boards/modal_filter_spec.rb": 22.765344619750977,4145 "spec/features/projects/clusters/user_spec.rb": 19.511714220046997,4146 "spec/requests/api/jobs_spec.rb": 21.64436364173889,4147 "spec/features/projects/files/user_uploads_files_spec.rb": 16.79045295715332,4148 "spec/features/merge_requests/user_lists_merge_requests_spec.rb": 10.166207551956177,4149 "spec/features/issuables/close_reopen_report_toggle_spec.rb": 12.583902835845947,4150 "spec/features/profile_spec.rb": 9.637155771255493,4151 "spec/requests/api/group_milestones_spec.rb": 11.593053102493286,4152 "spec/models/project_services/hipchat_service_spec.rb": 9.097069025039673,4153 "spec/services/merge_requests/rebase_service_spec.rb": 9.187209367752075,4154 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 8.490339279174805,4155 "spec/migrations/fix_wrongly_renamed_routes_spec.rb": 5.914099454879761,4156 "spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb": 5.192704439163208,4157 "spec/features/projects/merge_requests/user_closes_merge_request_spec.rb": 3.2484099864959717,4158 "spec/lib/gitlab/usage_data_spec.rb": 6.281727075576782,4159 "spec/requests/api/pages_domains_spec.rb": 5.382092714309692,4160 "spec/features/groups/issues_spec.rb": 4.568880796432495,4161 "spec/requests/api/group_boards_spec.rb": 4.8105995655059814,4162 "spec/services/merge_requests/merge_when_pipeline_succeeds_service_spec.rb": 5.9248456954956055,4163 "spec/models/container_repository_spec.rb": 3.9581637382507324,4164 "spec/lib/gitlab/legacy_github_import/importer_spec.rb": 5.550436019897461,4165 "spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb": 4.7029547691345215,4166 "spec/features/milestones/user_creates_milestone_spec.rb": 3.5481414794921875,4167 "spec/controllers/projects/imports_controller_spec.rb": 3.3199591636657715,4168 "spec/workers/remove_expired_members_worker_spec.rb": 3.0361790657043457,4169 "spec/models/concerns/subscribable_spec.rb": 2.9811456203460693,4170 "spec/mailers/emails/pages_domains_spec.rb": 3.030285596847534,4171 "spec/features/projects/members/group_members_spec.rb": 2.894249677658081,4172 "spec/features/projects/branches/user_deletes_branch_spec.rb": 2.1612436771392822,4173 "spec/tasks/gitlab/artifacts/migrate_rake_spec.rb": 2.6292803287506104,4174 "spec/features/users/logout_spec.rb": 1.9193174839019775,4175 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb": 2.4080698490142822,4176 "spec/features/projects/show/redirects_spec.rb": 1.9280145168304443,4177 "spec/controllers/projects/protected_branches_controller_spec.rb": 2.5349249839782715,4178 "spec/views/projects/commit/show.html.haml_spec.rb": 1.7913575172424316,4179 "spec/features/projects/show/rss_spec.rb": 1.351149559020996,4180 "spec/features/projects/files/dockerfile_dropdown_spec.rb": 1.8339989185333252,4181 "spec/services/lfs/file_transformer_spec.rb": 2.2596306800842285,4182 "spec/lib/gitlab/plugin_spec.rb": 2.1827914714813232,4183 "spec/features/groups/members/filter_members_spec.rb": 1.3068513870239258,4184 "spec/migrations/schedule_merge_request_diff_migrations_spec.rb": 3.2629570960998535,4185 "spec/services/labels/find_or_create_service_spec.rb": 1.4027767181396484,4186 "spec/lib/banzai/object_renderer_spec.rb": 1.6484699249267578,4187 "spec/migrations/migrate_remaining_mr_metrics_populating_background_migration_spec.rb": 2.3385870456695557,4188 "spec/controllers/projects/blame_controller_spec.rb": 1.7244033813476562,4189 "spec/migrations/schedule_set_confidential_note_events_on_webhooks_spec.rb": 3.2686071395874023,4190 "spec/features/projects/show/download_buttons_spec.rb": 2.262002468109131,4191 "spec/lib/gitlab/otp_key_rotator_spec.rb": 1.1117451190948486,4192 "spec/migrations/remove_assignee_id_from_issue_spec.rb": 2.752650260925293,4193 "spec/services/members/request_access_service_spec.rb": 1.3735747337341309,4194 "spec/models/members/group_member_spec.rb": 1.3664782047271729,4195 "spec/requests/api/broadcast_messages_spec.rb": 1.1526262760162354,4196 "spec/lib/gitlab/github_import/milestone_finder_spec.rb": 0.904167890548706,4197 "spec/services/tags/create_service_spec.rb": 1.138646125793457,4198 "spec/requests/api/settings_spec.rb": 0.7794840335845947,4199 "spec/migrations/clean_stage_id_reference_migration_spec.rb": 1.6499414443969727,4200 "spec/models/project_deploy_token_spec.rb": 0.8536632061004639,4201 "spec/controllers/import/fogbugz_controller_spec.rb": 0.3945949077606201,4202 "spec/models/upload_spec.rb": 0.521674633026123,4203 "spec/lib/gitlab/ci/status/build/canceled_spec.rb": 0.5256044864654541,4204 "spec/services/milestones/create_service_spec.rb": 0.47031211853027344,4205 "spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb": 0.8838679790496826,4206 "spec/features/projects/files/files_sort_submodules_with_folders_spec.rb": 0.5494565963745117,4207 "spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 0.34665489196777344,4208 "spec/controllers/profiles/preferences_controller_spec.rb": 0.44310927391052246,4209 "spec/lib/gitlab/ci/status/build/created_spec.rb": 0.4209275245666504,4210 "spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 0.49077320098876953,4211 "spec/models/project_services/pushover_service_spec.rb": 0.3861565589904785,4212 "spec/services/emails/create_service_spec.rb": 0.342578649520874,4213 "spec/lib/gitlab/git/diff_collection_spec.rb": 0.2500607967376709,4214 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 0.3638455867767334,4215 "spec/requests/api/sidekiq_metrics_spec.rb": 0.35726046562194824,4216 "spec/validators/url_validator_spec.rb": 0.2536475658416748,4217 "spec/tasks/gitlab/info_rake_spec.rb": 0.410292387008667,4218 "spec/controllers/import/gitlab_projects_controller_spec.rb": 0.3824954032897949,4219 "spec/lib/system_check/orphans/repository_check_spec.rb": 0.23442435264587402,4220 "spec/validators/variable_duplicates_validator_spec.rb": 0.20988988876342773,4221 "spec/migrations/update_retried_for_ci_build_spec.rb": 0.2284255027770996,4222 "spec/lib/gitlab/ci/config/entry/global_spec.rb": 0.15488004684448242,4223 "spec/lib/gitlab/gitaly_client_spec.rb": 0.14762639999389648,4224 "spec/helpers/auth_helper_spec.rb": 0.08173346519470215,4225 "spec/uploaders/lfs_object_uploader_spec.rb": 0.17727160453796387,4226 "spec/services/emails/confirm_service_spec.rb": 0.10985350608825684,4227 "spec/initializers/doorkeeper_spec.rb": 0.10160708427429199,4228 "spec/lib/gitlab/metrics/method_call_spec.rb": 0.07072043418884277,4229 "spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb": 0.08298826217651367,4230 "spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb": 0.0730280876159668,4231 "spec/lib/gitlab/git/index_spec.rb": 0.07716059684753418,4232 "spec/rubocop/cop/migration/remove_index_spec.rb": 0.09290719032287598,4233 "spec/lib/banzai/filter/math_filter_spec.rb": 0.051406145095825195,4234 "spec/lib/gitlab/health_checks/redis/queues_check_spec.rb": 0.0527651309967041,4235 "spec/helpers/pagination_helper_spec.rb": 0.049874305725097656,4236 "spec/lib/gitlab/dependency_linker_spec.rb": 0.027615785598754883,4237 "spec/lib/gitlab/file_detector_spec.rb": 0.03464674949645996,4238 "spec/lib/gitlab/auth/ldap/auth_hash_spec.rb": 0.037954092025756836,4239 "spec/routing/openid_connect_spec.rb": 0.026943206787109375,4240 "spec/lib/gitlab/sherlock/file_sample_spec.rb": 0.01924443244934082,4241 "spec/lib/gitlab/downtime_check_spec.rb": 0.027413368225097656,4242 "spec/lib/gitlab/diff/formatters/text_formatter_spec.rb": 0.01981067657470703,4243 "spec/lib/gitlab/ci/config/entry/factory_spec.rb": 0.01994490623474121,4244 "spec/lib/gitlab/cycle_analytics/staging_stage_spec.rb": 0.030266284942626953,4245 "spec/lib/gitlab/diff/formatters/image_formatter_spec.rb": 0.013274908065795898,4246 "spec/lib/gitlab/ci/config/entry/validatable_spec.rb": 0.013900518417358398,4247 "spec/models/protected_tag_spec.rb": 0.01922321319580078,4248 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.013875007629394531,4249 "spec/lib/gitlab/chat_name_token_spec.rb": 0.040511131286621094,4250 "spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb": 0.008159399032592773,4251 "spec/lib/banzai/filter/yaml_front_matter_filter_spec.rb": 0.009426116943359375,4252 "spec/models/conversational_development_index/metric_spec.rb": 0.02711963653564453,4253 "spec/workers/concerns/cronjob_queue_spec.rb": 0.0055332183837890625,4254 "spec/lib/gitlab/github_import/representation_spec.rb": 0.005376100540161133,4255 "spec/lib/gitlab/routing_spec.rb": 0.005273103713989258,4256 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.0025694370269775394257}4258Knapsack global time execution for tests: 09m 34s4259Pending: (Failures listed here are expected and do not affect your suite's status)4260 1) Group issues page issues list returns all group and subgroup issues4261 # around hook at ./spec/spec_helper.rb:198 did not execute the example4262 # ./spec/features/groups/issues_spec.rb:574263 2) Group issues page issues list when project is archived does not render issue4264 # around hook at ./spec/spec_helper.rb:198 did not execute the example4265 # ./spec/features/groups/issues_spec.rb:724266 3) Subgroup Issuables shows the full subgroup title when issues index page is empty4267 # around hook at ./spec/spec_helper.rb:198 did not execute the example4268 # ./spec/features/projects/sub_group_issuables_spec.rb:144269 4) Subgroup Issuables shows the full subgroup title when merge requests index page is empty4270 # around hook at ./spec/spec_helper.rb:198 did not execute the example4271 # ./spec/features/projects/sub_group_issuables_spec.rb:204272 5) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 4273 # No pattern provided, skipping.4274 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64275 6) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 4276 # No pattern provided, skipping.4277 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64278 7) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 4279 # No pattern provided, skipping.4280 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64281 8) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 4282 # No pattern provided, skipping.4283 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64284 9) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 4285 # No pattern provided, skipping.4286 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64287 10) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 4288 # No pattern provided, skipping.4289 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64290 11) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 4291 # No pattern provided, skipping.4292 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64293 12) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 4294 # No pattern provided, skipping.4295 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:64296Finished in 12 minutes 46 seconds (files took 25.58 seconds to load)42971121 examples, 0 failures, 12 pending4299$ date4300Tue Jun 26 13:54:39 UTC 20184303coverage/: found 5 matching files 4304knapsack/: found 5 matching files 4305rspec_flaky/: found 4 matching files 4306tmp/capybara/: found 3 matching files 4307Uploading artifacts to coordinator... ok id=77521942 responseStatus=201 Created token=EzoNYT-p4308Job succeeded