rspec-mysql 21 28
Passed Started
by
@vsizov

Valery Sizov
1Running with gitlab-runner 10.7.0 (7c273476)2 on docker-auto-scale-com ab89f0373Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.7-golang-1.9-git-2.17-chrome-65.0-node-8.x-yarn-1.2-postgresql-9.6 ...4Starting service mysql:5.7 ...5Pulling docker image mysql:5.7 ...6Using docker image sha256:db763dfc448bcfc8749b690224740b57e691f44912c14a6b2d6637a7b9f7dbbc for mysql:5.7 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:98bd7cfc43b8ef0ff130465e3d5427c0771002c2f35a6a9b62cb2d04602bed0a for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.7-golang-1.9-git-2.17-chrome-65.0-node-8.x-yarn-1.2-postgresql-9.6 ...12Using docker image sha256:fdb36b9f5c89bf331a5884b2bc013addfeac245b65b8051a0e6652fb6d46f8a9 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.7-golang-1.9-git-2.17-chrome-65.0-node-8.x-yarn-1.2-postgresql-9.6 ... 13 Running on runner-ab89f037-project-278964-concurrent-0 via runner-ab89f037-gsrm-1525258264-1331ae3b...
00:01
14 Fetching changes for 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching with git depth set to 20...
00:08
15Removing .gitlab_shell_secret16Removing .gitlab_workhorse_secret17Removing .yarn-cache/18Removing config/database.yml19Removing config/database_geo.yml20Removing config/gitlab.yml21Removing config/redis.cache.yml22Removing config/redis.queues.yml23Removing config/redis.shared_state.yml24Removing config/resque.yml25Removing config/secrets.yml26Removing coverage/27Removing log/api_json.log28Removing log/grpc.log29Removing log/test_json.log30Removing tmp/tests/31Removing vendor/ruby/32HEAD is now at 6c0c85d1 Move the push_to_empty_repo to the user_access spec34 * [new branch] 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching -> origin/5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching35Checking out 73af10c1 as 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching...36Skipping Git submodules setup38Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/278964/ruby-2.3.7-with-yarn 39Successfully extracted cache41Downloading artifacts from coordinator... ok id=66066850 responseStatus=200 OK token=gcRYWULP42Downloading artifacts for compile-assets (66066853)...43Downloading artifacts from coordinator... ok id=66066853 responseStatus=200 OK token=ZUdCpByW44Downloading artifacts for setup-test-env (66066854)...45Downloading artifacts from coordinator... ok id=66066854 responseStatus=200 OK token=S7SxDrPM46WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 48Bundler version 1.16.149$ date50Wed May 2 14:39:45 UTC 201851$ source scripts/utils.sh52$ date53Wed May 2 14:39:45 UTC 201854$ source scripts/prepare_build.sh55The Gemfile's dependencies are satisfied56Successfully installed knapsack-1.16.0571 gem installed58-- enable_extension("plpgsql")59 -> 0.0014s60-- enable_extension("pg_trgm")61 -> 0.0000s62-- create_table("abuse_reports", {:force=>:cascade})63 -> 0.0103s64-- create_table("appearances", {:force=>:cascade})65 -> 0.0056s66-- create_table("application_settings", {:force=>:cascade})67 -> 0.0124s68-- create_table("approvals", {:force=>:cascade})69 -> 0.0060s70-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})71 -> 0.0154s72-- create_table("approver_groups", {:force=>:cascade})73 -> 0.0058s74-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})75 -> 0.0047s76-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})77 -> 0.0052s78-- create_table("approvers", {:force=>:cascade})79 -> 0.0066s80-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})81 -> 0.0063s82-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})83 -> 0.0057s84-- create_table("audit_events", {:force=>:cascade})85 -> 0.0053s86-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})87 -> 0.0055s88-- create_table("award_emoji", {:force=>:cascade})89 -> 0.0057s90-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})91 -> 0.0059s92-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})93 -> 0.0050s94-- create_table("badges", {:force=>:cascade})95 -> 0.0054s96-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})97 -> 0.0047s98-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})99 -> 0.0053s100-- create_table("board_assignees", {:force=>:cascade})101 -> 0.0052s102-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})103 -> 0.0052s104-- create_table("board_labels", {:force=>:cascade})105 -> 0.0054s106-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})107 -> 0.0062s108-- create_table("boards", {:force=>:cascade})109 -> 0.0058s110-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})111 -> 0.0047s112-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})113 -> 0.0043s114-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})115 -> 0.0048s116-- create_table("broadcast_messages", {:force=>:cascade})117 -> 0.0053s118-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})119 -> 0.0058s120-- create_table("chat_names", {:force=>:cascade})121 -> 0.0064s122-- 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})123 -> 0.0058s124-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})125 -> 0.0057s126-- create_table("chat_teams", {:force=>:cascade})127 -> 0.0050s128-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})129 -> 0.0042s130-- create_table("ci_build_trace_section_names", {:force=>:cascade})131 -> 0.0051s132-- 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})133 -> 0.0047s134-- create_table("ci_build_trace_sections", {:force=>:cascade})135 -> 0.0049s136-- 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})137 -> 0.0050s138-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})139 -> 0.0044s140-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})141 -> 0.0043s142-- create_table("ci_builds", {:force=>:cascade})143 -> 0.0062s144-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})145 -> 0.0050s146-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})147 -> 0.0049s148-- 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})149 -> 0.0073s150-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})151 -> 0.0074s152-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})153 -> 0.0180s154-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})155 -> 0.0096s156-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})157 -> 0.0069s158-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})159 -> 0.0055s160-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})161 -> 0.0052s162-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})163 -> 0.0060s164-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})165 -> 0.0084s166-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})167 -> 0.0147s168-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})169 -> 0.0064s170-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})171 -> 0.0063s172-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})173 -> 0.0066s174-- create_table("ci_builds_metadata", {:force=>:cascade})175 -> 0.0054s176-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})177 -> 0.0044s178-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})179 -> 0.0047s180-- create_table("ci_group_variables", {:force=>:cascade})181 -> 0.0051s182-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})183 -> 0.0053s184-- create_table("ci_job_artifacts", {:force=>:cascade})185 -> 0.0058s186-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})187 -> 0.0056s188-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})189 -> 0.0053s190-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})191 -> 0.0052s192-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})193 -> 0.0062s194-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})195 -> 0.0055s196-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})197 -> 0.0058s198-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})199 -> 0.0060s200-- 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})201 -> 0.0061s202-- create_table("ci_pipeline_schedules", {:force=>:cascade})203 -> 0.0056s204-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})205 -> 0.0057s206-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})207 -> 0.0055s208-- create_table("ci_pipeline_variables", {:force=>:cascade})209 -> 0.0057s210-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})211 -> 0.0060s212-- create_table("ci_pipelines", {:force=>:cascade})213 -> 0.0060s214-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})215 -> 0.0055s216-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})217 -> 0.0058s218-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})219 -> 0.0069s220-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})221 -> 0.0062s222-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})223 -> 0.0049s224-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})225 -> 0.0056s226-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})227 -> 0.0068s228-- create_table("ci_runner_projects", {:force=>:cascade})229 -> 0.0054s230-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})231 -> 0.0049s232-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})233 -> 0.0041s234-- create_table("ci_runners", {:force=>:cascade})235 -> 0.0057s236-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})237 -> 0.0049s238-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})239 -> 0.0049s240-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})241 -> 0.0046s242-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})243 -> 0.0047s244-- create_table("ci_sources_pipelines", {:force=>:cascade})245 -> 0.0059s246-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})247 -> 0.0049s248-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})249 -> 0.0052s250-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})251 -> 0.0049s252-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})253 -> 0.0043s254-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})255 -> 0.0042s256-- create_table("ci_stages", {:force=>:cascade})257 -> 0.0055s258-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})259 -> 0.0056s260-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})261 -> 0.0043s262-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})263 -> 0.0048s264-- create_table("ci_trigger_requests", {:force=>:cascade})265 -> 0.0052s266-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})267 -> 0.0047s268-- create_table("ci_triggers", {:force=>:cascade})269 -> 0.0067s270-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})271 -> 0.0056s272-- create_table("ci_variables", {:force=>:cascade})273 -> 0.0065s274-- 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})275 -> 0.0066s276-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})277 -> 0.0055s278-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})279 -> 0.0050s280-- create_table("cluster_projects", {:force=>:cascade})281 -> 0.0054s282-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})283 -> 0.0045s284-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})285 -> 0.0067s286-- create_table("cluster_providers_gcp", {:force=>:cascade})287 -> 0.0068s288-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})289 -> 0.0059s290-- create_table("clusters", {:force=>:cascade})291 -> 0.0061s292-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})293 -> 0.0064s294-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})295 -> 0.0050s296-- create_table("clusters_applications_helm", {:force=>:cascade})297 -> 0.0080s298-- create_table("clusters_applications_ingress", {:force=>:cascade})299 -> 0.0066s300-- create_table("clusters_applications_prometheus", {:force=>:cascade})301 -> 0.0075s302-- create_table("clusters_applications_runners", {:force=>:cascade})303 -> 0.0063s304-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})305 -> 0.0047s306-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})307 -> 0.0048s308-- create_table("container_repositories", {:force=>:cascade})309 -> 0.0052s310-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})311 -> 0.0048s312-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})313 -> 0.0043s314-- create_table("conversational_development_index_metrics", {:force=>:cascade})315 -> 0.0066s316-- create_table("deploy_keys_projects", {:force=>:cascade})317 -> 0.0056s318-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})319 -> 0.0050s320-- create_table("deploy_tokens", {:force=>:cascade})321 -> 0.0059s322-- 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})323 -> 0.0058s324-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})325 -> 0.0045s326-- create_table("deployments", {:force=>:cascade})327 -> 0.0053s328-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})329 -> 0.0049s330-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})331 -> 0.0052s332-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})333 -> 0.0060s334-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})335 -> 0.0058s336-- create_table("emails", {:force=>:cascade})337 -> 0.0053s338-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})339 -> 0.0055s340-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})341 -> 0.0060s342-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})343 -> 0.0052s344-- create_table("environments", {:force=>:cascade})345 -> 0.0063s346-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})347 -> 0.0053s348-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})349 -> 0.0050s350-- create_table("epic_issues", {:force=>:cascade})351 -> 0.0057s352-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})353 -> 0.0052s354-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})355 -> 0.0053s356-- create_table("epic_metrics", {:force=>:cascade})357 -> 0.0087s358-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})359 -> 0.0060s360-- create_table("epics", {:force=>:cascade})361 -> 0.0061s362-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})363 -> 0.0055s364-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})365 -> 0.0050s366-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})367 -> 0.0117s368-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})369 -> 0.0564s370-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})371 -> 0.0075s372-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})373 -> 0.0067s374-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})375 -> 0.0063s376-- create_table("events", {:force=>:cascade})377 -> 0.0079s378-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})379 -> 0.0063s380-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})381 -> 0.0069s382-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})383 -> 0.0070s384-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})385 -> 0.0083s386-- create_table("feature_gates", {:force=>:cascade})387 -> 0.0088s388-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})389 -> 0.0107s390-- create_table("features", {:force=>:cascade})391 -> 0.0072s392-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})393 -> 0.0059s394-- create_table("fork_network_members", {:force=>:cascade})395 -> 0.0073s396-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})397 -> 0.0078s398-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})399 -> 0.0062s400-- create_table("fork_networks", {:force=>:cascade})401 -> 0.0064s402-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})403 -> 0.0054s404-- create_table("forked_project_links", {:force=>:cascade})405 -> 0.0100s406-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})407 -> 0.0063s408-- create_table("gcp_clusters", {:force=>:cascade})409 -> 0.0085s410-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})411 -> 0.0065s412-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})413 -> 0.0079s414-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})415 -> 0.0071s416-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})417 -> 0.0069s418-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})419 -> 0.0065s420-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})421 -> 0.0060s422-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})423 -> 0.0063s424-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})425 -> 0.0080s426-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})427 -> 0.0063s428-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})429 -> 0.0082s430-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})431 -> 0.0061s432-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})433 -> 0.0079s434-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})435 -> 0.0071s436-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})437 -> 0.0084s438-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})439 -> 0.0062s440-- create_table("geo_node_namespace_links", {:force=>:cascade})441 -> 0.0081s442-- 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})443 -> 0.0066s444-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})445 -> 0.0076s446-- create_table("geo_node_statuses", {:force=>:cascade})447 -> 0.0098s448-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})449 -> 0.0077s450-- create_table("geo_nodes", {:force=>:cascade})451 -> 0.0087s452-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})453 -> 0.0074s454-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})455 -> 0.0053s456-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})457 -> 0.0047s458-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})459 -> 0.0078s460-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})461 -> 0.0054s462-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})463 -> 0.0072s464-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})465 -> 0.0058s466-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})467 -> 0.0095s468-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})469 -> 0.0060s470-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})471 -> 0.0067s472-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})473 -> 0.0063s474-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})475 -> 0.0065s476-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})477 -> 0.0058s478-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})479 -> 0.0054s480-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})481 -> 0.0067s482-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})483 -> 0.0064s484-- create_table("gpg_key_subkeys", {:force=>:cascade})485 -> 0.0074s486-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})487 -> 0.0058s488-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})489 -> 0.0055s490-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})491 -> 0.0050s492-- create_table("gpg_keys", {:force=>:cascade})493 -> 0.0067s494-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})495 -> 0.0056s496-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})497 -> 0.0056s498-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})499 -> 0.0051s500-- create_table("gpg_signatures", {:force=>:cascade})501 -> 0.0070s502-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})503 -> 0.0066s504-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})505 -> 0.0061s506-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})507 -> 0.0054s508-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})509 -> 0.0067s510-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})511 -> 0.0055s512-- create_table("group_custom_attributes", {:force=>:cascade})513 -> 0.0074s514-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})515 -> 0.0072s516-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})517 -> 0.0066s518-- create_table("historical_data", {:force=>:cascade})519 -> 0.0064s520-- create_table("identities", {:force=>:cascade})521 -> 0.0085s522-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})523 -> 0.0068s524-- create_table("index_statuses", {:force=>:cascade})525 -> 0.0070s526-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})527 -> 0.0059s528-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})529 -> 0.0073s530-- 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})531 -> 0.0056s532-- 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})533 -> 0.0068s534-- create_table("issue_assignees", {:id=>false, :force=>:cascade})535 -> 0.0068s536-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})537 -> 0.0105s538-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})539 -> 0.0053s540-- create_table("issue_links", {:force=>:cascade})541 -> 0.0073s542-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})543 -> 0.0059s544-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})545 -> 0.0050s546-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})547 -> 0.0051s548-- create_table("issue_metrics", {:force=>:cascade})549 -> 0.0061s550-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})551 -> 0.0063s552-- create_table("issues", {:force=>:cascade})553 -> 0.0074s554-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})555 -> 0.0062s556-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})557 -> 0.0084s558-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})559 -> 0.0010s560-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})561 -> 0.0062s562-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})563 -> 0.0060s564-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})565 -> 0.0081s566-- 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})567 -> 0.0097s568-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})569 -> 0.0069s570-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})571 -> 0.0161s572-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})573 -> 0.0067s574-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})575 -> 0.0070s576-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})577 -> 0.0010s578-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})579 -> 0.0090s580-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})581 -> 0.0063s582-- create_table("keys", {:force=>:cascade})583 -> 0.0074s584-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})585 -> 0.0058s586-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})587 -> 0.0055s588-- create_table("label_links", {:force=>:cascade})589 -> 0.0070s590-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})591 -> 0.0058s592-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})593 -> 0.0068s594-- create_table("label_priorities", {:force=>:cascade})595 -> 0.0069s596-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})597 -> 0.0057s598-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})599 -> 0.0055s600-- create_table("labels", {:force=>:cascade})601 -> 0.0068s602-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})603 -> 0.0069s604-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})605 -> 0.0052s606-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})607 -> 0.0054s608-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})609 -> 0.0059s610-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})611 -> 0.0056s612-- create_table("ldap_group_links", {:force=>:cascade})613 -> 0.0068s614-- create_table("lfs_file_locks", {:force=>:cascade})615 -> 0.0062s616-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})617 -> 0.0063s618-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})619 -> 0.0054s620-- create_table("lfs_objects", {:force=>:cascade})621 -> 0.0075s622-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})623 -> 0.0058s624-- create_table("lfs_objects_projects", {:force=>:cascade})625 -> 0.0072s626-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})627 -> 0.0058s628-- create_table("licenses", {:force=>:cascade})629 -> 0.0074s630-- create_table("lists", {:force=>:cascade})631 -> 0.0075s632-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})633 -> 0.0059s634-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})635 -> 0.0066s636-- create_table("members", {:force=>:cascade})637 -> 0.0070s638-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})639 -> 0.0053s640-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})641 -> 0.0058s642-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})643 -> 0.0045s644-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})645 -> 0.0064s646-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})647 -> 0.0058s648-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})649 -> 0.0060s650-- 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})651 -> 0.0100s652-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})653 -> 0.0047s654-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})655 -> 0.0058s656-- 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})657 -> 0.0100s658-- create_table("merge_request_diffs", {:force=>:cascade})659 -> 0.0088s660-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})661 -> 0.0086s662-- create_table("merge_request_metrics", {:force=>:cascade})663 -> 0.0100s664-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})665 -> 0.0077s666-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})667 -> 0.0080s668-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})669 -> 0.0062s670-- create_table("merge_requests", {:force=>:cascade})671 -> 0.0088s672-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})673 -> 0.0075s674-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})675 -> 0.0069s676-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})677 -> 0.0068s678-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})679 -> 0.0010s680-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})681 -> 0.0064s682-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})683 -> 0.0100s684-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})685 -> 0.0069s686-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})687 -> 0.0073s688-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})689 -> 0.0075s690-- 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})691 -> 0.0081s692-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})693 -> 0.0073s694-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})695 -> 0.0064s696-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})697 -> 0.0084s698-- 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})699 -> 0.0094s700-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})701 -> 0.0064s702-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})703 -> 0.0009s704-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})705 -> 0.0070s706-- create_table("merge_requests_closing_issues", {:force=>:cascade})707 -> 0.0084s708-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})709 -> 0.0060s710-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})711 -> 0.0065s712-- create_table("milestones", {:force=>:cascade})713 -> 0.0086s714-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})715 -> 0.0010s716-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})717 -> 0.0069s718-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})719 -> 0.0066s720-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})721 -> 0.0065s722-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})723 -> 0.0076s724-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})725 -> 0.0007s726-- create_table("namespace_statistics", {:force=>:cascade})727 -> 0.0077s728-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})729 -> 0.0075s730-- create_table("namespaces", {:force=>:cascade})731 -> 0.0105s732-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})733 -> 0.0066s734-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})735 -> 0.0059s736-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})737 -> 0.0063s738-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})739 -> 0.0086s740-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})741 -> 0.0010s742-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})743 -> 0.0071s744-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})745 -> 0.0086s746-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})747 -> 0.0064s748-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})749 -> 0.0009s750-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})751 -> 0.0063s752-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})753 -> 0.0062s754-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})755 -> 0.0080s756-- create_table("notes", {:force=>:cascade})757 -> 0.0076s758-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})759 -> 0.0061s760-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})761 -> 0.0063s762-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})763 -> 0.0068s764-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})765 -> 0.0072s766-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})767 -> 0.0063s768-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})769 -> 0.0009s770-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})771 -> 0.0064s772-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})773 -> 0.0062s774-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})775 -> 0.0081s776-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})777 -> 0.0062s778-- create_table("notification_settings", {:force=>:cascade})779 -> 0.0078s780-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})781 -> 0.0080s782-- 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})783 -> 0.0081s784-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})785 -> 0.0060s786-- create_table("oauth_access_grants", {:force=>:cascade})787 -> 0.0068s788-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})789 -> 0.0061s790-- create_table("oauth_access_tokens", {:force=>:cascade})791 -> 0.0073s792-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})793 -> 0.0064s794-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})795 -> 0.0067s796-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})797 -> 0.0085s798-- create_table("oauth_applications", {:force=>:cascade})799 -> 0.0077s800-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})801 -> 0.0067s802-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})803 -> 0.0055s804-- create_table("oauth_openid_requests", {:force=>:cascade})805 -> 0.0078s806-- create_table("pages_domains", {:force=>:cascade})807 -> 0.0078s808-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})809 -> 0.0067s810-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})811 -> 0.0080s812-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})813 -> 0.0064s814-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})815 -> 0.0068s816-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})817 -> 0.0064s818-- create_table("path_locks", {:force=>:cascade})819 -> 0.0081s820-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})821 -> 0.0060s822-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})823 -> 0.0055s824-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})825 -> 0.0051s826-- create_table("personal_access_tokens", {:force=>:cascade})827 -> 0.0092s828-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})829 -> 0.0063s830-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})831 -> 0.0060s832-- create_table("plans", {:force=>:cascade})833 -> 0.0080s834-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})835 -> 0.0065s836-- create_table("project_authorizations", {:id=>false, :force=>:cascade})837 -> 0.0074s838-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})839 -> 0.0061s840-- 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})841 -> 0.0068s842-- create_table("project_auto_devops", {:force=>:cascade})843 -> 0.0084s844-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})845 -> 0.0058s846-- create_table("project_ci_cd_settings", {:force=>:cascade})847 -> 0.0069s848-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})849 -> 0.0060s850-- create_table("project_custom_attributes", {:force=>:cascade})851 -> 0.0064s852-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})853 -> 0.0065s854-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})855 -> 0.0081s856-- create_table("project_deploy_tokens", {:force=>:cascade})857 -> 0.0093s858-- 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})859 -> 0.0064s860-- create_table("project_features", {:force=>:cascade})861 -> 0.0079s862-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})863 -> 0.0073s864-- create_table("project_group_links", {:force=>:cascade})865 -> 0.0070s866-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})867 -> 0.0072s868-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})869 -> 0.0062s870-- create_table("project_import_data", {:force=>:cascade})871 -> 0.0057s872-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})873 -> 0.0058s874-- create_table("project_mirror_data", {:force=>:cascade})875 -> 0.0071s876-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})877 -> 0.0058s878-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})879 -> 0.0058s880-- create_table("project_repository_states", {:force=>:cascade})881 -> 0.0060s882-- 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})883 -> 0.0055s884-- 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})885 -> 0.0053s886-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})887 -> 0.0055s888-- add_index("project_repository_states", ["repository_verification_checksum", "wiki_verification_checksum"], {:name=>"idx_repository_states_on_checksums_partial", :where=>"((repository_verification_checksum IS NULL) OR (wiki_verification_checksum IS NULL))", :using=>:btree})889 -> 0.0060s890-- create_table("project_statistics", {:force=>:cascade})891 -> 0.0067s892-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})893 -> 0.0058s894-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})895 -> 0.0058s896-- create_table("projects", {:force=>:cascade})897 -> 0.0104s898-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})899 -> 0.0076s900-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})901 -> 0.0070s902-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})903 -> 0.0070s904-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})905 -> 0.0014s906-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})907 -> 0.0070s908-- 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})909 -> 0.0074s910-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})911 -> 0.0073s912-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})913 -> 0.0069s914-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})915 -> 0.0073s916-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})917 -> 0.0079s918-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})919 -> 0.0014s920-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})921 -> 0.0075s922-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})923 -> 0.0083s924-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})925 -> 0.0015s926-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})927 -> 0.0074s928-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})929 -> 0.0067s930-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})931 -> 0.0065s932-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})933 -> 0.0090s934-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})935 -> 0.0077s936-- create_table("prometheus_metrics", {:force=>:cascade})937 -> 0.0073s938-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})939 -> 0.0059s940-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})941 -> 0.0062s942-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})943 -> 0.0098s944-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})945 -> 0.0062s946-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})947 -> 0.0051s948-- create_table("protected_branch_push_access_levels", {:force=>:cascade})949 -> 0.0084s950-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})951 -> 0.0069s952-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})953 -> 0.0059s954-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})955 -> 0.0066s956-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})957 -> 0.0063s958-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})959 -> 0.0055s960-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})961 -> 0.0066s962-- create_table("protected_branches", {:force=>:cascade})963 -> 0.0072s964-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})965 -> 0.0063s966-- create_table("protected_tag_create_access_levels", {:force=>:cascade})967 -> 0.0073s968-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})969 -> 0.0058s970-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})971 -> 0.0052s972-- create_table("protected_tags", {:force=>:cascade})973 -> 0.0071s974-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})975 -> 0.0056s976-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})977 -> 0.0072s978-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})979 -> 0.0107s980-- create_table("push_rules", {:force=>:cascade})981 -> 0.0100s982-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})983 -> 0.0069s984-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})985 -> 0.0103s986-- create_table("redirect_routes", {:force=>:cascade})987 -> 0.0068s988-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})989 -> 0.0064s990-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})991 -> 0.0108s992-- create_table("releases", {:force=>:cascade})993 -> 0.0095s994-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})995 -> 0.0087s996-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})997 -> 0.0111s998-- create_table("remote_mirrors", {:force=>:cascade})999 -> 0.0094s1000-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1001 -> 0.0074s1002-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1003 -> 0.0102s1004-- create_table("routes", {:force=>:cascade})1005 -> 0.0078s1006-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1007 -> 0.0066s1008-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1009 -> 0.0006s1010-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1011 -> 0.0103s1012-- create_table("saml_providers", {:force=>:cascade})1013 -> 0.0072s1014-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1015 -> 0.0074s1016-- create_table("sent_notifications", {:force=>:cascade})1017 -> 0.0073s1018-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1019 -> 0.0084s1020-- create_table("services", {:force=>:cascade})1021 -> 0.0075s1022-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1023 -> 0.0108s1024-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1025 -> 0.0072s1026-- create_table("slack_integrations", {:force=>:cascade})1027 -> 0.0066s1028-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1029 -> 0.0097s1030-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1031 -> 0.0067s1032-- create_table("snippets", {:force=>:cascade})1033 -> 0.0075s1034-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1035 -> 0.0062s1036-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1037 -> 0.0008s1038-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1039 -> 0.0054s1040-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1041 -> 0.0008s1042-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1043 -> 0.0070s1044-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1045 -> 0.0057s1046-- create_table("spam_logs", {:force=>:cascade})1047 -> 0.0067s1048-- create_table("subscriptions", {:force=>:cascade})1049 -> 0.0065s1050-- 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})1051 -> 0.0085s1052-- create_table("system_note_metadata", {:force=>:cascade})1053 -> 0.0069s1054-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1055 -> 0.0060s1056-- create_table("taggings", {:force=>:cascade})1057 -> 0.0069s1058-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1059 -> 0.0098s1060-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1061 -> 0.0064s1062-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1063 -> 0.0067s1064-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1065 -> 0.0062s1066-- create_table("tags", {:force=>:cascade})1067 -> 0.0067s1068-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1069 -> 0.0055s1070-- create_table("timelogs", {:force=>:cascade})1071 -> 0.0069s1072-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1073 -> 0.0054s1074-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1075 -> 0.0053s1076-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1077 -> 0.0055s1078-- create_table("todos", {:force=>:cascade})1079 -> 0.0068s1080-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1081 -> 0.0071s1082-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1083 -> 0.0068s1084-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1085 -> 0.0055s1086-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1087 -> 0.0060s1088-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1089 -> 0.0056s1090-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1091 -> 0.0062s1092-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1093 -> 0.0065s1094-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1095 -> 0.0072s1096-- create_table("trending_projects", {:force=>:cascade})1097 -> 0.0065s1098-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1099 -> 0.0049s1100-- create_table("u2f_registrations", {:force=>:cascade})1101 -> 0.0064s1102-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1103 -> 0.0084s1104-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1105 -> 0.0047s1106-- create_table("uploads", {:force=>:cascade})1107 -> 0.0057s1108-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1109 -> 0.0052s1110-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1111 -> 0.0056s1112-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1113 -> 0.0060s1114-- create_table("user_agent_details", {:force=>:cascade})1115 -> 0.0061s1116-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1117 -> 0.0065s1118-- create_table("user_callouts", {:force=>:cascade})1119 -> 0.0055s1120-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1121 -> 0.0065s1122-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1123 -> 0.0054s1124-- create_table("user_custom_attributes", {:force=>:cascade})1125 -> 0.0065s1126-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1127 -> 0.0077s1128-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1129 -> 0.0057s1130-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1131 -> 0.0056s1132-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1133 -> 0.0099s1134-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1135 -> 0.0058s1136-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1137 -> 0.0061s1138-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1139 -> 0.0051s1140-- create_table("users", {:force=>:cascade})1141 -> 0.0074s1142-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1143 -> 0.0064s1144-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1145 -> 0.0063s1146-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1147 -> 0.0066s1148-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1149 -> 0.0085s1150-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1151 -> 0.0021s1152-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1153 -> 0.0085s1154-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1155 -> 0.0097s1156-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1157 -> 0.0080s1158-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1159 -> 0.0015s1160-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1161 -> 0.0109s1162-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})1163 -> 0.0078s1164-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1165 -> 0.0143s1166-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1167 -> 0.0076s1168-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1169 -> 0.0069s1170-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1171 -> 0.0014s1172-- create_table("users_star_projects", {:force=>:cascade})1173 -> 0.0069s1174-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1175 -> 0.0057s1176-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1177 -> 0.0063s1178-- create_table("web_hook_logs", {:force=>:cascade})1179 -> 0.0077s1180-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1181 -> 0.0065s1182-- create_table("web_hooks", {:force=>:cascade})1183 -> 0.0083s1184-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1185 -> 0.0109s1186-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1187 -> 0.0075s1188-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1189 -> 0.0177s1190-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1191 -> 0.0186s1192-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1193 -> 0.0169s1194-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1195 -> 0.0174s1196-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1197 -> 0.0169s1198-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1199 -> 0.0103s1200-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1201 -> 0.0096s1202-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1203 -> 0.0124s1204-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1205 -> 0.0196s1206-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1207 -> 0.0131s1208-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1209 -> 0.0104s1210-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1211 -> 0.0100s1212-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1213 -> 0.0119s1214-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1215 -> 0.0124s1216-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1217 -> 0.0127s1218-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1219 -> 0.0364s1220-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1221 -> 0.0265s1222-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1223 -> 0.0372s1224-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1225 -> 0.0197s1226-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1227 -> 0.0153s1228-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1229 -> 0.0162s1230-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1231 -> 0.0221s1232-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1233 -> 0.0198s1234-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1235 -> 0.0151s1236-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1237 -> 0.0146s1238-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1239 -> 0.0129s1240-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1241 -> 0.0141s1242-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1243 -> 0.0158s1244-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1245 -> 0.0124s1246-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1247 -> 0.0202s1248-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1249 -> 0.0204s1250-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1251 -> 0.0215s1252-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1253 -> 0.0142s1254-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1255 -> 0.0181s1256-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1257 -> 0.0206s1258-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1259 -> 0.0206s1260-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1261 -> 0.0206s1262-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1263 -> 0.0260s1264-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1265 -> 0.0207s1266-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1267 -> 0.0191s1268-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1269 -> 0.0169s1270-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1271 -> 0.0168s1272-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1273 -> 0.0181s1274-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1275 -> 0.0186s1276-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1277 -> 0.0148s1278-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1279 -> 0.0192s1280-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1281 -> 0.0186s1282-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1283 -> 0.0159s1284-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1285 -> 0.0282s1286-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1287 -> 0.0131s1288-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1289 -> 0.0145s1290-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1291 -> 0.0172s1292-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1293 -> 0.0173s1294-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1295 -> 0.0182s1296-- add_foreign_key("container_repositories", "projects")1297 -> 0.0192s1298-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1299 -> 0.0174s1300-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1301 -> 0.0194s1302-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1303 -> 0.0168s1304-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1305 -> 0.0186s1306-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1307 -> 0.0169s1308-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1309 -> 0.0164s1310-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1311 -> 0.0234s1312-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1313 -> 0.0341s1314-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1315 -> 0.0233s1316-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1317 -> 0.0230s1318-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1319 -> 0.0159s1320-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1321 -> 0.0178s1322-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1323 -> 0.0175s1324-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1325 -> 0.0212s1326-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1327 -> 0.1998s1328-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1329 -> 0.1433s1330-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1331 -> 0.0138s1332-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1333 -> 0.0171s1334-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1335 -> 0.0156s1336-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1337 -> 0.0150s1338-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1339 -> 0.0172s1340-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1341 -> 0.0184s1342-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1343 -> 0.0250s1344-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1345 -> 0.0207s1346-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1347 -> 0.0171s1348-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1349 -> 0.0167s1350-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1351 -> 0.0188s1352-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1353 -> 0.0165s1354-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1355 -> 0.0171s1356-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1357 -> 0.0102s1358-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1359 -> 0.0115s1360-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1361 -> 0.0133s1362-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1363 -> 0.0172s1364-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1365 -> 0.0178s1366-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1367 -> 0.0165s1368-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1369 -> 0.0162s1370-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1371 -> 0.0146s1372-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1373 -> 0.0154s1374-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1375 -> 0.0181s1376-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1377 -> 0.0166s1378-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1379 -> 0.0186s1380-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1381 -> 0.0189s1382-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1383 -> 0.0206s1384-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1385 -> 0.0184s1386-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1387 -> 0.0132s1388-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1389 -> 0.0158s1390-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1391 -> 0.0152s1392-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1393 -> 0.0106s1394-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1395 -> 0.0099s1396-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1397 -> 0.0125s1398-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1399 -> 0.0120s1400-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1401 -> 0.0099s1402-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1403 -> 0.0208s1404-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1405 -> 0.0215s1406-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1407 -> 0.0222s1408-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1409 -> 0.1109s1410-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1411 -> 0.0328s1412-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1413 -> 0.0310s1414-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1415 -> 0.0143s1416-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1417 -> 0.0159s1418-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1419 -> 0.0156s1420-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1421 -> 0.0171s1422-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1423 -> 0.0129s1424-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1425 -> 0.0119s1426-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1427 -> 0.0181s1428-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1429 -> 0.0256s1430-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1431 -> 0.0225s1432-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1433 -> 0.0157s1434-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1435 -> 0.0137s1436-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1437 -> 0.0147s1438-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1439 -> 0.0150s1440-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1441 -> 0.0179s1442-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1443 -> 0.0138s1444-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1445 -> 0.0242s1446-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1447 -> 0.0342s1448-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1449 -> 0.0323s1450-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1451 -> 0.0254s1452-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1453 -> 0.0258s1454-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1455 -> 0.0250s1456-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1457 -> 0.0295s1458-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1459 -> 0.0318s1460-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1461 -> 0.0447s1462-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1463 -> 0.0254s1464-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1465 -> 0.0114s1466-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1467 -> 0.0113s1468-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1469 -> 0.0124s1470-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1471 -> 0.0133s1472-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1473 -> 0.0106s1474-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1475 -> 0.0187s1476-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1477 -> 0.0180s1478-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1479 -> 0.0109s1480-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1481 -> 0.0265s1482-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1483 -> 0.0191s1484-- add_foreign_key("path_locks", "users")1485 -> 0.0130s1486-- add_foreign_key("personal_access_tokens", "users")1487 -> 0.0207s1488-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1489 -> 0.0118s1490-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1491 -> 0.0120s1492-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1493 -> 0.0107s1494-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1495 -> 0.0104s1496-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1497 -> 0.0178s1498-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1499 -> 0.0147s1500-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1501 -> 0.0143s1502-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1503 -> 0.0134s1504-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1505 -> 0.0151s1506-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1507 -> 0.0211s1508-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1509 -> 0.0171s1510-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1511 -> 0.0168s1512-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1513 -> 0.0119s1514-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1515 -> 0.0114s1516-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1517 -> 0.0154s1518-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1519 -> 0.0116s1520-- add_foreign_key("protected_branch_merge_access_levels", "users")1521 -> 0.0114s1522-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1523 -> 0.0111s1524-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1525 -> 0.0116s1526-- add_foreign_key("protected_branch_push_access_levels", "users")1527 -> 0.0112s1528-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1529 -> 0.0119s1530-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1531 -> 0.0128s1532-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1533 -> 0.0123s1534-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1535 -> 0.0105s1536-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1537 -> 0.0165s1538-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1539 -> 0.0160s1540-- add_foreign_key("protected_tag_create_access_levels", "users")1541 -> 0.0165s1542-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1543 -> 0.0100s1544-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1545 -> 0.0083s1546-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1547 -> 0.0149s1548-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1549 -> 0.0121s1550-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1551 -> 0.0107s1552-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1553 -> 0.0100s1554-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1555 -> 0.0116s1556-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1557 -> 0.0109s1558-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1559 -> 0.0202s1560-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1561 -> 0.0139s1562-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1563 -> 0.0148s1564-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1565 -> 0.0252s1566-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1567 -> 0.0153s1568-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1569 -> 0.0320s1570-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1571 -> 0.0513s1572-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1573 -> 0.0207s1574-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1575 -> 0.0182s1576-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1577 -> 0.0107s1578-- add_foreign_key("u2f_registrations", "users")1579 -> 0.0111s1580-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1581 -> 0.0110s1582-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1583 -> 0.0113s1584-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1585 -> 0.0106s1586-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1587 -> 0.0100s1588-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1589 -> 0.0104s1590-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1591 -> 0.0124s1592-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1593 -> 0.0108s1594-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1595 -> 0.0114s1596-- initialize_schema_migrations_table()1597 -> 0.0264s1598Adding limits to schema.rb for mysql1599-- column_exists?(:merge_request_diffs, :st_commits)1600 -> 0.0012s1601-- column_exists?(:merge_request_diffs, :st_diffs)1602 -> 0.0006s1603-- change_column(:snippets, :content, :text, {:limit=>2147483647})1604 -> 0.0161s1605-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1606 -> 0.0214s1607-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1608 -> 0.0165s1609-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647})1610 -> 0.0115s1611Database 'gitlabhq_geo_test' does not exist1612-- enable_extension("plpgsql")1613 -> 0.0014s1614-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1615 -> 0.6677s1616-- create_table("file_registry", {:force=>:cascade})1617 -> 0.0300s1618-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1619 -> 0.5006s1620-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1621 -> 0.0342s1622-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1623 -> 0.0078s1624-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1625 -> 0.0070s1626-- create_table("job_artifact_registry", {:force=>:cascade})1627 -> 0.0078s1628-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1629 -> 0.0071s1630-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1631 -> 0.0073s1632-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1633 -> 0.0064s1634-- create_table("project_registry", {:force=>:cascade})1635 -> 0.0091s1636-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1637 -> 0.0068s1638-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1639 -> 0.0063s1640-- 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})1641 -> 0.0066s1642-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1643 -> 0.0073s1644-- 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})1645 -> 0.0076s1646-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1647 -> 0.0069s1648-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1649 -> 0.0053s1650-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1651 -> 0.0065s1652-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1653 -> 0.0053s1654-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1655 -> 0.0064s1656-- 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})1657 -> 0.0057s1658-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1659 -> 0.0057s1660-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1661 -> 0.0051s1662-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1663 -> 0.0053s1664-- 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})1665 -> 0.0089s1666-- initialize_schema_migrations_table()1667 -> 0.0142s1668$ date1669Wed May 2 14:41:04 UTC 20181670$ JOB_NAME=( $CI_JOB_NAME )1671$ export CI_NODE_INDEX=${JOB_NAME[-2]}1672$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1673$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1674$ export KNAPSACK_GENERATE_REPORT=true1675$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1676$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1677$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1678$ export FLAKY_RSPEC_GENERATE_REPORT=true1679$ export CACHE_CLASSES=true1680$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1681$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1682$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1683$ scripts/gitaly-test-spawn1684691685$ knapsack rspec "--color --format documentation --tag ~geo"1686Report specs:1687spec/requests/api/v3/merge_requests_spec.rb1688spec/requests/api/groups_spec.rb1689spec/features/task_lists_spec.rb1690spec/features/merge_request/user_creates_image_diff_notes_spec.rb1691spec/features/projects/wiki/user_views_wiki_page_spec.rb1692spec/features/triggers_spec.rb1693spec/lib/gitlab/background_migration/populate_merge_request_metrics_with_events_data_spec.rb1694spec/lib/gitlab/middleware/go_spec.rb1695spec/finders/notes_finder_spec.rb1696spec/services/search_service_spec.rb1697spec/features/merge_requests/user_lists_merge_requests_spec.rb1698spec/features/snippets/user_creates_snippet_spec.rb1699spec/features/projects/members/groups_with_access_list_spec.rb1700spec/requests/api/search_spec.rb1701spec/features/projects/snippets/create_snippet_spec.rb1702spec/uploaders/job_artifact_uploader_spec.rb1703spec/features/reportable_note/issue_spec.rb1704spec/features/projects/files/user_find_file_spec.rb1705spec/features/dashboard/milestone_filter_spec.rb1706spec/controllers/admin/services_controller_spec.rb1707spec/requests/api/project_export_spec.rb1708spec/lib/banzai/filter/user_reference_filter_spec.rb1709spec/services/projects/update_pages_service_spec.rb1710spec/models/clusters/cluster_spec.rb1711spec/lib/gitlab/badge/coverage/report_spec.rb1712spec/features/projects/merge_requests/user_views_open_merge_requests_spec.rb1713spec/models/project_services/microsoft_teams_service_spec.rb1714spec/models/clusters/platforms/kubernetes_spec.rb1715spec/controllers/projects/boards_controller_spec.rb1716spec/lib/gitlab/gitaly_client/commit_service_spec.rb1717spec/features/projects/user_creates_project_spec.rb1718spec/features/issues/markdown_toolbar_spec.rb1719spec/services/issues/duplicate_service_spec.rb1720spec/routing/group_routing_spec.rb1721spec/requests/api/snippets_spec.rb1722spec/lib/gitlab/data_builder/build_spec.rb1723spec/models/concerns/deployment_platform_spec.rb1724spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb1725spec/models/clusters/applications/ingress_spec.rb1726spec/features/profiles/password_spec.rb1727spec/finders/joined_groups_finder_spec.rb1728spec/requests/openid_connect_spec.rb1729spec/workers/pipeline_schedule_worker_spec.rb1730spec/features/projects/services/disable_triggers_spec.rb1731spec/features/projects/show/download_buttons_spec.rb1732spec/lib/gitlab/gitaly_client/repository_service_spec.rb1733spec/finders/milestones_finder_spec.rb1734spec/views/ci/status/_badge.html.haml_spec.rb1735spec/features/users/logout_spec.rb1736spec/migrations/remove_empty_extern_uid_auth0_identities_spec.rb1737spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb1738spec/views/projects/diffs/_stats.html.haml_spec.rb1739spec/features/merge_request/user_sees_wip_help_message_spec.rb1740spec/workers/expire_pipeline_cache_worker_spec.rb1741spec/lib/gitlab/git/commit_spec.rb1742spec/models/deploy_token_spec.rb1743spec/services/search/group_service_spec.rb1744spec/features/projects/issues/user_edits_issue_spec.rb1745spec/features/admin/admin_hook_logs_spec.rb1746spec/lib/gitlab/lfs_token_spec.rb1747spec/services/emails/destroy_service_spec.rb1748spec/migrations/remove_empty_fork_networks_spec.rb1749spec/migrations/rename_duplicated_variable_key_spec.rb1750spec/services/boards/lists/list_service_spec.rb1751spec/serializers/build_artifact_entity_spec.rb1752spec/migrations/move_personal_snippets_files_spec.rb1753spec/models/blob_viewer/gitlab_ci_yml_spec.rb1754spec/lib/gitlab/kubernetes/helm/api_spec.rb1755spec/models/ci/build_trace_section_name_spec.rb1756spec/serializers/build_action_entity_spec.rb1757spec/views/admin/dashboard/index.html.haml_spec.rb1758spec/finders/members_finder_spec.rb1759spec/lib/gitlab/cycle_analytics/test_event_fetcher_spec.rb1760spec/models/hooks/web_hook_spec.rb1761spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb1762spec/lib/gitlab/gitaly_client/health_check_service_spec.rb1763spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb1764spec/models/project_custom_attribute_spec.rb1765spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb1766spec/workers/delete_merged_branches_worker_spec.rb1767spec/lib/gitlab/cycle_analytics/staging_event_fetcher_spec.rb1768spec/services/chat_names/authorize_user_service_spec.rb1769spec/lib/gitlab/ci/trace/http_io_spec.rb1770spec/services/users/activity_service_spec.rb1771spec/lib/gitlab/background_migration/move_personal_snippet_files_spec.rb1772spec/lib/gitlab/sidekiq_config_spec.rb1773spec/views/projects/tags/index.html.haml_spec.rb1774spec/services/after_branch_delete_service_spec.rb1775spec/lib/gitlab/middleware/read_only_spec.rb1776spec/models/release_spec.rb1777spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb1778spec/workers/repository_check/clear_worker_spec.rb1779spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb1780spec/services/users/build_service_spec.rb1781spec/lib/banzai/filter/reference_filter_spec.rb1782spec/lib/gitlab/encoding_helper_spec.rb1783spec/features/raven_js_spec.rb1784spec/rubocop/cop/sidekiq_options_queue_spec.rb1785spec/lib/gitlab/ci/config/entry/environment_spec.rb1786spec/lib/gitlab/legacy_github_import/client_spec.rb1787spec/migrations/active_record/schema_spec.rb1788spec/lib/gitlab/ci/config/entry/service_spec.rb1789spec/lib/gitlab/badge/coverage/template_spec.rb1790spec/lib/gitlab/url_blocker_spec.rb1791spec/lib/banzai/filter/inline_diff_filter_spec.rb1792spec/rubocop/cop/migration/hash_index_spec.rb1793spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb1794spec/rubocop/cop/migration/remove_concurrent_index_spec.rb1795spec/lib/gitlab/hook_data/issue_builder_spec.rb1796spec/initializers/trusted_proxies_spec.rb1797spec/models/project_services/emails_on_push_service_spec.rb1798spec/lib/gitlab/cross_project_access_spec.rb1799spec/lib/rspec_flaky/flaky_examples_collection_spec.rb1800spec/lib/gitlab/google_code_import/client_spec.rb1801spec/lib/api/helpers/related_resources_helpers_spec.rb1802spec/lib/banzai/filter/image_link_filter_spec.rb1803spec/lib/gitlab/ci/status/skipped_spec.rb1804spec/lib/gitlab/sidekiq_versioning/manager_spec.rb1805spec/lib/gitlab/auth/saml/auth_hash_spec.rb1806spec/lib/microsoft_teams/notifier_spec.rb1807spec/helpers/storage_health_helper_spec.rb1808spec/lib/banzai/filter/blockquote_fence_filter_spec.rb1809spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb1810Leftover specs:1811Knapsack report generator started!1812Run options: exclude {:geo=>true}1813==> Setting up GitLab Shell...1814 GitLab Shell setup in 1.018011103 seconds...1815==> Setting up Gitaly...1816 Gitaly setup in 0.000330511 seconds...1817API::MergeRequests1818 GET /projects/:id/merge_requests1819 when unauthenticated1820 returns authentication error1821 when authenticated1822 returns an array of all merge_requests1823 returns an array of all merge_requests1824 returns an array of open merge_requests1825 returns an array of closed merge_requests1826 returns an array of merged merge_requests1827 matches V3 response schema1828 with ordering1829 returns an array of merge_requests in ascending order1830 returns an array of merge_requests in descending order1831 returns an array of merge_requests ordered by updated_at1832 returns an array of merge_requests ordered by created_at1833 GET /projects/:id/merge_requests/:merge_request_id1834 exposes known attributes1835 returns merge_request1836 returns merge_request by iid1837 returns merge_request by iid array1838 returns a 404 error if merge_request_id not found1839 Work in Progress1840 returns merge_request1841 GET /projects/:id/merge_requests/:merge_request_id/commits1842 returns a 200 when merge request is valid1843 returns a 404 when merge_request_id not found1844 GET /projects/:id/merge_requests/:merge_request_id/changes1845 returns the change information of the merge_request1846 returns a 404 when merge_request_id not found1847 POST /projects/:id/merge_requests1848 between branches projects1849 returns merge_request1850 returns 422 when source_branch equals target_branch1851 returns 400 when source_branch is missing1852 returns 400 when target_branch is missing1853 returns 400 when title is missing1854 allows special label names1855 with existing MR1856 returns 409 when MR already exists for source/target1857 forked projects1858 returns merge_request1859 does not return 422 when source_branch equals target_branch1860 returns 403 when target project has disabled merge requests1861 returns 400 when source_branch is missing1862 returns 400 when target_branch is missing1863 returns 400 when title is missing1864 returns 201 when target_branch is specified and for the same project1865 when target_branch and target_project_id is specified1866 returns 422 if targeting a different fork1867 returns 403 if targeting a different fork which user can not access1868 the approvals_before_merge param1869 when the target project has approvals_before_merge set to zero1870 returns a 4001871 includes the error in the response1872 when the target project has a non-zero approvals_before_merge1873 when the approvals_before_merge param is less than or equal to the value in the target project1874 returns a 4001875 includes the error in the response1876 when the approvals_before_merge param is greater than the value in the target project1877 returns a created status1878 sets approvals_before_merge of the newly-created MR1879 DELETE /projects/:id/merge_requests/:merge_request_id1880 when the user is developer1881 denies the deletion of the merge request1882 when the user is project owner1883 destroys the merge request owners can destroy1884 PUT /projects/:id/merge_requests/:merge_request_id/merge1885 returns merge_request in case of success1886 returns 406 if branch can't be merged1887 returns 405 if merge_request is not open1888 returns 405 if merge_request is a work in progress1889 returns 405 if the build failed for a merge request that requires success1890 returns 401 if user has no permissions to merge1891 returns 409 if the SHA parameter doesn't match1892 succeeds if the SHA parameter matches1893 updates the MR's squash attribute1894 enables merge when pipeline succeeds if the pipeline is active1895 PUT /projects/:id/merge_requests/:merge_request_id1896 updates title and returns merge_request1897 updates description and returns merge_request1898 updates milestone_id and returns merge_request1899 updates squash and returns merge_request1900 returns merge_request with renamed target_branch1901 returns merge_request that removes the source branch1902 allows special label names1903 does not update state when title is empty1904 does not update state when target_branch is empty1905 to close a MR1906 returns merge_request1907 POST /projects/:id/merge_requests/:merge_request_id/comments1908 returns comment1909 returns 400 if note is missing1910 returns 404 if note is attached to non existent merge request1911 GET :id/merge_requests/:merge_request_id/comments1912 returns merge_request comments ordered by created_at1913 returns a 404 error if merge_request_id not found1914 GET :id/merge_requests/:merge_request_id/closes_issues1915 returns the issue that will be closed on merge1916 returns an empty array when there are no issues to be closed1917 handles external issues1918 returns 403 if the user has no access to the merge request1919 POST :id/merge_requests/:merge_request_id/subscription1920 subscribes to a merge request1921 returns 304 if already subscribed1922 returns 404 if the merge request is not found1923 returns 403 if user has no access to read code1924 DELETE :id/merge_requests/:merge_request_id/subscription1925 unsubscribes from a merge request1926 returns 304 if not subscribed1927 returns 404 if the merge request is not found1928 returns 403 if user has no access to read code1929 GET :id/merge_requests/:merge_request_id/approvals1930 retrieves the approval status1931 POST :id/merge_requests/:merge_request_id/approve1932 as the author of the merge request1933 returns a 4011934 as a valid approver1935 approves the merge request1936 DELETE :id/merge_requests/:merge_request_id/unapprove1937 as a user who has approved the merge request1938 unapproves the merge request1939 Time tracking1940 POST /projects/:id/merge_requests/:merge_request_id/time_estimate1941 sets the time estimate for merge_request1942 with an unauthorized user1943 behaves like an unauthorized API user1944 should eq 4031945 updating the current estimate1946 when duration has a bad format1947 does not modify the original estimate1948 with a valid duration1949 updates the estimate1950 POST /projects/:id/merge_requests/:merge_request_id/reset_time_estimate1951 resets the time estimate for merge_request1952 with an unauthorized user1953 behaves like an unauthorized API user1954 should eq 4031955 POST /projects/:id/merge_requests/:merge_request_id/add_spent_time1956 add spent time for merge_request1957 with an unauthorized user1958 behaves like an unauthorized API user1959 should eq 4031960 when subtracting time1961 subtracts time of the total spent time1962 when time to subtract is greater than the total spent time1963 does not modify the total time spent1964 POST /projects/:id/merge_requests/:merge_request_id/reset_spent_time1965 resets spent time for merge_request1966 with an unauthorized user1967 behaves like an unauthorized API user1968 should eq 4031969 GET /projects/:id/merge_requests/:merge_request_id/time_stats1970 returns the time stats for merge_request1971API::Groups1972 GET /groups1973 when unauthenticated1974 returns public groups1975 avoids N+1 queries1976 when authenticated as user1977 normal user: returns an array of groups of user11978 does not include statistics1979 when authenticated as admin1980 admin: returns an array of all groups1981 does not include statistics by default1982 includes statistics if requested1983 when using skip_groups in request1984 returns all groups excluding skipped groups1985 when using all_available in request1986 returns all groups you have access to1987 when using sorting1988 sorts by name ascending by default1989 sorts in descending order when passed1990 sorts by the order_by param1991 when using owned in the request1992 returns an array of groups the user owns1993 GET /groups/:id1994 when unauthenticated1995 returns 404 for a private group1996 returns 200 for a public group1997 returns only public projects in the group1998 returns only public projects shared with the group1999 when authenticated as user2000 returns one of user1's groups2001 does not return a non existing group2002 does not return a group not attached to user12003 returns only public and internal projects in the group2004 returns only public and internal projects shared with the group2005 when authenticated as admin2006 returns any existing group2007 does not return a non existing group2008 when using group path in URL2009 returns any existing group2010 does not return a non existing group2011 does not return a group not attached to user12012 PUT /groups/:id2013 when authenticated as the group owner2014 updates the group2015 returns 404 for a non existing group2016 returns 403 for updating shared_runners_minutes_limit2017 returns 200 if shared_runners_minutes_limit is not changing2018 when authenticated as the admin2019 updates the group2020 updates the group for shared_runners_minutes_limit2021 when authenticated as an user that can see the group2022 does not updates the group2023 when authenticated as an user that cannot see the group2024 returns 404 when trying to update the group2025 GET /groups/:id/projects2026 when authenticated as user2027 returns the group's projects2028 returns the group's projects with simple representation2029 filters the groups projects2030 does not return a non existing group2031 does not return a group not attached to user12032 only returns projects to which user has access2033 only returns the projects owned by user2034 only returns the projects starred by user2035 when authenticated as admin2036 returns any existing group2037 does not return a non existing group2038 avoids N+1 queries2039 when using group path in URL2040 returns any existing group2041 does not return a non existing group2042 does not return a group not attached to user12043 GET /groups/:id/subgroups2044 when unauthenticated2045 returns only public subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2046 returns 404 for a private group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2047 when authenticated as user2048 when user is not member of a public group2049 returns no subgroups for the public group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2050 when using all_available in request2051 returns public subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2052 when user is not member of a private group2053 returns 404 for the private group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2054 when user is member of public group2055 returns private subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2056 when using statistics in request2057 does not include statistics (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2058 when user is member of private group2059 returns subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2060 when authenticated as admin2061 returns private subgroups of a public group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2062 returns subgroups of a private group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2063 does not include statistics by default (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2064 includes statistics if requested (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2065 POST /groups2066 when authenticated as user without group permissions2067 does not create group2068 as owner2069 can create subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2070 as master2071 cannot create subgroups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2072 when authenticated as user with group permissions2073 creates group2074 creates a nested group (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)2075 does not create group, duplicate2076 returns 400 bad request error if name not given2077 returns 400 bad request error if path not given2078 creates an ldap_group_link if ldap_cn and ldap_access are supplied2079 when shared_runners_minutes_limit is given2080 when the current user is not an admin2081 does not create a group with shared_runners_minutes_limit2082 when the current user is an admin2083 creates a group with shared_runners_minutes_limit2084 DELETE /groups/:id2085 when authenticated as user2086 removes group2087 does not remove a group if not an owner2088 does not remove a non existing group2089 does not remove a group not attached to user12090 behaves like 412 response2091 for a modified ressource2092 returns 4122093 for an unmodified ressource2094 returns accepted2095 when authenticated as admin2096 removes any existing group2097 does not remove a non existing group2098 POST /groups/:id/projects/:project_id2099 when authenticated as user2100 does not transfer project to group2101 when authenticated as admin2102 transfers project to group2103 when using project path in URL2104 with a valid project path2105 transfers project to group2106 with a non-existent project path2107 does not transfer project to group2108 when using a group path in URL2109 with a valid group path2110 transfers project to group2111 with a non-existent group path2112 does not transfer project to group2113 behaves like custom attributes endpoints2114 GET /groups with custom attributes filter2115 with an unauthorized user2116 does not filter by custom attributes2117 with an authorized user2118 filters by custom attributes2119 GET /groups with custom attributes2120 with an unauthorized user2121 does not include custom attributes2122 with an authorized user2123 does not include custom attributes by default2124 includes custom attributes if requested2125 GET /groups/:id with custom attributes2126 with an unauthorized user2127 does not include custom attributes2128 with an authorized user2129 does not include custom attributes by default2130 includes custom attributes if requested2131 GET /groups/:id/custom_attributes2132 with an unauthorized user2133 behaves like an unauthorized API user2134 should eq 4032135 with an authorized user2136 returns all custom attributes2137 GET /groups/:id/custom_attributes/:key2138 with an unauthorized user2139 behaves like an unauthorized API user2140 should eq 4032141 with an authorized user2142 returns a single custom attribute2143 PUT /groups/:id/custom_attributes/:key2144 with an unauthorized user2145 behaves like an unauthorized API user2146 should eq 4032147 with an authorized user2148 creates a new custom attribute2149 updates an existing custom attribute2150 DELETE /groups/:id/custom_attributes/:key2151 with an unauthorized user2152 behaves like an unauthorized API user2153 should eq 4032154 with an authorized user2155 deletes an existing custom attribute2156 POST /groups/:id/ldap_sync2157 when the ldap_group_sync feature is available2158 when authenticated as the group owner2159 returns 404 for a non existing group2160 when the group is ready to sync2161 returns 202 Accepted2162 queues a sync job2163 sets the ldap_sync state to pending2164 when the group is already pending a sync2165 returns 202 Accepted2166 does not queue a sync job2167 does not change the ldap_sync state2168 when authenticated as the admin2169 returns 202 Accepted2170 when authenticated as a non-owner user that can see the group2171 returns 4032172 when authenticated as an user that cannot see the group2173 returns 4042174 when the ldap_group_sync feature is not available2175 returns 404 (same as CE would)2176Task Lists2177 for Issues2178 multiple tasks2179Starting the Capybara driver server...2180 renders2181 contains the required selectors2182 is only editable by author2183 provides a summary on Issues#index2184 single incomplete task2185 renders2186 provides a summary on Issues#index2187 single complete task2188 renders2189 provides a summary on Issues#index2190 nested tasks2191 renders2192 solves tasks2193 for Notes2194 multiple tasks2195 renders for note body2196 contains the required selectors2197 is only editable by author2198 single incomplete task2199 renders for note body2200 single complete task2201 renders for note body2202 for Merge Requests2203 multiple tasks2204 renders for description2205 contains the required selectors2206 is only editable by author2207 provides a summary on MergeRequests#index2208 single incomplete task2209 renders for description2210 provides a summary on MergeRequests#index2211 single complete task2212 renders for description2213 provides a summary on MergeRequests#index2214Merge request > User creates image diff notes2215 create commit diff notes2216 create a new diff note2217 shows indicator and avatar badges, and allows collapsing/expanding the discussion notes2218 render commit diff notes2219 render diff indicators within the image diff frame, diff notes, and avatar badge numbers2220 inline view2221 creating a new diff note2222 shows indicator and avatar badges, and allows collapsing/expanding the discussion notes2223 parallel view2224 creating a new diff note2225 shows indicator and avatar badges, and allows collapsing/expanding the discussion notes2226 discussion tab polling2227 render diff indicators within the image frame2228 image view modes2229 resizes image in onion skin view mode2230 resets onion skin view mode opacity when toggling between view modes2231User views a wiki page2232 when Gitaly is enabled2233 behaves like wiki page user view2234 opens a default wiki page2235 when wiki is empty2236 shows the history of a page that has a path2237 shows an old version of a page2238 when a page does not have history2239 shows all the pages2240 shows a file stored in a page2241 shows the creation page if file does not exist2242 when a page has history2243 shows the page history2244 does not show the "Edit" button2245 when Gitaly is disabled2246 behaves like wiki page user view2247 opens a default wiki page2248 when wiki is empty2249 shows the history of a page that has a path2250 shows an old version of a page2251 when a page does not have history2252 shows all the pages2253 shows a file stored in a page2254 shows the creation page if file does not exist2255 when a page has history2256 shows the page history2257 does not show the "Edit" button2258Triggers2259 create trigger workflow2260 prevents adding new trigger with no description2261 adds new trigger with description2262 edit trigger workflow2263 click on edit trigger opens edit trigger page2264 edit trigger and save2265 edit "legacy" trigger and save2266 trigger "Take ownership" workflow2267 button "Take ownership" has correct alert2268 take trigger ownership2269 trigger "Revoke" workflow2270 button "Revoke" has correct alert2271 revoke trigger2272 show triggers workflow2273 contains trigger description placeholder2274 show "legacy" badge for legacy trigger2275 show "invalid" badge for trigger with owner having insufficient permissions2276 do not show "Edit" or full token for not owned trigger2277 show "Edit" and full token for owned trigger2278Gitlab::BackgroundMigration::PopulateMergeRequestMetricsWithEventsData2279 #perform2280 inserts metrics and updates closed and merged events2281 #insert_metrics_for_range2282 inserts merge_request_metrics for merge_requests without one2283 does not inserts merge_request_metrics for MRs out of given range2284 #update_metrics_with_events_data2285 closed events data update2286 migrates multiple MR metrics with closed event data2287 does not updates metrics out of given range2288 merged events data update2289 migrates multiple MR metrics with merged event data2290 does not updates metrics out of given range2291Gitlab::Middleware::Go2292 #call2293 when go-get=02294 skips go-import generation2295 when go-get=12296 with SSH disabled2297 with simple 2-segment project path2298 with subpackages2299 returns the full project path2300 without subpackages2301 returns the full project path2302 with a nested project path2303 with subpackages2304 behaves like a nested project2305 when the project is public2306 returns the full project path2307 when the project is private2308 when not authenticated2309 behaves like unauthorized2310 returns the 2-segment group path2311 when authenticated2312 using warden2313 when active2314 behaves like authenticated2315 with access to the project2316 returns the full project path2317 without access to the project2318 behaves like unauthorized2319 returns the 2-segment group path2320 when blocked2321 behaves like unauthorized2322 returns the 2-segment group path2323 using a personal access token2324 with api scope2325 behaves like authenticated2326 with access to the project2327 returns the full project path2328 without access to the project2329 behaves like unauthorized2330 returns the 2-segment group path2331 with read_user scope2332 behaves like unauthorized2333 returns the 2-segment group path2334 with a subpackage that is not a valid project path2335 behaves like a nested project2336 when the project is public2337 returns the full project path2338 when the project is private2339 when not authenticated2340 behaves like unauthorized2341 returns the 2-segment group path2342 when authenticated2343 using warden2344 when active2345 behaves like authenticated2346 with access to the project2347 returns the full project path2348 without access to the project2349 behaves like unauthorized2350 returns the 2-segment group path2351 when blocked2352 behaves like unauthorized2353 returns the 2-segment group path2354 using a personal access token2355 with api scope2356 behaves like authenticated2357 with access to the project2358 returns the full project path2359 without access to the project2360 behaves like unauthorized2361 returns the 2-segment group path2362 with read_user scope2363 behaves like unauthorized2364 returns the 2-segment group path2365 without subpackages2366 behaves like a nested project2367 when the project is public2368 returns the full project path2369 when the project is private2370 when not authenticated2371 behaves like unauthorized2372 returns the 2-segment group path2373 when authenticated2374 using warden2375 when active2376 behaves like authenticated2377 with access to the project2378 returns the full project path2379 without access to the project2380 behaves like unauthorized2381 returns the 2-segment group path2382 when blocked2383 behaves like unauthorized2384 returns the 2-segment group path2385 using a personal access token2386 with api scope2387 behaves like authenticated2388 with access to the project2389 returns the full project path2390 without access to the project2391 behaves like unauthorized2392 returns the 2-segment group path2393 with read_user scope2394 behaves like unauthorized2395 returns the 2-segment group path2396 with a bogus path2397 skips go-import generation2398 with HTTP disabled2399 with simple 2-segment project path2400 with subpackages2401 returns the full project path2402 without subpackages2403 returns the full project path2404 with a nested project path2405 with subpackages2406 behaves like a nested project2407 when the project is public2408 returns the full project path2409 when the project is private2410 when not authenticated2411 behaves like unauthorized2412 returns the 2-segment group path2413 when authenticated2414 using warden2415 when active2416 behaves like authenticated2417 with access to the project2418 returns the full project path2419 without access to the project2420 behaves like unauthorized2421 returns the 2-segment group path2422 when blocked2423 behaves like unauthorized2424 returns the 2-segment group path2425 using a personal access token2426 with api scope2427 behaves like authenticated2428 with access to the project2429 returns the full project path2430 without access to the project2431 behaves like unauthorized2432 returns the 2-segment group path2433 with read_user scope2434 behaves like unauthorized2435 returns the 2-segment group path2436 with a subpackage that is not a valid project path2437 behaves like a nested project2438 when the project is public2439 returns the full project path2440 when the project is private2441 when not authenticated2442 behaves like unauthorized2443 returns the 2-segment group path2444 when authenticated2445 using warden2446 when active2447 behaves like authenticated2448 with access to the project2449 returns the full project path2450 without access to the project2451 behaves like unauthorized2452 returns the 2-segment group path2453 when blocked2454 behaves like unauthorized2455 returns the 2-segment group path2456 using a personal access token2457 with api scope2458 behaves like authenticated2459 with access to the project2460 returns the full project path2461 without access to the project2462 behaves like unauthorized2463 returns the 2-segment group path2464 with read_user scope2465 behaves like unauthorized2466 returns the 2-segment group path2467 without subpackages2468 behaves like a nested project2469 when the project is public2470 returns the full project path2471 when the project is private2472 when not authenticated2473 behaves like unauthorized2474 returns the 2-segment group path2475 when authenticated2476 using warden2477 when active2478 behaves like authenticated2479 with access to the project2480 returns the full project path2481 without access to the project2482 behaves like unauthorized2483 returns the 2-segment group path2484 when blocked2485 behaves like unauthorized2486 returns the 2-segment group path2487 using a personal access token2488 with api scope2489 behaves like authenticated2490 with access to the project2491 returns the full project path2492 without access to the project2493 behaves like unauthorized2494 returns the 2-segment group path2495 with read_user scope2496 behaves like unauthorized2497 returns the 2-segment group path2498 with a bogus path2499 skips go-import generation2500 with nothing disabled2501 with simple 2-segment project path2502 with subpackages2503 returns the full project path2504 without subpackages2505 returns the full project path2506 with a nested project path2507 with subpackages2508 behaves like a nested project2509 when the project is public2510 returns the full project path2511 when the project is private2512 when not authenticated2513 behaves like unauthorized2514 returns the 2-segment group path2515 when authenticated2516 using warden2517 when active2518 behaves like authenticated2519 with access to the project2520 returns the full project path2521 without access to the project2522 behaves like unauthorized2523 returns the 2-segment group path2524 when blocked2525 behaves like unauthorized2526 returns the 2-segment group path2527 using a personal access token2528 with api scope2529 behaves like authenticated2530 with access to the project2531 returns the full project path2532 without access to the project2533 behaves like unauthorized2534 returns the 2-segment group path2535 with read_user scope2536 behaves like unauthorized2537 returns the 2-segment group path2538 with a subpackage that is not a valid project path2539 behaves like a nested project2540 when the project is public2541 returns the full project path2542 when the project is private2543 when not authenticated2544 behaves like unauthorized2545 returns the 2-segment group path2546 when authenticated2547 using warden2548 when active2549 behaves like authenticated2550 with access to the project2551 returns the full project path2552 without access to the project2553 behaves like unauthorized2554 returns the 2-segment group path2555 when blocked2556 behaves like unauthorized2557 returns the 2-segment group path2558 using a personal access token2559 with api scope2560 behaves like authenticated2561 with access to the project2562 returns the full project path2563 without access to the project2564 behaves like unauthorized2565 returns the 2-segment group path2566 with read_user scope2567 behaves like unauthorized2568 returns the 2-segment group path2569 without subpackages2570 behaves like a nested project2571 when the project is public2572 returns the full project path2573 when the project is private2574 when not authenticated2575 behaves like unauthorized2576 returns the 2-segment group path2577 when authenticated2578 using warden2579 when active2580 behaves like authenticated2581 with access to the project2582 returns the full project path2583 without access to the project2584 behaves like unauthorized2585 returns the 2-segment group path2586 when blocked2587 behaves like unauthorized2588 returns the 2-segment group path2589 using a personal access token2590 with api scope2591 behaves like authenticated2592 with access to the project2593 returns the full project path2594 without access to the project2595 behaves like unauthorized2596 returns the 2-segment group path2597 with read_user scope2598 behaves like unauthorized2599 returns the 2-segment group path2600 with a bogus path2601 skips go-import generation2602 with nothing disabled (blank string)2603 with simple 2-segment project path2604 with subpackages2605 returns the full project path2606 without subpackages2607 returns the full project path2608 with a nested project path2609 with subpackages2610 behaves like a nested project2611 when the project is public2612 returns the full project path2613 when the project is private2614 when not authenticated2615 behaves like unauthorized2616 returns the 2-segment group path2617 when authenticated2618 using warden2619 when active2620 behaves like authenticated2621 with access to the project2622 returns the full project path2623 without access to the project2624 behaves like unauthorized2625 returns the 2-segment group path2626 when blocked2627 behaves like unauthorized2628 returns the 2-segment group path2629 using a personal access token2630 with api scope2631 behaves like authenticated2632 with access to the project2633 returns the full project path2634 without access to the project2635 behaves like unauthorized2636 returns the 2-segment group path2637 with read_user scope2638 behaves like unauthorized2639 returns the 2-segment group path2640 with a subpackage that is not a valid project path2641 behaves like a nested project2642 when the project is public2643 returns the full project path2644 when the project is private2645 when not authenticated2646 behaves like unauthorized2647 returns the 2-segment group path2648 when authenticated2649 using warden2650 when active2651 behaves like authenticated2652 with access to the project2653 returns the full project path2654 without access to the project2655 behaves like unauthorized2656 returns the 2-segment group path2657 when blocked2658 behaves like unauthorized2659 returns the 2-segment group path2660 using a personal access token2661 with api scope2662 behaves like authenticated2663 with access to the project2664 returns the full project path2665 without access to the project2666 behaves like unauthorized2667 returns the 2-segment group path2668 with read_user scope2669 behaves like unauthorized2670 returns the 2-segment group path2671 without subpackages2672 behaves like a nested project2673 when the project is public2674 returns the full project path2675 when the project is private2676 when not authenticated2677 behaves like unauthorized2678 returns the 2-segment group path2679 when authenticated2680 using warden2681 when active2682 behaves like authenticated2683 with access to the project2684 returns the full project path2685 without access to the project2686 behaves like unauthorized2687 returns the 2-segment group path2688 when blocked2689 behaves like unauthorized2690 returns the 2-segment group path2691 using a personal access token2692 with api scope2693 behaves like authenticated2694 with access to the project2695 returns the full project path2696 without access to the project2697 behaves like unauthorized2698 returns the 2-segment group path2699 with read_user scope2700 behaves like unauthorized2701 returns the 2-segment group path2702 with a bogus path2703 skips go-import generation2704NotesFinder2705 #execute2706 finds notes on merge requests2707 finds notes on snippets2708 excludes notes on commits the author can't download2709 succeeds when no notes found2710 on restricted projects2711 publicly excludes notes on merge requests2712 publicly excludes notes on issues2713 publicly excludes notes on snippets2714 for target type2715 finds only notes for the selected type2716 for target2717 finds all notes2718 finds notes on merge requests2719 finds notes on snippets2720 finds notes on personal snippets2721 raises an exception for an invalid target_type2722 filters out old notes2723 confidential issue notes2724 returns notes if user can see the issue2725 raises an error if user can not see the issue2726 raises an error for project members with guest role2727 .search2728 returns notes with matching content2729 returns notes with matching content regardless of the casing2730 returns commit notes user can access2731 confidential issues2732 returns notes with matching content if user can see the issue2733 does not return notes with matching content if user can not see the issue2734 does not return notes with matching content for project members with guest role2735 does not return notes with matching content for unauthenticated users2736 inlines SQL filters on subqueries for performance2737 project_id check2738 search filter2739 #target2740 for a issue target2741 returns the issue2742 for a merge request target2743 returns the merge_request2744 for a snippet target2745 returns the snippet2746 for a commit target2747 returns the commit2748SearchService2749 #project2750 when the project is accessible2751 returns the project2752 returns the project for guests2753 when the project is not accessible2754 returns nil2755 when there is no project_id2756 returns nil2757 #group2758 when the group is accessible2759 returns the group2760 when the group is not accessible2761 returns nil2762 when there is no group_id2763 returns nil2764 #show_snippets?2765 when :snippets is 'true'2766 returns true2767 when :snippets is not 'true'2768 returns false2769 when :snippets is missing2770 returns false2771 #scope2772 with accessible project_id2773 and allowed scope2774 returns the specified scope2775 and disallowed scope2776 returns the default scope2777 and no scope2778 returns the default scope2779 with 'true' snippets2780 and allowed scope2781 returns the specified scope2782 and disallowed scope2783 returns the default scope2784 and no scope2785 returns the default scope2786 with no project_id, no snippets2787 and allowed scope2788 returns the specified scope2789 and disallowed scope2790 returns the default scope2791 and no scope2792 returns the default scope2793 #search_results2794 with accessible project_id2795 returns an instance of Gitlab::ProjectSearchResults2796 with accessible project_id and 'true' snippets2797 returns an instance of Gitlab::ProjectSearchResults2798 with 'true' snippets2799 returns an instance of Gitlab::SnippetSearchResults2800 with no project_id and no snippets2801 returns an instance of Gitlab::SearchResults2802 #search_objects2803 with accessible project_id2804 returns objects in the project2805 with accessible project_id and 'true' snippets2806 returns objects in the project2807 with 'true' snippets2808 returns objects in snippets2809 with accessible group_id2810 returns objects in the group2811 with no project_id, group_id or snippets2812 returns objects in global2813Merge requests > User lists merge requests2814 filters on no assignee2815 filters on a specific assignee2816 sorts by newest2817 sorts by last updated2818 sorts by milestone2819 filters on one label and sorts by due date2820 while filtering on two labels2821 sorts by due date2822 filter on assignee and2823 sorts by due soon2824 sorts by recently due milestone2825User creates snippet2826 Authenticated user creates a snippet2827 previews a snippet with file2828 uploads a file when dragging into textarea2829 validation fails for the first time2830 Authenticated user creates a snippet with + in filename2831Projects > Members > Groups with access list2832 updates group access level2833 updates expiry date2834 deletes group link2835 search in existing members (yes, this filters the groups list as well)2836 finds no results2837 finds results2838API::Search2839 GET /search2840 when user is not authenticated2841 returns 401 error2842 when scope is not supported2843 returns 400 error2844 when scope is missing2845 returns 400 error2846 with correct params2847 for projects scope2848 behaves like response is correct2849 should respond with numeric status code 2002850 should match response schema "public_api/v4/projects"2851 should include limited pagination headers2852 should eq 12853 for issues scope2854 behaves like response is correct2855 should respond with numeric status code 2002856 should match response schema "public_api/v4/issues"2857 should include limited pagination headers2858 should eq 12859 for merge_requests scope2860 behaves like response is correct2861 should respond with numeric status code 2002862 should match response schema "public_api/v4/merge_requests"2863 should include limited pagination headers2864 should eq 12865 for milestones scope2866 behaves like response is correct2867 should respond with numeric status code 2002868 should match response schema "public_api/v4/milestones"2869 should include limited pagination headers2870 should eq 12871 for snippet_titles scope2872 behaves like response is correct2873 should respond with numeric status code 2002874 should match response schema "public_api/v4/snippets"2875 should include limited pagination headers2876 should eq 12877 for snippet_blobs scope2878 behaves like response is correct2879 should respond with numeric status code 2002880 should match response schema "public_api/v4/snippets"2881 should include limited pagination headers2882 should eq 12883 GET /groups/:id/search2884 when user is not authenticated2885 returns 401 error2886 when scope is not supported2887 returns 400 error2888 when scope is missing2889 returns 400 error2890 when group does not exist2891 returns 404 error2892 when user does can not see the group2893 returns 404 error2894 with correct params2895 for projects scope2896 behaves like response is correct2897 should respond with numeric status code 2002898 should match response schema "public_api/v4/projects"2899 should include limited pagination headers2900 should eq 12901 for issues scope2902 behaves like response is correct2903 should respond with numeric status code 2002904 should match response schema "public_api/v4/issues"2905 should include limited pagination headers2906 should eq 12907 for merge_requests scope2908 behaves like response is correct2909 should respond with numeric status code 2002910 should match response schema "public_api/v4/merge_requests"2911 should include limited pagination headers2912 should eq 12913 for milestones scope2914 behaves like response is correct2915 should respond with numeric status code 2002916 should match response schema "public_api/v4/milestones"2917 should include limited pagination headers2918 should eq 12919 for milestones scope with group path as id2920 behaves like response is correct2921 should respond with numeric status code 2002922 should match response schema "public_api/v4/milestones"2923 should include limited pagination headers2924 should eq 12925 GET /projects/:id/search2926 when user is not authenticated2927 returns 401 error2928 when scope is not supported2929 returns 400 error2930 when scope is missing2931 returns 400 error2932 when project does not exist2933 returns 404 error2934 when user does can not see the project2935 returns 404 error2936 with correct params2937 for issues scope2938 behaves like response is correct2939 should respond with numeric status code 2002940 should match response schema "public_api/v4/issues"2941 should include limited pagination headers2942 should eq 12943 for merge_requests scope2944 behaves like response is correct2945 should respond with numeric status code 2002946 should match response schema "public_api/v4/merge_requests"2947 should include limited pagination headers2948 should eq 12949 for milestones scope2950 behaves like response is correct2951 should respond with numeric status code 2002952 should match response schema "public_api/v4/milestones"2953 should include limited pagination headers2954 should eq 12955 for notes scope2956 behaves like response is correct2957 should respond with numeric status code 2002958 should match response schema "public_api/v4/notes"2959 should include limited pagination headers2960 should eq 12961 for wiki_blobs scope2962 behaves like response is correct2963 should respond with numeric status code 2002964 should match response schema "public_api/v4/blobs"2965 should include limited pagination headers2966 should eq 12967 for commits scope2968 behaves like response is correct2969 should respond with numeric status code 2002970 should match response schema "public_api/v4/commits_details"2971 should include limited pagination headers2972 should eq 12973 for commits scope with project path as id2974 behaves like response is correct2975 should respond with numeric status code 2002976 should match response schema "public_api/v4/commits_details"2977 should include limited pagination headers2978 should eq 12979 for blobs scope2980 behaves like response is correct2981 should respond with numeric status code 2002982 should match response schema "public_api/v4/blobs"2983 should include limited pagination headers2984 should eq 22985Projects > Snippets > Create Snippet2986 when a user is authenticated2987 creates a new snippet2988 uploads a file when dragging into textarea2989 creates a snippet when all reuiqred fields are filled in after validation failing2990 when a user is not authenticated2991 shows a public snippet on the index page but not the New snippet button2992JobArtifactUploader2993 behaves like builds correct paths2994 #store_dir2995 behaves like matches the method pattern2996 should match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/2997 #cache_dir2998 behaves like matches the method pattern2999 should match /artifacts\/tmp\/cache/3000 #work_dir3001 behaves like matches the method pattern3002 should match /artifacts\/tmp\/work/3003 #upload_path3004 behaves like matches the method pattern3005 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3006 .absolute_path3007 behaves like matches the method pattern3008 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3009 .base_dir3010 behaves like matches the method pattern3011 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3012 object store is REMOTE3013 behaves like builds correct paths3014 #store_dir3015 behaves like matches the method pattern3016 should match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/3017 #cache_dir3018 behaves like matches the method pattern3019 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3020 #work_dir3021 behaves like matches the method pattern3022 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3023 #upload_path3024 behaves like matches the method pattern3025 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3026 .absolute_path3027 behaves like matches the method pattern3028 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3029 .base_dir3030 behaves like matches the method pattern3031 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:6 (PENDING: No pattern provided, skipping.)3032 #open3033 when trace is stored in File storage3034 when file exists3035 returns io stream3036 when file does not exist3037 returns nil3038 when trace is stored in Object storage3039 returns http io stream3040 file is stored in valid local_path3041 should start with "/builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/"3042 should include "/2018_05_02/"3043 should include "/18/18/"3044 should end with "ci_build_artifacts.zip"3045 #migrate!3046 behaves like migrates3047 returns corresponding file type3048 does nothing when migrating to the current store3049 migrate to the specified store3050 removes the original file after the migration3051 can access to the original file during migration3052 when migrate! is not occupied by another process3053 executes migrate!3054 executes use_file3055 when migrate! is occupied by another process3056 does not execute migrate!3057 does not execute use_file3058 migration is unsuccessful3059 when the store is not supported3060 does not update the object_store3061 does not delete the original file3062 upon a fog failure3063 does not update the object_store3064 does not delete the original file3065 upon a database failure3066 does not update the object_store3067 does not delete the original file3068 behaves like migrates3069 returns corresponding file type3070 does nothing when migrating to the current store3071 migrate to the specified store3072 removes the original file after the migration3073 can access to the original file during migration3074 when migrate! is not occupied by another process3075 executes migrate!3076 executes use_file3077 when migrate! is occupied by another process3078 does not execute migrate!3079 does not execute use_file3080 migration is unsuccessful3081 when the store is not supported3082 does not update the object_store3083 does not delete the original file3084 upon a fog failure3085 does not update the object_store3086 does not delete the original file3087 upon a database failure3088 does not update the object_store3089 does not delete the original file3090Reportable note on issue3091 behaves like reportable note3092 has an edit button3093 has a `More actions` dropdown3094 dropdown has Report and Delete links3095 Report button links to a report page3096User find project file3097 navigates to find file by shortcut3098 navigates to find file3099 searches CHANGELOG file3100 does not find file when search not exist file3101 searches file by partially matches3102Dashboard > milestone filter3103 default state3104 shows issues with Any Milestone3105 filtering by milestone3106 shows issues with Milestone v1.03107 should not change active Milestone unless clicked3108 with milestone filter in URL3109 has milestone selected3110 removes milestone filter from URL after clicking "Any Milestone"3111Admin::ServicesController3112 GET #edit3113 asana3114 successfully displays the template3115 assembla3116 successfully displays the template3117 bamboo3118 successfully displays the template3119 bugzilla3120 successfully displays the template3121 buildkite3122 successfully displays the template3123 campfire3124 successfully displays the template3125 custom_issue_tracker3126 successfully displays the template3127 drone_ci3128 successfully displays the template3129 emails_on_push3130 successfully displays the template3131 external_wiki3132 successfully displays the template3133 flowdock3134 successfully displays the template3135 gemnasium3136 successfully displays the template3137 github3138 successfully displays the template3139 hipchat3140 successfully displays the template3141 irker3142 successfully displays the template3143 jenkins3144 successfully displays the template3145 jenkins_deprecated3146 successfully displays the template3147 jira3148 successfully displays the template3149 kubernetes3150 successfully displays the template3151 mattermost3152 successfully displays the template3153 mattermost_slash_commands3154 successfully displays the template3155 microsoft_teams3156 successfully displays the template3157 packagist3158 successfully displays the template3159 pipelines_email3160 successfully displays the template3161 pivotaltracker3162 successfully displays the template3163 prometheus3164 successfully displays the template3165 pushover3166 successfully displays the template3167 redmine3168 successfully displays the template3169 slack3170 successfully displays the template3171 slack_slash_commands3172 successfully displays the template3173 teamcity3174 successfully displays the template3175 #update3176 calls the propagation worker when service is active3177 does not call the propagation worker when service is not active3178API::ProjectExport3179 GET /projects/:project_id/export3180 behaves like when project export is disabled3181 behaves like 404 response3182 returns 4043183 when project export is enabled3184 when user is an admin3185 behaves like get project export status ok3186 is none3187 is started3188 is after_export3189 is finished3190 when user is a master3191 behaves like get project export status ok3192 is none3193 is started3194 is after_export3195 is finished3196 when user is a developer3197 behaves like get project export status denied3198 behaves like 403 response3199 returns 4033200 when user is a reporter3201 behaves like get project export status denied3202 behaves like 403 response3203 returns 4033204 when user is a guest3205 behaves like get project export status denied3206 behaves like 403 response3207 returns 4033208 when user is not a member3209 behaves like get project export status not found3210 behaves like 404 response3211 returns 4043212 GET /projects/:project_id/export/download3213 behaves like when project export is disabled3214 behaves like 404 response3215 returns 4043216 when project export is enabled3217 when user is an admin3218 behaves like get project download by strategy3219 when upload strategy set3220 behaves like get project export upload after action3221 and is uploading3222 downloads3223 when upload complete3224 behaves like 404 response3225 returns 4043226 when download strategy set3227 behaves like get project export download3228 downloads3229 behaves like 404 response3230 returns 4043231 behaves like 404 response3232 returns 4043233 when user is a master3234 behaves like get project download by strategy3235 when upload strategy set3236 behaves like get project export upload after action3237 and is uploading3238 downloads3239 when upload complete3240 behaves like 404 response3241 returns 4043242 when download strategy set3243 behaves like get project export download3244 downloads3245 behaves like 404 response3246 returns 4043247 behaves like 404 response3248 returns 4043249 when user is a developer3250 behaves like get project export download denied3251 behaves like 403 response3252 returns 4033253 when user is a reporter3254 behaves like get project export download denied3255 behaves like 403 response3256 returns 4033257 when user is a guest3258 behaves like get project export download denied3259 behaves like 403 response3260 returns 4033261 when user is not a member3262 behaves like get project export download not found3263 behaves like 404 response3264 returns 4043265 POST /projects/:project_id/export3266 behaves like when project export is disabled3267 behaves like 404 response3268 returns 4043269 when project export is enabled3270 when user is an admin3271 behaves like post project export start3272 with upload strategy3273 starts3274 when params invalid3275 behaves like 400 response3276 returns 4003277 with download strategy3278 starts3279 when user is a master3280 behaves like post project export start3281 with upload strategy3282 starts3283 when params invalid3284 behaves like 400 response3285 returns 4003286 with download strategy3287 starts3288 when user is a developer3289 behaves like post project export start denied3290 behaves like 403 response3291 returns 4033292 when user is a reporter3293 behaves like post project export start denied3294 behaves like 403 response3295 returns 4033296 when user is a guest3297 behaves like post project export start denied3298 behaves like 403 response3299 returns 4033300 when user is not a member3301 behaves like post project export start not found3302 behaves like 404 response3303 returns 4043304 when overriding description3305 starts3306Banzai::Filter::UserReferenceFilter3307 requires project context3308 ignores invalid users3309 ignores references with text before the @ sign3310 ignores valid references contained inside 'pre' element3311 ignores valid references contained inside 'code' element3312 ignores valid references contained inside 'a' element3313 ignores valid references contained inside 'style' element3314 links with adjacent text3315 includes default classes3316 supports an :only_path context3317 mentioning @all3318 supports a special @all mention3319 includes a data-author attribute when there is an author3320 does not include a data-author attribute when there is no author3321 ignores reference to all when the user is not a project member3322 behaves like a reference containing an element node3323 does not escape inner html3324 mentioning a user3325 links to a User3326 links to a User with a period3327 links to a User with an underscore3328 links to a User with different case-sensitivity3329 includes a data-user attribute3330 behaves like a reference containing an element node3331 does not escape inner html3332 mentioning a group3333 links to the Group3334 includes a data-group attribute3335 behaves like a reference containing an element node3336 does not escape inner html3337 mentioning a nested group3338 links to the nested group3339 has the full group name as a title3340 behaves like a reference containing an element node3341 does not escape inner html3342 referencing a user in a link href3343 links to a User3344 links with adjacent text3345 includes a data-user attribute3346 when a project is not specified3347 does not link a User3348 when skip_project_check set to true3349 links to a User3350 does not link users using @all reference3351 in group context3352 supports a special @all mention3353 supports mentioning a single user3354 supports mentioning a group3355 #namespaces3356 returns a Hash containing all Namespaces3357 #usernames3358 returns the usernames mentioned in a document3359Projects::UpdatePagesService3360 fails to remove project pages when no pages is deployed3361 fails if no artifacts3362 fails for invalid archive3363 legacy artifacts3364Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/928/50/pages.zip3365 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-xylu3g/public/3366 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-xylu3g/public/.hidden/3367 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-xylu3g/public/.hidden/file 3368 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-xylu3g/public/zero 3369 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-xylu3g/public/index.html 3370 succeeds3371 limits pages size3372Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/928/50/pages.zip3373 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-165unkw/public/3374 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-165unkw/public/.hidden/3375 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-165unkw/public/.hidden/file 3376 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-165unkw/public/zero 3377 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-165unkw/public/index.html 3378 removes pages after destroy3379 fails if sha on branch is not latest3380Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/928/50/pages_empty.zip3381caution: filename not matched: public/*3382 fails for empty file fails3383 pages artifacts3384Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/928/50/pages.zip3385 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-nema0c/public/3386 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-nema0c/public/.hidden/3387 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-nema0c/public/.hidden/file 3388 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-nema0c/public/zero 3389 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-nema0c/public/index.html 3390 doesn't delete artifacts after deploying3391 for new artifacts3392 for a valid job3393Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/73/c2/73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7/2018_05_02/50/50/pages.zip3394 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-mkmj9o/public/3395 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-mkmj9o/public/.hidden/3396 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-mkmj9o/public/.hidden/file 3397 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-mkmj9o/public/zero 3398 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-mkmj9o/public/index.html 3399 succeeds3400 limits pages size3401Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/73/c2/73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7/2018_05_02/50/54/pages.zip3402 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1etnyvb/public/3403 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1etnyvb/public/.hidden/3404 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1etnyvb/public/.hidden/file 3405 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1etnyvb/public/zero 3406 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1etnyvb/public/index.html 3407 removes pages after destroy3408 fails if sha on branch is not latest3409Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/73/c2/73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7/2018_05_02/50/58/pages_empty.zip3410caution: filename not matched: public/*3411 fails for empty file fails3412 pages artifacts3413Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/73/c2/73c2e083e4e933fc3ba76abc2bd6aea80c838c172e7db94ea473c9be4e07b2d7/2018_05_02/50/60/pages.zip3414 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-662ywk/public/3415 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-662ywk/public/.hidden/3416 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-662ywk/public/.hidden/file 3417 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-662ywk/public/zero 3418 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-662ywk/public/index.html 3419 doesn't delete artifacts after deploying3420 when timeout happens by DNS error3421 raises an error3422 when failed to extract zip artifacts3423 raises an error3424 when missing artifacts metadata3425 does not raise an error as failed job3426 maximum pages artifacts size3427 when maximum pages size is set to zero3428 when page size does not exceed internal maximum3429Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/928/50/pages.zip3430 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1apzcgy/public/3431 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1apzcgy/public/.hidden/3432 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1apzcgy/public/.hidden/file 3433 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1apzcgy/public/zero 3434 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-83-1apzcgy/public/index.html 3435 updates pages correctly3436 when pages size does exceed internal maximum3437 behaves like pages size limit exceeded3438 limits the maximum size of gitlab pages3439 when pages size is greater than max size setting3440 behaves like pages size limit exceeded3441 limits the maximum size of gitlab pages3442 when max size setting is greater than internal max size3443 behaves like pages size limit exceeded3444 limits the maximum size of gitlab pages3445Clusters::Cluster3446 should belong to user3447 should have many projects3448 should have one provider_gcp3449 should have one platform_kubernetes3450 should have one application_helm3451 should have one application_ingress3452 should have one application_prometheus3453 should have one application_runner3454 should delegate #status to #provider object3455 should delegate #status_reason to #provider object3456 should delegate #status_name to #provider object3457 should delegate #on_creation? to #provider object3458 should respond to #project3459 should includes the HasEnvironmentScope module3460 .enabled3461 should contain exactly #<Clusters::Cluster id: 1, user_id: 1472, provider_type: nil, platform_type: nil, created_at: "2018-0...49", updated_at: "2018-05-02 14:50:49", enabled: true, name: "test-cluster", environment_scope: "*">3462 .disabled3463 should contain exactly #<Clusters::Cluster id: 3, user_id: 1474, provider_type: nil, platform_type: nil, created_at: "2018-0...9", updated_at: "2018-05-02 14:50:49", enabled: false, name: "test-cluster", environment_scope: "*">3464 .user_provided3465 should contain exactly #<Clusters::Cluster id: 6, user_id: 1476, provider_type: 0, platform_type: 1, created_at: "2018-05-02...50", updated_at: "2018-05-02 14:50:50", enabled: true, name: "test-cluster", environment_scope: "*">3466 .gcp_provided3467 should contain exactly #<Clusters::Cluster id: 12, user_id: 1481, provider_type: 1, platform_type: 1, created_at: "2018-05-0...50", updated_at: "2018-05-02 14:50:50", enabled: true, name: "test-cluster", environment_scope: "*">3468 .gcp_installed3469 should contain exactly #<Clusters::Cluster id: 17, user_id: 1486, provider_type: 1, platform_type: 1, created_at: "2018-05-0...50", updated_at: "2018-05-02 14:50:50", enabled: true, name: "test-cluster", environment_scope: "*">3470 validation3471 when validates name3472 when provided by user3473 when name is empty3474 should be falsey3475 when name is nil3476 should be falsey3477 when name is present3478 should be truthy3479 when provided by gcp3480 when name is shorter than 13481 should be falsey3482 when name is longer than 633483 should be falsey3484 when name includes invalid character3485 should be falsey3486 when name is present3487 should be truthy3488 when record is persisted3489 when name is changed3490 should be falsey3491 when name is same3492 should be truthy3493 when validates restrict_modification3494 when creation is on going3495 should be falsey3496 when creation is done3497 should be truthy3498 when validates unique_environment_scope3499 when identical environment scope exists in project3500 should be falsey3501 when identical environment scope does not exist in project3502 should be truthy3503 when identical environment scope exists in different project3504 should be truthy3505 #provider3506 when provider is gcp3507 returns a provider3508 when provider is user3509 should be nil3510 #platform3511 when platform is kubernetes3512 returns a platform3513 #first_project3514 when cluster belongs to a project3515 should eq #<Project id:933 namespace388/project858>3516 when cluster does not belong to projects3517 should be nil3518 #applications3519 when none of applications are created3520 returns a list of a new objects3521 when applications are created3522 returns a list of created applications3523 #created?3524 when status_name is :created3525 should eq true3526 when status_name is not :created3527 should eq false3528Gitlab::Badge::Coverage::Report3529 #entity3530 describes a coverage3531 #metadata3532 returns correct metadata3533 #template3534 returns correct template3535 when latest successful pipeline exists3536 when particular job specified3537 returns coverage for the particular job3538 when particular job not specified3539 returns arithemetic mean for the pipeline3540 when only failed pipeline exists3541 behaves like unknown coverage report3542 particular job specified3543 returns nil3544 particular job not specified3545 returns nil3546 particular job specified3547 retruns nil3548 pipeline does not exist3549 behaves like unknown coverage report3550 particular job specified3551 returns nil3552 particular job not specified3553 returns nil3554User views open merge requests3555 when project is public3556 when not signed in3557 when the target branch is the project's default branch3558 shows merge requests3559 shows open merge requests3560 does not show target branch name3561 when the target branch is different from the project's default branch3562 shows target branch name3563 when a merge request has pipelines3564 shows pipeline status3565 when signed in3566 shows merge requests3567 shows the new merge request button3568 when the project is archived3569 hides the new merge request button3570 when project is internal3571 when signed in3572 shows merge requests3573MicrosoftTeamsService3574 Associations3575 should belong to project3576 should have one service_hook3577 Validations3578 when service is active3579 should validate that :webhook cannot be empty/falsy3580 behaves like issue tracker service URL attribute3581 should allow :webhook to be ‹"https://example.com"›3582 should not allow :webhook to be ‹"example.com"›3583 should not allow :webhook to be ‹"ftp://example.com"›3584 should not allow :webhook to be ‹"herp-and-derp"›3585 when service is inactive3586 should not validate that :webhook cannot be empty/falsy3587 #execute3588 with push events3589 calls Microsoft Teams API for push events3590 specifies the webhook when it is configured3591 with issue events3592 calls Microsoft Teams API3593 with merge events3594 calls Microsoft Teams API3595 with wiki page events3596 calls Microsoft Teams API3597 Note events3598 when commit comment event executed3599 calls Microsoft Teams API for commit comment events3600 when merge request comment event executed3601 calls Microsoft Teams API for merge request comment events3602 when issue comment event executed3603 calls Microsoft Teams API for issue comment events3604 when snippet comment event executed3605 calls Microsoft Teams API for snippet comment events3606 Pipeline events3607 with failed pipeline3608 behaves like call Microsoft Teams API3609 calls Microsoft Teams API for pipeline events3610 with succeeded pipeline3611 with default to notify_only_broken_pipelines3612 does not call Microsoft Teams API for pipeline events3613 with setting notify_only_broken_pipelines to false3614 behaves like call Microsoft Teams API3615 calls Microsoft Teams API for pipeline events3616 only notify for the default branch3617 when enabled3618 does not call the Microsoft Teams API for pipeline events3619Clusters::Platforms::Kubernetes3620 should belong to cluster3621 should be a kind of Gitlab::Kubernetes3622 should be a kind of ReactiveCaching3623 should respond to #ca_pem3624 before_validation3625 when namespace includes upper case3626 converts to lower case3627 validation3628 when validates namespace3629 when namespace is blank3630 should be truthy3631 when namespace is longer than 633632 should be falsey3633 when namespace includes invalid character3634 should be falsey3635 when namespace is vaild3636 should be truthy3637 when validates api_url3638 when api_url is invalid url3639 should be falsey3640 when api_url is nil3641 should be falsey3642 when api_url is valid url3643 should be truthy3644 when validates token3645 when token is nil3646 should be falsey3647 #actual_namespace3648 when namespace is present3649 should eq "namespace-123"3650 when namespace is not present3651 should eq "project886-961"3652 #default_namespace3653 when cluster belongs to a project3654 should eq "project887-962"3655 when cluster belongs to nothing3656 should be nil3657 #predefined_variables3658 namespace is provided3659 behaves like setting variables3660 sets the variables3661 no namespace provided3662 sets the KUBE_NAMESPACE3663 behaves like setting variables3664 sets the variables3665 #terminals3666 with invalid pods3667 returns no terminals3668 with valid pods3669 returns terminals3670 uses max session time from settings3671 #calculate_reactive_cache3672 when cluster is disabled3673 should be nil3674 when kubernetes responds with valid pods and deployments3675 should eq {:pods=>[{"metadata"=>{"name"=>"kube-pod", "creationTimestamp"=>"2016-11-25T19:55:19Z", "labels"=>{"a... "status"=>{"observedGeneration"=>4, "replicas"=>3, "updatedReplicas"=>3, "availableReplicas"=>3}}]}3676 when kubernetes responds with 500s3677 should raise Kubeclient::HttpError3678 when kubernetes responds with 404s3679 should eq {:pods=>[], :deployments=>[]}3680Projects::BoardsController3681 GET index3682 creates a new project board when project does not have one3683 sets boards_endpoint instance variable to a boards path3684 when format is HTML3685 renders template3686 with unauthorized user3687 returns a not found 404 response3688 when format is JSON3689 returns a list of project boards3690 with unauthorized user3691 returns a not found 404 response3692 issues are disabled3693 returns a not found 404 response3694 GET show3695 sets boards_endpoint instance variable to a boards path3696 when format is HTML3697 renders template3698 with unauthorized user3699 returns a not found 404 response3700 when format is JSON3701 returns project board3702 with unauthorized user3703 returns a not found 404 response3704 when board does not belong to project3705 returns a not found 404 response3706Gitlab::GitalyClient::CommitService3707 #diff_from_parent3708 returns a Gitlab::GitalyClient::DiffStitcher3709 encodes paths correctly3710 when a commit has a parent3711 sends an RPC request with the parent ID as left commit3712 when a commit does not have a parent3713 sends an RPC request with empty tree ref as left commit3714 #commit_deltas3715 when a commit has a parent3716 sends an RPC request with the parent ID as left commit3717 when a commit does not have a parent3718 sends an RPC request with empty tree ref as left commit3719 #between3720 sends an RPC request3721 #tree_entries3722 sends a get_tree_entries message3723 with UTF-8 params strings3724 handles string encodings correctly3725 #commit_count3726 sends a commit_count message3727 with UTF-8 params strings3728 handles string encodings correctly3729 #find_commit3730 sends an RPC request3731 caching3732 when passed revision is a branch name3733 calls Gitaly3734 when passed revision is a commit ID3735 returns a cached commit3736 #patch3737 sends an RPC request3738 concatenates the responses data3739 #commit_stats3740 sends an RPC request3741User creates a project3742 creates a new project3743 in a subgroup they do not own3744 creates a new project (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)3745Issue markdown toolbar3746 doesn't include first new line when adding bold3747 doesn't include first new line when adding underline3748Issues::DuplicateService3749 #execute3750 when the issues passed are the same3751 does nothing3752 when the user cannot update the duplicate issue3753 does nothing3754 when the user cannot comment on the canonical issue3755 does nothing3756 when the user can mark the issue as a duplicate3757 closes the duplicate issue3758 adds a system note to the duplicate issue3759 adds a system note to the canonical issue3760Groups routing3761 to #show3762 also supports nested groups3763 also display group#show on the short path3764 to #activity3765 to #issues3766 to #members3767 to #labels3768 to #milestones3769 legacy redirection3770 labels3771 behaves like redirecting a legacy path3772 redirects /groups/complex.group-namegit/labels to /groups/complex.group-namegit/-/labels when the resource does not exist3773 does not redirect /groups/complex.group-namegit/labels to /groups/complex.group-namegit/-/labels when the resource exists3774 when requesting JSON3775 behaves like redirecting a legacy path3776 redirects /groups/complex.group-namegit/labels.json to /groups/complex.group-namegit/-/labels.json when the resource does not exist3777 does not redirect /groups/complex.group-namegit/labels.json to /groups/complex.group-namegit/-/labels.json when the resource exists3778 group_members3779 behaves like redirecting a legacy path3780 redirects /groups/complex.group-namegit/group_members to /groups/complex.group-namegit/-/group_members when the resource does not exist3781 does not redirect /groups/complex.group-namegit/group_members to /groups/complex.group-namegit/-/group_members when the resource exists3782 avatar3783 routes to the avatars controller3784 milestones3785 behaves like redirecting a legacy path3786 redirects /groups/complex.group-namegit/milestones to /groups/complex.group-namegit/-/milestones when the resource does not exist3787 does not redirect /groups/complex.group-namegit/milestones to /groups/complex.group-namegit/-/milestones when the resource exists3788 nested routes3789 redirects the nested routes3790 with a query string3791 behaves like redirecting a legacy path3792 redirects /groups/complex.group-namegit/milestones?hello=world to /groups/complex.group-namegit/-/milestones?hello=world when the resource does not exist3793 does not redirect /groups/complex.group-namegit/milestones?hello=world to /groups/complex.group-namegit/-/milestones?hello=world when the resource exists3794 behaves like redirecting a legacy path3795 redirects /groups/complex.group-namegit/milestones?milestones=/milestones to /groups/complex.group-namegit/-/milestones?milestones=/milestones when the resource does not exist3796 does not redirect /groups/complex.group-namegit/milestones?milestones=/milestones to /groups/complex.group-namegit/-/milestones?milestones=/milestones when the resource exists3797 edit3798 behaves like redirecting a legacy path3799 redirects /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource does not exist3800 does not redirect /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource exists (PENDING: still rejected because of the wildcard reserved word)3801 issues3802 behaves like redirecting a legacy path3803 redirects /groups/complex.group-namegit/issues to /groups/complex.group-namegit/-/issues when the resource does not exist3804 does not redirect /groups/complex.group-namegit/issues to /groups/complex.group-namegit/-/issues when the resource exists3805 merge_requests3806 behaves like redirecting a legacy path3807 redirects /groups/complex.group-namegit/merge_requests to /groups/complex.group-namegit/-/merge_requests when the resource does not exist3808 does not redirect /groups/complex.group-namegit/merge_requests to /groups/complex.group-namegit/-/merge_requests when the resource exists3809 projects3810 behaves like redirecting a legacy path3811 redirects /groups/complex.group-namegit/projects to /groups/complex.group-namegit/-/projects when the resource does not exist3812 does not redirect /groups/complex.group-namegit/projects to /groups/complex.group-namegit/-/projects when the resource exists3813 activity3814 behaves like redirecting a legacy path3815 redirects /groups/complex.group-namegit/activity to /groups/complex.group-namegit/-/activity when the resource does not exist3816 does not redirect /groups/complex.group-namegit/activity to /groups/complex.group-namegit/-/activity when the resource exists3817 behaves like redirecting a legacy path3818 redirects /groups/activity/activity to /groups/activity/-/activity when the resource does not exist3819 does not redirect /groups/activity/activity to /groups/activity/-/activity when the resource exists3820 subgroup "boards"3821 shows group show page3822 shows boards index page3823API::Snippets3824 GET /snippets/3825 returns snippets available3826 hides private snippets from regular user3827 returns 404 for non-authenticated3828 does not return snippets related to a project with disable feature visibility3829 GET /snippets/public3830 returns all snippets with public visibility from all users3831 GET /snippets/:id/raw3832 returns raw text3833 returns 404 for invalid snippet id3834 GET /snippets/:id3835 returns snippet json3836 returns 404 for invalid snippet id3837 POST /snippets/3838 creates a new snippet3839 returns 400 for missing parameters3840 when the snippet is spam3841 when the snippet is private3842 creates the snippet3843 when the snippet is public3844 rejects the shippet3845 creates a spam log3846 PUT /snippets/:id3847 updates snippet3848 returns 404 for invalid snippet id3849 returns 404 for another user's snippet3850 returns 400 for missing parameters3851 when the snippet is spam3852 when the snippet is private3853 updates the snippet3854 when the snippet is public3855 rejects the shippet3856 creates a spam log3857 when a private snippet is made public3858 rejects the snippet3859 creates a spam log3860 DELETE /snippets/:id3861 deletes snippet3862 returns 404 for invalid snippet id3863 behaves like 412 response3864 for a modified ressource3865 returns 4123866 for an unmodified ressource3867 returns accepted3868 GET /snippets/:id/user_agent_detail3869 exposes known attributes3870 returns unautorized for non-admin users3871Gitlab::DataBuilder::Build3872 .build3873 should be a kind of Hash3874 should eq "master"3875 should eq "97de212e80737a608d939f648d959671fb0a0142"3876 should eq false3877 should eq 863878 should eq "pending"3879 should eq false3880 should eq 10263881 should eq "John Doe1776 / project951"3882 commit author_url3883 when no commit present3884 sets to mailing address of git_author_email3885 when commit present but has no author3886 sets to mailing address of git_author_email3887 when commit and author are present3888 sets to GitLab user url3889DeploymentPlatform3890 #deployment_platform3891 with no Kubernetes configuration on CI/CD, no Kubernetes Service and a Kubernetes template configured3892 returns a platform kubernetes3893 creates a cluster and a platform kubernetes3894 includes appropriate attributes for Cluster3895 creates a platform kubernetes3896 copies attributes from Clusters::Platform::Kubernetes template into the new Cluster::Platforms::Kubernetes3897 with no Kubernetes configuration on CI/CD, no Kubernetes Service and no Kubernetes template configured3898 should be nil3899 when user configured kubernetes from CI/CD > Clusters3900 returns the Kubernetes platform3901 when user configured kubernetes integration from project services3902 returns the Kubernetes service3903 when the cluster creation fails3904 should be nil3905projects/merge_requests/creations/_new_submit.html.haml3906 when there are pipelines for merge request but no pipeline for last commit3907 shows <<Pipelines>> tab and hides <<Builds>> tab3908Clusters::Applications::Ingress3909 should belong to cluster3910 should validate that :cluster cannot be empty/falsy3911 #name3912 is .application_name3913 is recorded in Clusters::Cluster::APPLICATIONS3914 status state machine3915 #make_installing3916 is installing3917 #make_installed3918 is installed3919 #make_errored3920 is errored3921 #make_scheduled3922 is scheduled3923 when was errored3924 clears #status_reason3925 #status3926 sets a default status3927 when application helm is scheduled3928 defaults to :not_installable3929 when application is scheduled3930 sets a default status3931 .installed3932 should contain exactly #<Clusters::Applications::Ingress id: 7, cluster_id: 133, created_at: "2018-05-02 14:52:02", updated_...status: 3, ingress_type: 1, version: "nginx", cluster_ip: nil, status_reason: nil, external_ip: nil>3933 #make_installed!3934 schedules a ClusterWaitForIngressIpAddressWorker3935 #schedule_status_update3936 schedules a ClusterWaitForIngressIpAddressWorker3937 when the application is not installed3938 does not schedule a ClusterWaitForIngressIpAddressWorker3939 when there is already an external_ip3940 does not schedule a ClusterWaitForIngressIpAddressWorker3941 #install_command3942 should be an instance of Gitlab::Kubernetes::Helm::InstallCommand3943 should be initialized with ingress arguments3944 #values3945 should include ingress valid keys3946Profile > Password3947 Password authentication enabled3948 User with password automatically set3949 User puts different passwords in the field and in the confirmation3950 shows an error message3951 does not contain the current password field after an error3952 User puts the same passwords in the field and in the confirmation3953 shows a success message3954 Password authentication unavailable3955 Regular user3956 renders 404 when password authentication is disabled for the web interface and Git3957 LDAP user3958 renders 4043959 Change passowrd3960 does not change user passowrd without old one3961 does not change password with invalid old password3962 changes user password3963 when password is expired3964 needs change user password3965 when global require_two_factor_authentication is enabled3966 needs change user password3967JoinedGroupsFinder3968 #execute3969 without a user3970 only shows public groups from profile owner3971 with a user3972 when the profile visitor is in the private group3973 only shows groups where both users are authorized to see3974 if profile visitor is in one of the private group projects3975 shows group3976 external users3977 if not a member3978 does not show internal groups3979 if authorized3980 shows internal groups if authorized3981OpenID Connect requests3982 Application without OpenID scope3983 token response does not include an ID token3984 userinfo response is unauthorized3985 Application with OpenID scope3986 token response includes an ID token3987 UserInfo payload3988 includes all user information and group memberships3989 ID token payload3990 includes the Gitlab root URL3991 includes the hashed user ID3992 includes the time of the last authentication3993 does not include any unknown properties3994 when user is blocked3995 returns authentication error3996 when user is ldap_blocked3997 returns authentication error3998 OpenID configuration information3999 correctly returns the configuration4000PipelineScheduleWorker4001 when the schedule is runnable by the user4002 when there is a scheduled pipeline within next_run_at4003 behaves like successful scheduling4004 creates a new pipeline4005 when the latest commit contains [ci skip]4006 behaves like successful scheduling4007 creates a new pipeline4008 when the schedule is deactivated4009 does not creates a new pipeline4010 when the schedule is not runnable by the user4011 deactivates the schedule4012 does not schedule a pipeline4013Disable individual triggers4014 service has multiple supported events4015 shows trigger checkboxes4016 services only has one supported event4017 doesn't show unnecessary Trigger checkboxes4018Projects > Show > Download buttons4019 when checking project main page4020 with artifacts4021 shows download artifacts button4022 download links have download attribute4023Gitlab::GitalyClient::RepositoryService4024 #exists?4025 sends a repository_exists message4026 #cleanup4027 sends a cleanup message4028 #garbage_collect4029 sends a garbage_collect message4030 #repack_full4031 sends a repack_full message4032 #repack_incremental4033 sends a repack_incremental message4034 #repository_size4035 sends a repository_size message4036 #apply_gitattributes4037 sends an apply_gitattributes message4038 #info_attributes4039 reads the info attributes4040 #has_local_branches?4041 sends a has_local_branches message4042 #fetch_remote4043 sends a fetch_remote_request message4044 #rebase_in_progress?4045 sends a repository_rebase_in_progress message4046 #squash_in_progress?4047 sends a repository_squash_in_progress message4048 #calculate_checksum4049 sends a calculate_checksum message4050 #create_from_snapshot4051 sends a create_repository_from_snapshot message4052MilestonesFinder4053 it returns milestones for projects4054 returns milestones for groups4055 milestones for groups and project4056 returns milestones for groups and projects4057 orders milestones by due date4058 with filters4059 filters by active state4060 filters by closed state4061 filters by title4062 #find_by4063 finds a single milestone4064ci/status/_badge4065 when rendering status for build4066 when user has ability to see details4067 has link to build details page4068 when user do not have ability to see build details4069 contains build status text4070 does not contain links4071 when rendering status for external job4072 when user has ability to see commit status details4073 status has external target url4074 contains valid commit status text4075 has link to external status page4076 status do not have external target url4077 contains valid commit status text4078 has link to external status page4079Logout/Sign out4080 sign out redirects to sign in page4081 sign out does not show signed out flash notice4082RemoveEmptyExternUidAuth0Identities4083== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrating ==============4084== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrated (0.0098s) =====4085 leaves the correct auth0 identity4086== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrating ==============4087== 20180220150310 RemoveEmptyExternUidAuth0Identities: migrated (0.0090s) =====4088 leaves the correct github identity4089User activates JetBrains TeamCity CI4090 activates service4091projects/diffs/_stats.html.haml4092 when the commit contains several changes4093 uses plural for additions4094 uses plural for deletions4095 when the commit contains no addition and no deletions4096 uses plural for additions4097 uses plural for deletions4098 when the commit contains exactly one addition and one deletion4099 uses singular for additions4100 uses singular for deletions4101Merge request > User sees WIP help message4102 with WIP commits4103 shows a specific WIP hint4104 without WIP commits4105 shows the regular WIP message4106ExpirePipelineCacheWorker4107 #perform4108 invalidates Etag caching for project pipelines path4109 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch4110 doesn't do anything if the pipeline not exist4111 updates the cached status for a project4112 when pipeline is triggered by other pipeline4113 updates the cache of dependent pipeline4114 when pipeline triggered other pipeline4115 updates the cache of dependent pipeline4116Gitlab::Git::Commit4117 Commit info4118 should eq "9bbd16cb550"4119 should eq "9bbd16cb55024d2f8e86a93cc2a5a508e0da4f46"4120 should eq "9bbd16cb55024d2f8e86a93cc2a5a508e0da4f46"4121 should eq "Refactoring specs"4122 should eq 2018-05-02 14:52:43.000000000 +00004123 should eq 2018-05-02 14:52:43.000000000 +00004124 should eq "john@smith.com"4125 should eq "John Smith"4126 should eq "Mike Smith"4127 should eq "mike@smith.com"4128 should be truthy4129 should eq [#<Gitlab::Git::Commit:0x00000000299d4c10 @raw_commit=#<Rugged::Commit:349087520 {message: "Merge bra...[], gl_repository: "">, @repository=#<Gitlab::Git::Repository:0x00000000299d4d78 ...>>>, @head=nil>]4130 should eq "4b4918a572fa86f9771e5ba40fbd48e1eb03e2c6"4131 should eq "--no commit message"4132 Commit info from gitaly commit4133 should eq "5a2bdfdd7c3"4134 should eq "cab1241e5282efaca816cd13ad4b9ed0a2332c62"4135 should eq "a544c5ea38046c28c1bdfb2142ce2fb2b26a77fb"4136 should eq "My commitMy body"4137 should eq 2018-05-02 14:52:43.000000000 +00004138 should eq "user1947@example.org"4139 should eq "John Doe2002"4140 should eq "John Doe2005"4141 should eq "user1954@example.org"4142 should eq ["e140397f40f8fb1285fd202662cf0073e2fd9a70", "eaafdf12612af409c52592e609bb9f29ba3ddafe"]4143 no body4144 should eq "My commit"4145 Class methods4146 .find4147 should return first head commit if without params4148 should return valid commit4149 returns an array of parent ids4150 should return valid commit for tag4151 should return nil for non-commit ids4152 should return nil for parent of non-commit object4153 should return nil for nonexisting ids4154 with broken repo4155 returns nil4156 .last_for_path4157 no path4158 #id4159 should eq "4b4918a572fa86f9771e5ba40fbd48e1eb03e2c6"4160 path4161 #id4162 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4163 ref + path4164 #id4165 should eq "913c66a37b4a45b9769037c55c2d238bd0942d2e"4166 .where with gitaly4167 it should behave like .where4168 path is empty string4169 has 10 elements4170 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4171 path is nil4172 has 10 elements4173 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4174 ref is branch name4175 has 3 elements4176 should include "d14d6c0abdd253381df51a723d58691b2ee1ab08"4177 should not include "eb49186cfa5c4338011f5f590fac11bd66c5c631"4178 ref is commit id4179 has 3 elements4180 should include "2f63565e7aac07bcdadb654e253078b727143ec4"4181 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4182 ref is tag4183 has 3 elements4184 should include "874797c3a73b60d2187ed6e2fcabd289ff75171e"4185 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4186 .where without gitaly4187 it should behave like .where4188 path is empty string4189 has 10 elements4190 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4191 path is nil4192 has 10 elements4193 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4194 ref is branch name4195 has 3 elements4196 should include "d14d6c0abdd253381df51a723d58691b2ee1ab08"4197 should not include "eb49186cfa5c4338011f5f590fac11bd66c5c631"4198 ref is commit id4199 has 3 elements4200 should include "2f63565e7aac07bcdadb654e253078b727143ec4"4201 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4202 ref is tag4203 has 3 elements4204 should include "874797c3a73b60d2187ed6e2fcabd289ff75171e"4205 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4206 .between4207 has 1 element4208 should include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4209 should not include "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"4210 .shas_with_signatures with gitaly on4211 it should behave like .shas_with_signatures4212 has 2 signed shas4213 has 0 signed shas4214 has 1 signed sha4215 .shas_with_signatures with gitaly disabled4216 it should behave like .shas_with_signatures4217 has 2 signed shas4218 has 0 signed shas4219 has 1 signed sha4220 .find_all4221 when Gitaly find_all_commits feature is enabled4222 behaves like finding all commits4223 should return a return a collection of commits4224 max_count4225 has 34 elements4226 includes the expected commits4227 ref + max_count + skip4228 has 24 elements4229 includes the expected commits4230 when Gitaly find_all_commits feature is disabled4231 behaves like finding all commits4232 should return a return a collection of commits4233 max_count4234 has 34 elements4235 includes the expected commits4236 ref + max_count + skip4237 has 24 elements4238 includes the expected commits4239 while applying a sort order based on the `order` option4240 allows ordering topologically (no parents shown before their children)4241 allows ordering by date4242 applies no sorting by default4243 .extract_signature_lazily4244 with Gitaly extract_commit_signature_in_batch feature enabled4245 behaves like extracting commit signature4246 when the commit is signed4247 returns signature and signed text4248 when the commit has no signature4249 returns nil4250 when the commit cannot be found4251 returns nil4252 when the commit ID is invalid4253 raises ArgumentError4254 behaves like loading signatures in batch once4255 fetches signatures in batch once4256 with Gitaly extract_commit_signature_in_batch feature disabled4257 behaves like extracting commit signature4258 when the commit is signed4259 returns signature and signed text4260 when the commit has no signature4261 returns nil4262 when the commit cannot be found4263 returns nil4264 when the commit ID is invalid4265 raises ArgumentError4266 behaves like loading signatures in batch once4267 fetches signatures in batch once4268 .extract_signature4269 with gitaly4270 behaves like extracting commit signature4271 when the commit is signed4272 returns signature and signed text4273 when the commit has no signature4274 returns nil4275 when the commit cannot be found4276 returns nil4277 when the commit ID is invalid4278 raises ArgumentError4279 without gitaly4280 behaves like extracting commit signature4281 when the commit is signed4282 returns signature and signed text4283 when the commit has no signature4284 returns nil4285 when the commit cannot be found4286 returns nil4287 when the commit ID is invalid4288 raises ArgumentError4289 #init_from_rugged4290 #id4291 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4292 #init_from_hash4293 #id4294 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4295 #message4296 should eq "tree css fixes"4297 #stats with gitaly on4298 it should behave like #stats4299 #additions4300 should eq 114301 #deletions4302 should eq 64303 #total4304 should eq 174305 #stats with gitaly disabled4306 it should behave like #stats4307 #additions4308 should eq 114309 #deletions4310 should eq 64311 #total4312 should eq 174313 #to_diff4314 should not include "From 570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4315 should include "diff --git a/files/ruby/popen.rb b/files/ruby/popen.rb"4316 #has_zero_stats?4317 should eq false4318 #to_patch4319 should include "From 570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4320 should include "diff --git a/files/ruby/popen.rb b/files/ruby/popen.rb"4321 #to_hash4322 should be a kind of Hash4323 #keys4324 should match [:author_email, :author_name, :authored_date, :committed_date, :committer_email, :committer_name, :id, :message, :parent_ids]4325 #diffs4326 should be a kind of Gitlab::Git::DiffCollection4327 should eq 24328 should be a kind of Gitlab::Git::Diff4329 #ref_names4330 has 1 element4331 should include "master"4332 should not include "feature"4333DeployToken4334 should have many project_deploy_tokens4335 should have many projects through project_deploy_tokens4336 #ensure_token4337 should ensure a token4338 #ensure_at_least_one_scope4339 with at least one scope4340 should be valid4341 with no scopes4342 should be invalid4343 #scopes4344 with all the scopes4345 should return scopes assigned to DeployToken4346 with only one scope4347 should return scopes assigned to DeployToken4348 #revoke!4349 should update revoke attribute4350 #active?4351 when it has been revoked4352 should return false4353 when it hasn't been revoked4354 should return true4355 #username4356 returns a harcoded username4357 #has_access_to?4358 when deploy token is active and related to project4359 should be truthy4360 when deploy token is active but not related to project4361 should be falsy4362 when deploy token is revoked and related to project4363 should be falsy4364 when deploy token is revoked and not related to the project4365 should be falsy4366 #expires_at4367 when using Forever.date4368 should return nil4369 when using a personalized date4370 should return the personalized date4371 #expires_at=4372 when passing nil4373 should assign Forever.date4374 when passign a value4375 should respect the value4376 .gitlab_deploy_token4377 with a gitlab deploy token associated4378 should return the gitlab deploy token4379 with no gitlab deploy token associated4380 should return nil4381Search::GroupService4382 basic search4383 finding projects by name4384 in parent group4385 should contain exactly #<Project id:1120 group553/group552/inner_project_name_1>, #<Project id:1121 group553/group552/inner_project_name_2>, and #<Project id:1122 group553/outer_project_name>4386 in subgroup4387 should contain exactly #<Project id:1126 group555/group554/inner_project_name_1> and #<Project id:1127 group555/group554/inner_project_name_2>4388User edits issue4389 previews content4390Admin::HookLogs4391 show list of hook logs4392 show hook log details4393 retry hook log4394Gitlab::LfsToken4395 #token4396 when the actor is a user4397 returns the correct username4398 returns the correct token type4399 behaves like an LFS token generator4400 returns a randomly generated token4401 returns the correct token based on the key4402 when the actor is a deploy key4403 returns the correct username4404 returns the correct token type4405 behaves like an LFS token generator4406 returns a randomly generated token4407 returns the correct token based on the key4408Emails::DestroyService4409 #execute4410 removes an email4411 registers a security event4412RemoveEmptyForkNetworks4413== 20171114104051 RemoveEmptyForkNetworks: migrating ==========================4414-- Deleting empty ForkNetworks in batches4415-- Deleted 1 rows in batch4416== 20171114104051 RemoveEmptyForkNetworks: migrated (0.0060s) =================4417 deletes only the fork network without members4418RenameDuplicatedVariableKey4419== 20170622135451 RenameDuplicatedVariableKey: migrating ======================4420-- quote_column_name("key")4421 -> 0.0001s4422-- quote_column_name("key")4423 -> 0.0001s4424-- quote("_")4425 -> 0.0001s4426-- quote_column_name("key")4427 -> 0.0001s4428-- quote_column_name("key")4429 -> 0.0001s4430-- quote_column_name("key")4431 -> 0.0000s4432-- execute("UPDATE ci_variables\nSET `key` = CONCAT(`key`, '_', id)\nWHERE id IN (\n SELECT *\n FROM ( -- MySQL requires an extra layer\n SELECT dup.id\n FROM ci_variables dup\n INNER JOIN (SELECT max(id) AS id, `key`, project_id\n FROM ci_variables tmp\n GROUP BY `key`, project_id) var\n USING (`key`, project_id) where dup.id <> var.id\n ) dummy\n)\n")4433 -> 0.0016s4434== 20170622135451 RenameDuplicatedVariableKey: migrated (0.0035s) =============4435 correctly remove duplicated records with smaller id4436Boards::Lists::ListService4437 #execute4438 when board parent is a project4439 behaves like lists list service4440 when the board has a backlog list4441 does not create a backlog list4442 returns board's lists4443 when the board does not have a backlog list4444 creates a backlog list4445 returns board's lists4446 when board parent is a group4447 behaves like lists list service4448 when the board has a backlog list4449 does not create a backlog list4450 returns board's lists4451 when the board does not have a backlog list4452 creates a backlog list4453 returns board's lists4454BuildArtifactEntity4455 #as_json4456 contains job name4457 exposes information about expiration of artifacts4458 contains paths to the artifacts4459MovePersonalSnippetsFiles4460 #up4461 moves the files4462 updating the markdown4463 includes the new path when the file exists4464 does not update the markdown when the file is missing4465 updates the note markdown4466 #down4467 moves the files4468 updating the markdown4469 includes the new path when the file exists4470 keeps the markdown as is when the file is missing4471 updates the note markdown4472 #update_markdown4473 escapes sql in the snippet description4474BlobViewer::GitlabCiYml4475 #validation_message4476 calls prepare! on the viewer4477 when the configuration is valid4478 returns nil4479 when the configuration is invalid4480 returns the error message4481Gitlab::Kubernetes::Helm::Api4482 #initialize4483 creates a namespace object4484 #install4485 ensures the namespace exists before creating the POD4486 with a ConfigMap4487 creates a ConfigMap on kubeclient4488 #installation_status4489 fetches POD phase from kubernetes cluster4490 #installation_log4491 fetches POD phase from kubernetes cluster4492 #delete_installation_pod!4493 deletes the POD from kubernetes cluster4494Ci::BuildTraceSectionName4495 should belong to project4496 should have many trace_sections4497 should validate that :project cannot be empty/falsy4498 should validate that :name cannot be empty/falsy4499 should validate that :name is case-sensitively unique within the scope of :project_id4500BuildActionEntity4501 #as_json4502 contains original job name4503 contains path to the action play4504 contains whether it is playable4505admin/dashboard/index.html.haml4506 shows version of GitLab Workhorse4507 includes revision of GitLab4508MembersFinder#execute4509 returns members for project and parent groups (PENDING: around hook at ./spec/spec_helper.rb:209 did not execute the example)4510Gitlab::CycleAnalytics::TestEventFetcher4511 behaves like default query config4512 has the stage attribute4513 has the projection attributes4514 has a default order4515WebHook4516 associations4517 should have many web_hook_logs dependent => destroy4518 validations4519 should validate that :url cannot be empty/falsy4520 url4521 should allow :url to be ‹"http://example.com"›4522 should allow :url to be ‹"https://example.com"›4523 should allow :url to be ‹" https://example.com "›4524 should allow :url to be ‹"http://test.com/api"›4525 should allow :url to be ‹"http://test.com/api?key=abc"›4526 should allow :url to be ‹"http://test.com/api?key=abc&type=def"›4527 should not allow :url to be ‹"example.com"›4528 should not allow :url to be ‹"ftp://example.com"›4529 should not allow :url to be ‹"herp-and-derp"›4530 strips :url before saving it4531 token4532 should allow :token to be ‹"foobar"›4533 should not allow :token to be ‹"foo\nbar"› or ‹"foo\r\nbar"›4534 execute4535 #execute4536 #async_execute4537projects/pipeline_schedules/_pipeline_schedule4538 taking ownership of schedule4539 when non-owner is signed in4540 non-owner can take ownership of pipeline4541 when owner is signed in4542 owner cannot take ownership of pipeline4543Gitlab::GitalyClient::HealthCheckService4544 #check4545 successfully sends a health check request4546 receives an unsuccessful health check request4547 gracefully handles gRPC error4548Projects > Wiki > User views wiki in project page4549 when repository is disabled for project4550 when wiki homepage contains a link4551 displays the correct URL for the link4552ProjectCustomAttribute4553 assocations4554 should belong to project4555 validations4556 should validate that :project cannot be empty/falsy4557 should validate that :key cannot be empty/falsy4558 should validate that :value cannot be empty/falsy4559 should validate that :key is case-sensitively unique within the scope of :project_id4560Gitlab::SlashCommands::Presenters::IssueSearch4561 formats the message correct4562 shows a list of results4563DeleteMergedBranchesWorker4564 #perform4565 calls DeleteMergedBranchesService4566 returns false when project was not found4567Gitlab::CycleAnalytics::StagingEventFetcher4568 behaves like default query config4569 has the stage attribute4570 has the projection attributes4571 has a default order4572ChatNames::AuthorizeUserService4573 #execute4574 when all parameters are valid4575 requests a new token4576 when there are missing parameters4577 does not request a new token4578Gitlab::Ci::Trace::HttpIO4579 #close4580 should be nil4581 #binmode4582 should be nil4583 #binmode?4584 should be truthy4585 #path4586 should be nil4587 #url4588 should eq "http://trace.com/trace"4589 #seek4590 when moves pos to end of the file4591 should eq 1926594592 when moves pos to middle of the file4593 should eq 963294594 when moves pos around4595 matches the result4596 #eof?4597 when current pos is at end of the file4598 should be truthy4599 when current pos is not at end of the file4600 should be falsey4601 #each_line4602 yields lines4603 when buckets on GCS4604 when BUFFER_SIZE is larger than file size4605 calls get_chunk only once4606 #read4607 when there are no network issue4608 when read whole size4609 when BUFFER_SIZE is smaller than file size4610 reads a trace4611 when BUFFER_SIZE is larger than file size4612 reads a trace4613 when read only first 100 bytes4614 when BUFFER_SIZE is smaller than file size4615 reads a trace4616 when BUFFER_SIZE is larger than file size4617 reads a trace4618 when tries to read oversize4619 when BUFFER_SIZE is smaller than file size4620 reads a trace4621 when BUFFER_SIZE is larger than file size4622 reads a trace4623 when tries to read 0 bytes4624 when BUFFER_SIZE is smaller than file size4625 reads a trace4626 when BUFFER_SIZE is larger than file size4627 reads a trace4628 when there is anetwork issue4629 reads a trace4630 #readline4631 when there is anetwork issue4632 reads a trace4633 when BUFFER_SIZE is smaller than file size4634 behaves like all line matching4635 reads a line4636 when BUFFER_SIZE is larger than file size4637 behaves like all line matching4638 reads a line4639 when pos is at middle of the file4640 reads from pos4641 #write4642 should raise NotImplementedError4643 #truncate4644 should raise NotImplementedError4645 #flush4646 should raise NotImplementedError4647 #present?4648 should be truthy4649Users::ActivityService4650 #execute4651 when last activity is nil4652 sets the last activity timestamp for the user4653 updates the same user4654 updates the timestamp of an existing user4655 other user4656 updates other user4657 when in GitLab read-only instance4658 does not update last_activity_at4659Gitlab::BackgroundMigration::MovePersonalSnippetFiles4660 #perform4661 moves the file on the disk4662 updates the markdown of the snippet4663 updates the markdown of notes4664Gitlab::SidekiqConfig4665 .workers4666 includes all workers4667 includes EE workers4668 .worker_queues4669 includes all queues4670 includes EE queues4671 .expand_queues4672 expands queue namespaces to concrete queue names4673 lets concrete queue names pass through4674 lets unknown queues pass through4675 .expand_queues4676 expands queue namespaces to concrete queue names4677 lets concrete queue names pass through4678 lets unknown queues pass through4679projects/tags/index4680 defaults sort dropdown toggle to last updated4681AfterBranchDeleteService4682 #execute4683 stops environments attached to branch4684Gitlab::Middleware::ReadOnly4685 normal requests to a read-only Gitlab instance4686 expects PATCH requests to be disallowed4687 expects PUT requests to be disallowed4688 expects POST requests to be disallowed4689 expects a internal POST request to be allowed after a disallowed request4690 expects DELETE requests to be disallowed4691 expects POST of new file that looks like an LFS batch url to be disallowed4692 returns last_vistited_url for disallowed request4693 whitelisted requests4694 expects a POST internal request to be allowed4695 expects a POST LFS request to batch URL to be allowed4696 expects a POST request to git-upload-pack URL to be allowed4697 expects requests to sidekiq admin to be allowed4698 json requests to a read-only GitLab instance4699 expects PATCH requests to be disallowed4700 expects PUT requests to be disallowed4701 expects POST requests to be disallowed4702 expects DELETE requests to be disallowed4703Release4704 should be valid4705 associations4706 should belong to project4707 validation4708 should validate that :project cannot be empty/falsy4709 should validate that :description cannot be empty/falsy4710Gitlab::DependencyLinker::GodepsJsonLinker4711 .support?4712 supports Godeps.json4713 does not support other files4714 #link4715 links the package name4716 links GitHub repos4717 links GitLab projects4718 links Golang packages4719RepositoryCheck::ClearWorker4720 clears repository check columns4721Gitlab::DependencyLinker::PackageJsonLinker4722 .support?4723 supports package.json4724 does not support other files4725 #link4726 links the module name4727 links the homepage4728 links the repository URL4729 links the license4730 links dependencies4731 links GitHub repos4732 links Git repos4733 does not link scripts with the same key as a package4734Users::BuildService4735 #execute4736 with an admin user4737 returns a valid user4738 with non admin user4739 raises AccessDeniedError exception4740 with nil user4741 returns a valid user4742 when "send_user_confirmation_email" application setting is true4743 does not confirm the user4744 when "send_user_confirmation_email" application setting is false4745 confirms the user4746Banzai::Filter::ReferenceFilter4747 #each_node4748 iterates over the nodes in a document4749 returns an Enumerator when no block is given4750 skips links with a "gfm" class4751 skips text nodes in pre elements4752 #nodes4753 returns an Array of the HTML nodes4754Gitlab::EncodingHelper4755 #encode!4756 nil4757 empty string4758 invalid utf-8 encoded string4759 frozen non-ascii string4760 leaves ascii only string as is4761 leaves valid utf8 string as is4762 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.4763 string with detected encoding that is not supported in Ruby4764 leaves binary string as is4765 with corrupted diff4766 does not corrupt data but remove invalid characters4767 #encode_utf84768 nil4769 empty string4770 invalid utf-8 encoded string4771 encodes valid utf8 encoded string to utf84772 encodes valid ASCII-8BIT encoded string to utf84773 encodes valid ISO-8859-1 encoded string to utf84774 Equifax branch name4775WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/encoding_helper_spec.rb:126:in `block (3 levels) in <top (required)>'.4776 returns empty string on conversion errors4777 with strings that can be forcefully encoded into utf84778 doesn't use CharlockHolmes if the encoding can be forced into utf_84779 #clean4780 leaves ascii only string as is4781 leaves valid utf8 string as is4782 removes invalid bytes from ASCII-8bit encoded multibyte string.4783 handles UTF-16BE encoded strings4784 encode_binary4785 encodes nil to ""4786 encodes "" to ""4787 encodes " " to " "4788 encodes "a1" to "a1"4789 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"4790RavenJS4791 should not load raven if sentry is disabled4792 should load raven if sentry is enabled4793RuboCop::Cop::SidekiqOptionsQueue4794 registers an offense when `sidekiq_options` is used with the `queue` option4795 does not register an offense when `sidekiq_options` is used with another option4796Gitlab::Ci::Config::Entry::Environment4797 when configuration is a string4798 #string?4799 is string configuration4800 #hash?4801 is not hash configuration4802 #valid?4803 is valid4804 #value4805 returns valid hash4806 #name4807 returns environment name4808 #url4809 returns environment url4810 when configuration is a hash4811 #string?4812 is not string configuration4813 #hash?4814 is hash configuration4815 #valid?4816 is valid4817 #value4818 returns valid hash4819 #name4820 returns environment name4821 #url4822 returns environment url4823 when valid action is used4824 is valid4825 when invalid action is used4826 #valid?4827 is not valid4828 #errors4829 contains error about invalid action4830 when on_stop is used4831 is valid4832 when invalid on_stop is used4833 #valid?4834 is not valid4835 #errors4836 contains error about invalid action4837 when variables are used for environment4838 #valid?4839 is valid4840 when configuration is invalid4841 when configuration is an array4842 #valid?4843 is not valid4844 #errors4845 contains error about invalid type4846 when environment name is not present4847 #valid?4848 is not valid4849 #errors?4850 contains error about missing environment name4851Gitlab::LegacyGithubImport::Client4852 convert OAuth2 client options to symbols4853 does not crash (e.g. Settingslogic::MissingSetting) when verify_ssl config is not present4854 does not raise error when rate limit is disabled4855 when config is missing4856 is still possible to get an Octokit client4857 is not be possible to get an OAuth2 client4858 allow SSL verification to be configurable on API4859 uses supplied value4860 #api_endpoint4861 when provider does not specity an API endpoint4862 uses GitHub root API endpoint4863 when provider specify a custom API endpoint4864 uses the custom API endpoint4865 when given a host4866 builds a endpoint with the given host and the default API version4867 when given an API version4868 does not use the API version without a host4869 when given a host and version4870 builds a endpoint with the given options4871ActiveRecord::Schema4872 > schema version equals last migration timestamp4873 > schema version should equal the latest migration timestamp stored in schema_migrations table4874Gitlab::Ci::Config::Entry::Service4875 when configuration is a string4876 #valid?4877 is valid4878 #value4879 returns valid hash4880 #image4881 returns service's image name4882 #alias4883 returns service's alias4884 #command4885 returns service's command4886 when configuration is a hash4887 #valid?4888 is valid4889 #value4890 returns valid hash4891 #image4892 returns service's image name4893 #alias4894 returns service's alias4895 #command4896 returns service's command4897 #entrypoint4898 returns service's entrypoint4899 when entry value is not correct4900 #errors4901 saves errors4902 #valid?4903 is not valid4904 when unexpected key is specified4905 #errors4906 saves errors4907 #valid?4908 is not valid4909Gitlab::Badge::Coverage::Template4910 #key_text4911 is always says coverage4912 #value_text4913 when coverage is known4914 returns coverage percentage4915 when coverage is known to many digits4916 returns rounded coverage percentage4917 when coverage is unknown4918 returns string that says coverage is unknown4919 #key_width4920 has a fixed key width4921 #value_width4922 when coverage is known4923 is narrower when coverage is known4924 when coverage is unknown4925 is wider when coverage is unknown to fit text4926 #key_color4927 always has the same color4928 #value_color4929 when coverage is good4930 is green4931 when coverage is acceptable4932 is green-orange4933 when coverage is medium4934 is orange-yellow4935 when coverage is low4936 is red4937 when coverage is unknown4938 is grey4939 #width4940 when coverage is known4941 returns the key width plus value width4942 when coverage is unknown4943 returns key width plus wider value width4944Gitlab::UrlBlocker4945 #blocked_url?4946 allows imports from configured web host and port4947 allows imports from configured SSH host and port4948 returns true for bad localhost hostname4949 returns true for bad port4950 returns true for alternative version of 127.0.0.1 (0177.1)4951 returns true for alternative version of 127.0.0.1 (0x7f.1)4952 returns true for alternative version of 127.0.0.1 (2130706433)4953 returns true for alternative version of 127.0.0.1 (127.000.000.001)4954 returns true for a non-alphanumeric hostname4955 returns true for a non-alphanumeric username4956 returns true for invalid URL4957 returns false for legitimate URL4958 when allow_local_network is4959 true (default)4960 does not block urls from private networks4961 false4962 blocks urls from private networks4963Banzai::Filter::InlineDiffFilter4964 adds inline diff span tags for deletions when using square brackets4965 adds inline diff span tags for deletions when using curley braces4966 does not add inline diff span tags when a closing tag is not provided4967 adds inline span tags for additions when using square brackets4968 adds inline span tags for additions when using curley braces4969 does not add inline diff span tags when a closing addition tag is not provided4970 does not add inline diff span tags when the tags do not match4971 prevents user-land html being injected4972 preserves content inside pre tags4973 preserves content inside code tags4974 preserves content inside tt tags4975RuboCop::Cop::Migration::HashIndex4976 in migration4977 registers an offense when creating a hash index4978 registers an offense when creating a concurrent hash index4979 registers an offense when creating a hash index using t.index4980 outside of migration4981 registers no offense4982Gitlab::Template::GitlabCiYmlTemplate4983 .all4984 strips the gitlab-ci suffix4985 combines the globals and rest4986 .find4987 returns nil if the file does not exist4988 returns the GitlabCiYml object of a valid file4989 .by_category4990 returns sorted results4991 #content4992 loads the full file4993 #<=>4994 sorts lexicographically4995RuboCop::Cop::Migration::RemoveConcurrentIndex4996 in migration4997 registers an offense when remove_concurrent_index is used inside a change method4998 registers no offense when remove_concurrent_index is used inside an up method4999 outside of migration5000 registers no offense5001Gitlab::HookData::IssueBuilder5002 #build5003 includes safe attribute5004 includes additional attrs5005trusted_proxies5006 with default config5007 preserves private IPs5008 filters out localhost5009 filters out bad values5010 with private IP ranges added5011 filters out private and local IPs5012 with proxy IP added5013 filters out proxy IP5014 handles invalid ip addresses5015EmailsOnPushService5016 Validations5017 when service is active5018 should validate that :recipients cannot be empty/falsy5019 when service is inactive5020 should not validate that :recipients cannot be empty/falsy5021Gitlab::CrossProjectAccess5022 #add_check5023 keeps track of the properties to check5024 builds the check correctly5025 merges the checks of a parent class into existing checks of a subclass5026 merges the existing checks of a superclass into the checks of a subclass5027 #find_check5028 returns a check when it was defined for a superclass5029 caches the result for a subclass5030 returns the checks for the closest class if there are more checks available5031RspecFlaky::FlakyExamplesCollection5032 #initialize5033 accepts no argument5034 accepts a hash5035 does not accept anything else5036 #to_h5037 calls #to_h on the values5038 #-5039 returns only examples that are not present in the given collection5040 fails if the given collection does not respond to `#key?`5041Gitlab::GoogleCodeImport::Client5042 #valid?5043 when the data is valid5044 returns true5045 when the data is invalid5046 returns true5047 #repos5048 returns only Git repositories5049 #repo5050 returns the referenced repository5051API::Helpers::RelatedResourcesHelpers5052 #expose_url5053 respects the protocol if it is HTTP5054 respects the protocol if it is HTTPS5055 accepts port to be nil5056 includes port if provided5057Banzai::Filter::ImageLinkFilter5058 wraps the image with a link to the image src5059 does not wrap a duplicate link5060 works with external images5061 works with inline images5062Gitlab::Ci::Status::Skipped5063 #text5064 should eq "skipped"5065 #label5066 should eq "skipped"5067 #icon5068 should eq "status_skipped"5069 #favicon5070 should eq "favicon_status_skipped"5071 #group5072 should eq "skipped"5073Gitlab::SidekiqVersioning::Manager5074 #initialize50752018-05-02T14:53:56.317Z 83 TID-3zjlc INFO: Listening on queues ["cronjob", "cronjob:admin_email", "cronjob:clear_shared_runners_minutes", "cronjob:expire_build_artifacts", "cronjob:geo_file_download_dispatch", "cronjob:geo_metrics_update", "cronjob:geo_migrated_local_files_clean_up", "cronjob:geo_prune_event_log", "cronjob:geo_repository_sync", "cronjob:geo_repository_verification_primary_batch", "cronjob:geo_repository_verification_secondary_scheduler", "cronjob:geo_repository_verification_secondary_shard", "cronjob:geo_scheduler_per_shard_scheduler", "cronjob:geo_scheduler_primary_per_shard_scheduler", "cronjob:geo_scheduler_secondary_per_shard_scheduler", "cronjob:geo_sidekiq_cron_config", "cronjob:gitlab_usage_ping", "cronjob:historical_data", "cronjob:import_export_project_cleanup", "cronjob:issue_due_scheduler", "cronjob:ldap_all_groups_sync", "cronjob:ldap_sync", "cronjob:pages_domain_verification_cron", "cronjob:pipeline_schedule", "cronjob:prune_old_events", "cronjob:remove_expired_group_links", "cronjob:remove_expired_members", "cronjob:remove_old_web_hook_logs", "cronjob:remove_unreferenced_lfs_objects", "cronjob:repository_archive_cache", "cronjob:repository_check_batch", "cronjob:requests_profiles", "cronjob:schedule_update_user_activity", "cronjob:stuck_ci_jobs", "cronjob:stuck_import_jobs", "cronjob:stuck_merge_jobs", "cronjob:trending_projects", "cronjob:update_all_mirrors", "post_receive", "repository_fork", "unknown"]5076 listens on all expanded queues5077Gitlab::Auth::Saml::AuthHash5078 #groups5079 returns array of groups5080 raw info hash attributes empty5081 returns an empty array5082MicrosoftTeams::Notifier5083 #ping5084 expects to receive successfull answer5085StorageHealthHelper5086 #failing_storage_health_message5087 escapes storage names5088Banzai::Filter::BlockquoteFenceFilter5089 converts blockquote fences to blockquote lines5090Gitlab::GithubImport::Representation::ExposeAttribute5091 defines a getter method that returns an attribute value5092Knapsack report was generated. Preview:5093{5094 "spec/requests/api/v3/merge_requests_spec.rb": 101.29690313339233,5095 "spec/requests/api/groups_spec.rb": 65.23650479316711,5096 "spec/features/task_lists_spec.rb": 51.62078380584717,5097 "spec/features/merge_request/user_creates_image_diff_notes_spec.rb": 39.53449034690857,5098 "spec/features/projects/wiki/user_views_wiki_page_spec.rb": 31.869951009750366,5099 "spec/features/triggers_spec.rb": 29.375704765319824,5100 "spec/lib/gitlab/background_migration/populate_merge_request_metrics_with_events_data_spec.rb": 26.154449462890625,5101 "spec/lib/gitlab/middleware/go_spec.rb": 23.43528723716736,5102 "spec/finders/notes_finder_spec.rb": 11.82381796836853,5103 "spec/services/search_service_spec.rb": 14.60184645652771,5104 "spec/features/merge_requests/user_lists_merge_requests_spec.rb": 13.457735300064087,5105 "spec/features/snippets/user_creates_snippet_spec.rb": 11.726459980010986,5106 "spec/features/projects/members/groups_with_access_list_spec.rb": 10.459396362304688,5107 "spec/requests/api/search_spec.rb": 12.410714626312256,5108 "spec/features/projects/snippets/create_snippet_spec.rb": 11.073914766311646,5109 "spec/uploaders/job_artifact_uploader_spec.rb": 11.29987907409668,5110 "spec/features/reportable_note/issue_spec.rb": 6.791482925415039,5111 "spec/features/projects/files/user_find_file_spec.rb": 11.182730913162231,5112 "spec/features/dashboard/milestone_filter_spec.rb": 6.604511737823486,5113 "spec/controllers/admin/services_controller_spec.rb": 7.286522388458252,5114 "spec/requests/api/project_export_spec.rb": 7.4951958656311035,5115 "spec/lib/banzai/filter/user_reference_filter_spec.rb": 6.4716103076934814,5116 "spec/services/projects/update_pages_service_spec.rb": 7.191717863082886,5117 "spec/models/clusters/cluster_spec.rb": 3.9503345489501953,5118 "spec/lib/gitlab/badge/coverage/report_spec.rb": 3.8886971473693848,5119 "spec/features/projects/merge_requests/user_views_open_merge_requests_spec.rb": 4.961451530456543,5120 "spec/models/project_services/microsoft_teams_service_spec.rb": 5.052508115768433,5121 "spec/models/clusters/platforms/kubernetes_spec.rb": 5.0083582401275635,5122 "spec/controllers/projects/boards_controller_spec.rb": 4.225786924362183,5123 "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 3.982055902481079,5124 "spec/features/projects/user_creates_project_spec.rb": 3.99346923828125,5125 "spec/features/issues/markdown_toolbar_spec.rb": 4.140199661254883,5126 "spec/services/issues/duplicate_service_spec.rb": 3.445845603942871,5127 "spec/routing/group_routing_spec.rb": 3.836697816848755,5128 "spec/requests/api/snippets_spec.rb": 3.8728201389312744,5129 "spec/lib/gitlab/data_builder/build_spec.rb": 3.045907735824585,5130 "spec/models/concerns/deployment_platform_spec.rb": 2.6063649654388428,5131 "spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb": 2.1697304248809814,5132 "spec/models/clusters/applications/ingress_spec.rb": 2.3640687465667725,5133 "spec/features/profiles/password_spec.rb": 3.5261385440826416,5134 "spec/finders/joined_groups_finder_spec.rb": 2.21327805519104,5135 "spec/requests/openid_connect_spec.rb": 2.861159086227417,5136 "spec/workers/pipeline_schedule_worker_spec.rb": 2.184347152709961,5137 "spec/features/projects/services/disable_triggers_spec.rb": 1.9702579975128174,5138 "spec/features/projects/show/download_buttons_spec.rb": 2.142345905303955,5139 "spec/lib/gitlab/gitaly_client/repository_service_spec.rb": 1.8507275581359863,5140 "spec/finders/milestones_finder_spec.rb": 2.2925257682800293,5141 "spec/views/ci/status/_badge.html.haml_spec.rb": 2.5448994636535645,5142 "spec/features/users/logout_spec.rb": 1.8350627422332764,5143 "spec/migrations/remove_empty_extern_uid_auth0_identities_spec.rb": 2.079122304916382,5144 "spec/features/projects/services/user_activates_jetbrains_teamcity_ci_spec.rb": 2.193269729614258,5145 "spec/views/projects/diffs/_stats.html.haml_spec.rb": 1.6357653141021729,5146 "spec/features/merge_request/user_sees_wip_help_message_spec.rb": 1.9541130065917969,5147 "spec/workers/expire_pipeline_cache_worker_spec.rb": 1.2955455780029297,5148 "spec/lib/gitlab/git/commit_spec.rb": 2.109609842300415,5149 "spec/models/deploy_token_spec.rb": 1.1929543018341064,5150 "spec/services/search/group_service_spec.rb": 1.4846796989440918,5151 "spec/features/projects/issues/user_edits_issue_spec.rb": 1.405797004699707,5152 "spec/features/admin/admin_hook_logs_spec.rb": 2.0922749042510986,5153 "spec/lib/gitlab/lfs_token_spec.rb": 1.0632386207580566,5154 "spec/services/emails/destroy_service_spec.rb": 0.4342179298400879,5155 "spec/migrations/remove_empty_fork_networks_spec.rb": 1.3499038219451904,5156 "spec/migrations/rename_duplicated_variable_key_spec.rb": 1.465372085571289,5157 "spec/services/boards/lists/list_service_spec.rb": 1.4079110622406006,5158 "spec/serializers/build_artifact_entity_spec.rb": 0.7608716487884521,5159 "spec/migrations/move_personal_snippets_files_spec.rb": 1.5397133827209473,5160 "spec/models/blob_viewer/gitlab_ci_yml_spec.rb": 0.634401798248291,5161 "spec/lib/gitlab/kubernetes/helm/api_spec.rb": 0.9186432361602783,5162 "spec/models/ci/build_trace_section_name_spec.rb": 0.8180820941925049,5163 "spec/serializers/build_action_entity_spec.rb": 0.6256303787231445,5164 "spec/views/admin/dashboard/index.html.haml_spec.rb": 0.5387647151947021,5165 "spec/lib/gitlab/cycle_analytics/test_event_fetcher_spec.rb": 0.38636302947998047,5166 "spec/models/hooks/web_hook_spec.rb": 0.49155378341674805,5167 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 0.5665168762207031,5168 "spec/lib/gitlab/gitaly_client/health_check_service_spec.rb": 0.46227002143859863,5169 "spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb": 0.5698702335357666,5170 "spec/models/project_custom_attribute_spec.rb": 0.6132814884185791,5171 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 0.441256046295166,5172 "spec/workers/delete_merged_branches_worker_spec.rb": 0.4378647804260254,5173 "spec/lib/gitlab/cycle_analytics/staging_event_fetcher_spec.rb": 0.45459866523742676,5174 "spec/services/chat_names/authorize_user_service_spec.rb": 0.334444522857666,5175 "spec/lib/gitlab/ci/trace/http_io_spec.rb": 0.3580930233001709,5176 "spec/services/users/activity_service_spec.rb": 0.23986124992370605,5177 "spec/lib/gitlab/background_migration/move_personal_snippet_files_spec.rb": 0.3790304660797119,5178 "spec/lib/gitlab/sidekiq_config_spec.rb": 0.3415961265563965,5179 "spec/views/projects/tags/index.html.haml_spec.rb": 0.2846815586090088,5180 "spec/services/after_branch_delete_service_spec.rb": 0.24777722358703613,5181 "spec/lib/gitlab/middleware/read_only_spec.rb": 0.5884408950805664,5182 "spec/models/release_spec.rb": 0.1907200813293457,5183 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.05576944351196289,5184 "spec/workers/repository_check/clear_worker_spec.rb": 0.1457521915435791,5185 "spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb": 0.17191076278686523,5186 "spec/services/users/build_service_spec.rb": 0.1305379867553711,5187 "spec/lib/banzai/filter/reference_filter_spec.rb": 0.09679269790649414,5188 "spec/lib/gitlab/encoding_helper_spec.rb": 0.10098648071289062,5189 "spec/features/raven_js_spec.rb": 0.20251917839050293,5190 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.06706690788269043,5191 "spec/lib/gitlab/ci/config/entry/environment_spec.rb": 0.09324002265930176,5192 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 0.07938313484191895,5193 "spec/migrations/active_record/schema_spec.rb": 0.055913686752319336,5194 "spec/lib/gitlab/ci/config/entry/service_spec.rb": 0.056471824645996094,5195 "spec/lib/gitlab/badge/coverage/template_spec.rb": 0.0563197135925293,5196 "spec/lib/gitlab/url_blocker_spec.rb": 0.05810904502868652,5197 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.0379796028137207,5198 "spec/rubocop/cop/migration/hash_index_spec.rb": 0.03165173530578613,5199 "spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb": 0.02772998809814453,5200 "spec/rubocop/cop/migration/remove_concurrent_index_spec.rb": 0.0238494873046875,5201 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 0.031154155731201172,5202 "spec/initializers/trusted_proxies_spec.rb": 0.01938915252685547,5203 "spec/models/project_services/emails_on_push_service_spec.rb": 0.02736043930053711,5204 "spec/lib/gitlab/cross_project_access_spec.rb": 0.022680997848510742,5205 "spec/lib/rspec_flaky/flaky_examples_collection_spec.rb": 0.015114545822143555,5206 "spec/lib/gitlab/google_code_import/client_spec.rb": 0.14581537246704102,5207 "spec/lib/api/helpers/related_resources_helpers_spec.rb": 0.013907670974731445,5208 "spec/lib/banzai/filter/image_link_filter_spec.rb": 0.012466669082641602,5209 "spec/lib/gitlab/ci/status/skipped_spec.rb": 0.013838768005371094,5210 "spec/lib/gitlab/sidekiq_versioning/manager_spec.rb": 0.00400996208190918,5211 "spec/lib/gitlab/auth/saml/auth_hash_spec.rb": 0.01043701171875,5212 "spec/lib/microsoft_teams/notifier_spec.rb": 0.00567317008972168,5213 "spec/helpers/storage_health_helper_spec.rb": 0.005584001541137695,5214 "spec/lib/banzai/filter/blockquote_fence_filter_spec.rb": 0.003942728042602539,5215 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.00456047058105468755216}5217Knapsack global time execution for tests: 10m 40s5218Pending: (Failures listed here are expected and do not affect your suite's status)5219 1) API::Groups GET /groups/:id/subgroups when unauthenticated returns only public subgroups5220 # around hook at ./spec/spec_helper.rb:209 did not execute the example5221 # ./spec/requests/api/groups_spec.rb:5715222 2) API::Groups GET /groups/:id/subgroups when unauthenticated returns 404 for a private group5223 # around hook at ./spec/spec_helper.rb:209 did not execute the example5224 # ./spec/requests/api/groups_spec.rb:5825225 3) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a public group returns no subgroups for the public group5226 # around hook at ./spec/spec_helper.rb:209 did not execute the example5227 # ./spec/requests/api/groups_spec.rb:5915228 4) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a public group when using all_available in request returns public subgroups5229 # around hook at ./spec/spec_helper.rb:209 did not execute the example5230 # ./spec/requests/api/groups_spec.rb:6005231 5) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a private group returns 404 for the private group5232 # around hook at ./spec/spec_helper.rb:209 did not execute the example5233 # ./spec/requests/api/groups_spec.rb:6135234 6) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of public group returns private subgroups5235 # around hook at ./spec/spec_helper.rb:209 did not execute the example5236 # ./spec/requests/api/groups_spec.rb:6255237 7) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of public group when using statistics in request does not include statistics5238 # around hook at ./spec/spec_helper.rb:209 did not execute the example5239 # ./spec/requests/api/groups_spec.rb:6395240 8) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of private group returns subgroups5241 # around hook at ./spec/spec_helper.rb:209 did not execute the example5242 # ./spec/requests/api/groups_spec.rb:6545243 9) API::Groups GET /groups/:id/subgroups when authenticated as admin returns private subgroups of a public group5244 # around hook at ./spec/spec_helper.rb:209 did not execute the example5245 # ./spec/requests/api/groups_spec.rb:6675246 10) API::Groups GET /groups/:id/subgroups when authenticated as admin returns subgroups of a private group5247 # around hook at ./spec/spec_helper.rb:209 did not execute the example5248 # ./spec/requests/api/groups_spec.rb:6755249 11) API::Groups GET /groups/:id/subgroups when authenticated as admin does not include statistics by default5250 # around hook at ./spec/spec_helper.rb:209 did not execute the example5251 # ./spec/requests/api/groups_spec.rb:6835252 12) API::Groups GET /groups/:id/subgroups when authenticated as admin includes statistics if requested5253 # around hook at ./spec/spec_helper.rb:209 did not execute the example5254 # ./spec/requests/api/groups_spec.rb:6915255 13) API::Groups POST /groups when authenticated as user without group permissions as owner can create subgroups5256 # around hook at ./spec/spec_helper.rb:209 did not execute the example5257 # ./spec/requests/api/groups_spec.rb:7145258 14) API::Groups POST /groups when authenticated as user without group permissions as master cannot create subgroups5259 # around hook at ./spec/spec_helper.rb:209 did not execute the example5260 # ./spec/requests/api/groups_spec.rb:7265261 15) API::Groups POST /groups when authenticated as user with group permissions creates a nested group5262 # around hook at ./spec/spec_helper.rb:209 did not execute the example5263 # ./spec/requests/api/groups_spec.rb:7485264 16) JobArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 5265 # No pattern provided, skipping.5266 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65267 17) JobArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 5268 # No pattern provided, skipping.5269 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65270 18) JobArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 5271 # No pattern provided, skipping.5272 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65273 19) JobArtifactUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 5274 # No pattern provided, skipping.5275 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65276 20) JobArtifactUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 5277 # No pattern provided, skipping.5278 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65279 21) JobArtifactUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 5280 # No pattern provided, skipping.5281 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65282 22) JobArtifactUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 5283 # No pattern provided, skipping.5284 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65285 23) JobArtifactUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 5286 # No pattern provided, skipping.5287 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:65288 24) User creates a project in a subgroup they do not own creates a new project5289 # around hook at ./spec/spec_helper.rb:209 did not execute the example5290 # ./spec/features/projects/user_creates_project_spec.rb:375291 25) Groups routing legacy redirection edit behaves like redirecting a legacy path does not redirect /groups/complex.group-namegit/edit to /groups/complex.group-namegit/-/edit when the resource exists5292 # still rejected because of the wildcard reserved word5293 Failure/Error: create(:group, parent: group, path: 'edit')5294 ActiveRecord::RecordInvalid:5295 Validation failed: Path edit is a reserved name5296 Shared Example Group: "redirecting a legacy path" called from ./spec/routing/group_routing_spec.rb:965297 # ./spec/routing/group_routing_spec.rb:99:in `block (5 levels) in <top (required)>'5298 # ./spec/support/shared_examples/legacy_path_redirect_shared_examples.rb:9:in `block (2 levels) in <top (required)>'5299 26) MembersFinder#execute returns members for project and parent groups5300 # around hook at ./spec/spec_helper.rb:209 did not execute the example5301 # ./spec/finders/members_finder_spec.rb:125302Finished in 12 minutes 25 seconds (files took 26.4 seconds to load)53031615 examples, 0 failures, 26 pending5305$ date5306Wed May 2 14:54:15 UTC 20185309coverage/: found 5 matching files 5310knapsack/: found 6 matching files 5311rspec_flaky/: found 4 matching files 5312WARNING: tmp/capybara/: no matching files 5313Uploading artifacts to coordinator... ok id=66066918 responseStatus=201 Created token=kKrHYq6b5314Job succeeded