rspec-pg-ee 0 2
Failed Started
by
@vsizov

Valery Sizov
1Running with gitlab-runner 10.7.0 (7c273476)2 on docker-auto-scale-com 9538b0ab3Using 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 postgres:9.2 ...5Pulling docker image postgres:9.2 ...6Using docker image sha256:18cdbca56093c841d28e629eb8acd4224afe0aa4c57c839351fc181888b8a470 for postgres:9.2 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:98bd7cfc43b8ef0ff130465e3d5427c0771002c2f35a6a9b62cb2d04602bed0a for redis:alpine ...10Starting service docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...11Pulling docker image docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...12Using docker image sha256:ca27036dd5e7fb5aaaa0401342f8160aaff408422cd3b19af85be83478256745 for docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...13Waiting for services to be up and running...14Pulling 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 ...15Using 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 ... 16 Running on runner-9538b0ab-project-278964-concurrent-0 via runner-9538b0ab-gsrm-1525271893-9b9aa440...
00:02
17 Cloning repository for 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching with git depth set to 20...
00:21
18Cloning into '/builds/gitlab-org/gitlab-ee'...19Checking out 73af10c1 as 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching...20Skipping Git submodules setup22Downloading cache.zip from http://runners-cache-4-internal.gitlab.com:444/runner/project/278964/ruby-2.3.7-with-yarn 23Successfully extracted cache25Downloading artifacts from coordinator... ok id=66066850 responseStatus=200 OK token=gcRYWULP26Downloading artifacts for compile-assets (66066853)...27Downloading artifacts from coordinator... ok id=66066853 responseStatus=200 OK token=ZUdCpByW28Downloading artifacts for setup-test-env (66066854)...29Downloading artifacts from coordinator... ok id=66066854 responseStatus=200 OK token=S7SxDrPM30WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 32Bundler version 1.16.133$ date34Wed May 2 15:05:54 UTC 201835$ source scripts/utils.sh36$ date37Wed May 2 15:05:54 UTC 201838$ source scripts/prepare_build.sh39The Gemfile's dependencies are satisfied40Successfully installed knapsack-1.16.0411 gem installed42DROP DATABASE43NOTICE: database "gitlabhq_test" does not exist, skipping44CREATE DATABASE45CREATE ROLE46GRANT47-- enable_extension("plpgsql")48 -> 0.0105s49-- enable_extension("pg_trgm")50 -> 0.0107s51-- create_table("abuse_reports", {:force=>:cascade})52 -> 0.0097s53-- create_table("appearances", {:force=>:cascade})54 -> 0.0066s55-- create_table("application_settings", {:force=>:cascade})56 -> 0.0376s57-- create_table("approvals", {:force=>:cascade})58 -> 0.0046s59-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})60 -> 0.0043s61-- create_table("approver_groups", {:force=>:cascade})62 -> 0.0062s63-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})64 -> 0.0040s65-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})66 -> 0.0038s67-- create_table("approvers", {:force=>:cascade})68 -> 0.0058s69-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})70 -> 0.0040s71-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})72 -> 0.0037s73-- create_table("audit_events", {:force=>:cascade})74 -> 0.0096s75-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})76 -> 0.0043s77-- create_table("award_emoji", {:force=>:cascade})78 -> 0.0063s79-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})80 -> 0.0042s81-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})82 -> 0.0040s83-- create_table("badges", {:force=>:cascade})84 -> 0.0067s85-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})86 -> 0.0041s87-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})88 -> 0.0043s89-- create_table("board_assignees", {:force=>:cascade})90 -> 0.0041s91-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})92 -> 0.0038s93-- create_table("board_labels", {:force=>:cascade})94 -> 0.0044s95-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})96 -> 0.0040s97-- create_table("boards", {:force=>:cascade})98 -> 0.0070s99-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})100 -> 0.0044s101-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})102 -> 0.0039s103-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})104 -> 0.0039s105-- create_table("broadcast_messages", {:force=>:cascade})106 -> 0.0064s107-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})108 -> 0.0039s109-- create_table("chat_names", {:force=>:cascade})110 -> 0.0060s111-- 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})112 -> 0.0037s113-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})114 -> 0.0040s115-- create_table("chat_teams", {:force=>:cascade})116 -> 0.0060s117-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})118 -> 0.0038s119-- create_table("ci_build_trace_section_names", {:force=>:cascade})120 -> 0.0059s121-- 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})122 -> 0.0039s123-- create_table("ci_build_trace_sections", {:force=>:cascade})124 -> 0.0045s125-- 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})126 -> 0.0039s127-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})128 -> 0.0040s129-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})130 -> 0.0038s131-- create_table("ci_builds", {:force=>:cascade})132 -> 0.0077s133-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})134 -> 0.0041s135-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})136 -> 0.0039s137-- 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})138 -> 0.0040s139-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})140 -> 0.0039s141-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})142 -> 0.0041s143-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})144 -> 0.0040s145-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})146 -> 0.0039s147-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})148 -> 0.0041s149-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})150 -> 0.0041s151-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})152 -> 0.0040s153-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})154 -> 0.0039s155-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})156 -> 0.0041s157-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})158 -> 0.0041s159-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})160 -> 0.0038s161-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})162 -> 0.0040s163-- create_table("ci_builds_metadata", {:force=>:cascade})164 -> 0.0051s165-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})166 -> 0.0040s167-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})168 -> 0.0040s169-- create_table("ci_group_variables", {:force=>:cascade})170 -> 0.0071s171-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})172 -> 0.0044s173-- create_table("ci_job_artifacts", {:force=>:cascade})174 -> 0.0070s175-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})176 -> 0.0047s177-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})178 -> 0.0039s179-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})180 -> 0.0039s181-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})182 -> 0.0038s183-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})184 -> 0.0071s185-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})186 -> 0.0041s187-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})188 -> 0.0065s189-- 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})190 -> 0.0051s191-- create_table("ci_pipeline_schedules", {:force=>:cascade})192 -> 0.0071s193-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})194 -> 0.0042s195-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})196 -> 0.0039s197-- create_table("ci_pipeline_variables", {:force=>:cascade})198 -> 0.0064s199-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})200 -> 0.0044s201-- create_table("ci_pipelines", {:force=>:cascade})202 -> 0.0071s203-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})204 -> 0.0040s205-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})206 -> 0.0039s207-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})208 -> 0.0043s209-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})210 -> 0.0043s211-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})212 -> 0.0041s213-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})214 -> 0.0038s215-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})216 -> 0.0039s217-- create_table("ci_runner_projects", {:force=>:cascade})218 -> 0.0043s219-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})220 -> 0.0039s221-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})222 -> 0.0039s223-- create_table("ci_runners", {:force=>:cascade})224 -> 0.0081s225-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})226 -> 0.0038s227-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})228 -> 0.0040s229-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})230 -> 0.0040s231-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})232 -> 0.0038s233-- create_table("ci_sources_pipelines", {:force=>:cascade})234 -> 0.0044s235-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})236 -> 0.0047s237-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})238 -> 0.0044s239-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})240 -> 0.0042s241-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})242 -> 0.0039s243-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})244 -> 0.0037s245-- create_table("ci_stages", {:force=>:cascade})246 -> 0.0063s247-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})248 -> 0.0039s249-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})250 -> 0.0037s251-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})252 -> 0.0038s253-- create_table("ci_trigger_requests", {:force=>:cascade})254 -> 0.0062s255-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})256 -> 0.0037s257-- create_table("ci_triggers", {:force=>:cascade})258 -> 0.0060s259-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})260 -> 0.0038s261-- create_table("ci_variables", {:force=>:cascade})262 -> 0.0069s263-- 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})264 -> 0.0039s265-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})266 -> 0.0063s267-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})268 -> 0.0039s269-- create_table("cluster_projects", {:force=>:cascade})270 -> 0.0044s271-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})272 -> 0.0039s273-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})274 -> 0.0037s275-- create_table("cluster_providers_gcp", {:force=>:cascade})276 -> 0.0063s277-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})278 -> 0.0038s279-- create_table("clusters", {:force=>:cascade})280 -> 0.0069s281-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})282 -> 0.0038s283-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})284 -> 0.0039s285-- create_table("clusters_applications_helm", {:force=>:cascade})286 -> 0.0062s287-- create_table("clusters_applications_ingress", {:force=>:cascade})288 -> 0.0070s289-- create_table("clusters_applications_prometheus", {:force=>:cascade})290 -> 0.0062s291-- create_table("clusters_applications_runners", {:force=>:cascade})292 -> 0.0068s293-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})294 -> 0.0097s295-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})296 -> 0.0040s297-- create_table("container_repositories", {:force=>:cascade})298 -> 0.0063s299-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})300 -> 0.0045s301-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})302 -> 0.0041s303-- create_table("conversational_development_index_metrics", {:force=>:cascade})304 -> 0.0082s305-- create_table("deploy_keys_projects", {:force=>:cascade})306 -> 0.0045s307-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})308 -> 0.0037s309-- create_table("deploy_tokens", {:force=>:cascade})310 -> 0.0071s311-- 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})312 -> 0.0039s313-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})314 -> 0.0036s315-- create_table("deployments", {:force=>:cascade})316 -> 0.0061s317-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})318 -> 0.0038s319-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})320 -> 0.0036s321-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})322 -> 0.0036s323-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})324 -> 0.0039s325-- create_table("emails", {:force=>:cascade})326 -> 0.0071s327-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})328 -> 0.0041s329-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})330 -> 0.0040s331-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})332 -> 0.0046s333-- create_table("environments", {:force=>:cascade})334 -> 0.0061s335-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})336 -> 0.0038s337-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})338 -> 0.0041s339-- create_table("epic_issues", {:force=>:cascade})340 -> 0.0045s341-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})342 -> 0.0038s343-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})344 -> 0.0036s345-- create_table("epic_metrics", {:force=>:cascade})346 -> 0.0040s347-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})348 -> 0.0037s349-- create_table("epics", {:force=>:cascade})350 -> 0.0064s351-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})352 -> 0.0039s353-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})354 -> 0.0040s355-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})356 -> 0.0036s357-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})358 -> 0.0044s359-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})360 -> 0.0036s361-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})362 -> 0.0038s363-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})364 -> 0.0039s365-- create_table("events", {:force=>:cascade})366 -> 0.0070s367-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})368 -> 0.0044s369-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})370 -> 0.0037s371-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})372 -> 0.0036s373-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})374 -> 0.0036s375-- create_table("feature_gates", {:force=>:cascade})376 -> 0.0058s377-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})378 -> 0.0037s379-- create_table("features", {:force=>:cascade})380 -> 0.0059s381-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})382 -> 0.0037s383-- create_table("fork_network_members", {:force=>:cascade})384 -> 0.0037s385-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})386 -> 0.0035s387-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})388 -> 0.0038s389-- create_table("fork_networks", {:force=>:cascade})390 -> 0.0056s391-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})392 -> 0.0035s393-- create_table("forked_project_links", {:force=>:cascade})394 -> 0.0041s395-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})396 -> 0.0037s397-- create_table("gcp_clusters", {:force=>:cascade})398 -> 0.0068s399-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})400 -> 0.0037s401-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})402 -> 0.0040s403-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})404 -> 0.0041s405-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})406 -> 0.0035s407-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})408 -> 0.0034s409-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})410 -> 0.0037s411-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})412 -> 0.0036s413-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})414 -> 0.0056s415-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})416 -> 0.0039s417-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})418 -> 0.0060s419-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})420 -> 0.0038s421-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})422 -> 0.0062s423-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})424 -> 0.0037s425-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})426 -> 0.0058s427-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})428 -> 0.0038s429-- create_table("geo_node_namespace_links", {:force=>:cascade})430 -> 0.0040s431-- 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})432 -> 0.0046s433-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})434 -> 0.0035s435-- create_table("geo_node_statuses", {:force=>:cascade})436 -> 0.0067s437-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})438 -> 0.0038s439-- create_table("geo_nodes", {:force=>:cascade})440 -> 0.0071s441-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})442 -> 0.0038s443-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})444 -> 0.0039s445-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})446 -> 0.0037s447-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})448 -> 0.0041s449-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})450 -> 0.0038s451-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})452 -> 0.0061s453-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})454 -> 0.0040s455-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})456 -> 0.0063s457-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})458 -> 0.0039s459-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})460 -> 0.0065s461-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})462 -> 0.0039s463-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})464 -> 0.0068s465-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})466 -> 0.0039s467-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})468 -> 0.0037s469-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})470 -> 0.0062s471-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})472 -> 0.0048s473-- create_table("gpg_key_subkeys", {:force=>:cascade})474 -> 0.0065s475-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})476 -> 0.0039s477-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})478 -> 0.0035s479-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})480 -> 0.0038s481-- create_table("gpg_keys", {:force=>:cascade})482 -> 0.0061s483-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})484 -> 0.0050s485-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})486 -> 0.0045s487-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})488 -> 0.0038s489-- create_table("gpg_signatures", {:force=>:cascade})490 -> 0.0068s491-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})492 -> 0.0038s493-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})494 -> 0.0039s495-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})496 -> 0.0037s497-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})498 -> 0.0037s499-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})500 -> 0.0037s501-- create_table("group_custom_attributes", {:force=>:cascade})502 -> 0.0060s503-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})504 -> 0.0038s505-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})506 -> 0.0037s507-- create_table("historical_data", {:force=>:cascade})508 -> 0.0041s509-- create_table("identities", {:force=>:cascade})510 -> 0.0058s511-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})512 -> 0.0037s513-- create_table("index_statuses", {:force=>:cascade})514 -> 0.0076s515-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})516 -> 0.0039s517-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})518 -> 0.0041s519-- 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})520 -> 0.0039s521-- 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})522 -> 0.0039s523-- create_table("issue_assignees", {:id=>false, :force=>:cascade})524 -> 0.0017s525-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})526 -> 0.0041s527-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})528 -> 0.0036s529-- create_table("issue_links", {:force=>:cascade})530 -> 0.0043s531-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})532 -> 0.0037s533-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})534 -> 0.0038s535-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})536 -> 0.0038s537-- create_table("issue_metrics", {:force=>:cascade})538 -> 0.0042s539-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})540 -> 0.0122s541-- create_table("issues", {:force=>:cascade})542 -> 0.0087s543-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})544 -> 0.0041s545-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})546 -> 0.0040s547-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})548 -> 0.0025s549-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})550 -> 0.0038s551-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})552 -> 0.0040s553-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})554 -> 0.0040s555-- 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})556 -> 0.0039s557-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})558 -> 0.0038s559-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})560 -> 0.0050s561-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})562 -> 0.0043s563-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})564 -> 0.0040s565-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})566 -> 0.0024s567-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})568 -> 0.0041s569-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})570 -> 0.0039s571-- create_table("keys", {:force=>:cascade})572 -> 0.0067s573-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})574 -> 0.0042s575-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})576 -> 0.0038s577-- create_table("label_links", {:force=>:cascade})578 -> 0.0063s579-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})580 -> 0.0038s581-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})582 -> 0.0039s583-- create_table("label_priorities", {:force=>:cascade})584 -> 0.0042s585-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})586 -> 0.0039s587-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})588 -> 0.0038s589-- create_table("labels", {:force=>:cascade})590 -> 0.0066s591-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})592 -> 0.0045s593-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})594 -> 0.0041s595-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})596 -> 0.0039s597-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})598 -> 0.0049s599-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})600 -> 0.0039s601-- create_table("ldap_group_links", {:force=>:cascade})602 -> 0.0062s603-- create_table("lfs_file_locks", {:force=>:cascade})604 -> 0.0061s605-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})606 -> 0.0039s607-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})608 -> 0.0039s609-- create_table("lfs_objects", {:force=>:cascade})610 -> 0.0062s611-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})612 -> 0.0039s613-- create_table("lfs_objects_projects", {:force=>:cascade})614 -> 0.0050s615-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})616 -> 0.0038s617-- create_table("licenses", {:force=>:cascade})618 -> 0.0070s619-- create_table("lists", {:force=>:cascade})620 -> 0.0047s621-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})622 -> 0.0042s623-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})624 -> 0.0038s625-- create_table("members", {:force=>:cascade})626 -> 0.0074s627-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})628 -> 0.0038s629-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})630 -> 0.0036s631-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})632 -> 0.0038s633-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})634 -> 0.0040s635-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})636 -> 0.0036s637-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})638 -> 0.0036s639-- 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})640 -> 0.0037s641-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})642 -> 0.0037s643-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})644 -> 0.0039s645-- 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})646 -> 0.0037s647-- create_table("merge_request_diffs", {:force=>:cascade})648 -> 0.0062s649-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})650 -> 0.0040s651-- create_table("merge_request_metrics", {:force=>:cascade})652 -> 0.0042s653-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})654 -> 0.0038s655-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})656 -> 0.0034s657-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})658 -> 0.0037s659-- create_table("merge_requests", {:force=>:cascade})660 -> 0.0080s661-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})662 -> 0.0039s663-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})664 -> 0.0038s665-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})666 -> 0.0037s667-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})668 -> 0.0023s669-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})670 -> 0.0037s671-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})672 -> 0.0039s673-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})674 -> 0.0039s675-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})676 -> 0.0037s677-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})678 -> 0.0039s679-- 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})680 -> 0.0037s681-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})682 -> 0.0037s683-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})684 -> 0.0035s685-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})686 -> 0.0036s687-- 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})688 -> 0.0037s689-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})690 -> 0.0036s691-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})692 -> 0.0023s693-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})694 -> 0.0038s695-- create_table("merge_requests_closing_issues", {:force=>:cascade})696 -> 0.0040s697-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})698 -> 0.0036s699-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})700 -> 0.0038s701-- create_table("milestones", {:force=>:cascade})702 -> 0.0059s703-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})704 -> 0.0023s705-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})706 -> 0.0035s707-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})708 -> 0.0036s709-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})710 -> 0.0065s711-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})712 -> 0.0047s713-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})714 -> 0.0023s715-- create_table("namespace_statistics", {:force=>:cascade})716 -> 0.0042s717-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})718 -> 0.0035s719-- create_table("namespaces", {:force=>:cascade})720 -> 0.0090s721-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})722 -> 0.0037s723-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})724 -> 0.0035s725-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})726 -> 0.0036s727-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})728 -> 0.0035s729-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})730 -> 0.0022s731-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})732 -> 0.0034s733-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})734 -> 0.0039s735-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})736 -> 0.0033s737-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})738 -> 0.0022s739-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})740 -> 0.0045s741-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})742 -> 0.0036s743-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})744 -> 0.0034s745-- create_table("notes", {:force=>:cascade})746 -> 0.0061s747-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})748 -> 0.0035s749-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})750 -> 0.0033s751-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})752 -> 0.0047s753-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})754 -> 0.0034s755-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})756 -> 0.0036s757-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})758 -> 0.0021s759-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})760 -> 0.0035s761-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})762 -> 0.0033s763-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})764 -> 0.0036s765-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})766 -> 0.0035s767-- create_table("notification_settings", {:force=>:cascade})768 -> 0.0065s769-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})770 -> 0.0038s771-- 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})772 -> 0.0036s773-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})774 -> 0.0035s775-- create_table("oauth_access_grants", {:force=>:cascade})776 -> 0.0056s777-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})778 -> 0.0037s779-- create_table("oauth_access_tokens", {:force=>:cascade})780 -> 0.0056s781-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})782 -> 0.0036s783-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})784 -> 0.0035s785-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})786 -> 0.0035s787-- create_table("oauth_applications", {:force=>:cascade})788 -> 0.0062s789-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})790 -> 0.0036s791-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})792 -> 0.0035s793-- create_table("oauth_openid_requests", {:force=>:cascade})794 -> 0.0060s795-- create_table("pages_domains", {:force=>:cascade})796 -> 0.0059s797-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})798 -> 0.0036s799-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})800 -> 0.0035s801-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})802 -> 0.0034s803-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})804 -> 0.0036s805-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})806 -> 0.0035s807-- create_table("path_locks", {:force=>:cascade})808 -> 0.0083s809-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})810 -> 0.0041s811-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})812 -> 0.0037s813-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})814 -> 0.0036s815-- create_table("personal_access_tokens", {:force=>:cascade})816 -> 0.0071s817-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})818 -> 0.0043s819-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})820 -> 0.0041s821-- create_table("plans", {:force=>:cascade})822 -> 0.0056s823-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})824 -> 0.0037s825-- create_table("project_authorizations", {:id=>false, :force=>:cascade})826 -> 0.0018s827-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})828 -> 0.0036s829-- 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})830 -> 0.0036s831-- create_table("project_auto_devops", {:force=>:cascade})832 -> 0.0059s833-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})834 -> 0.0036s835-- create_table("project_ci_cd_settings", {:force=>:cascade})836 -> 0.0044s837-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})838 -> 0.0036s839-- create_table("project_custom_attributes", {:force=>:cascade})840 -> 0.0057s841-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})842 -> 0.0036s843-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})844 -> 0.0035s845-- create_table("project_deploy_tokens", {:force=>:cascade})846 -> 0.0044s847-- 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})848 -> 0.0038s849-- create_table("project_features", {:force=>:cascade})850 -> 0.0046s851-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})852 -> 0.0035s853-- create_table("project_group_links", {:force=>:cascade})854 -> 0.0044s855-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})856 -> 0.0036s857-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})858 -> 0.0034s859-- create_table("project_import_data", {:force=>:cascade})860 -> 0.0057s861-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})862 -> 0.0037s863-- create_table("project_mirror_data", {:force=>:cascade})864 -> 0.0045s865-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})866 -> 0.0035s867-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})868 -> 0.0036s869-- create_table("project_repository_states", {:force=>:cascade})870 -> 0.0055s871-- 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})872 -> 0.0035s873-- 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})874 -> 0.0034s875-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})876 -> 0.0045s877-- 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})878 -> 0.0037s879-- create_table("project_statistics", {:force=>:cascade})880 -> 0.0060s881-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})882 -> 0.0035s883-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})884 -> 0.0035s885-- create_table("projects", {:force=>:cascade})886 -> 0.0139s887-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})888 -> 0.0038s889-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})890 -> 0.0037s891-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})892 -> 0.0034s893-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})894 -> 0.0023s895-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})896 -> 0.0037s897-- 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})898 -> 0.0036s899-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})900 -> 0.0034s901-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})902 -> 0.0035s903-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})904 -> 0.0036s905-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})906 -> 0.0037s907-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})908 -> 0.0022s909-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})910 -> 0.0033s911-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})912 -> 0.0034s913-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})914 -> 0.0023s915-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})916 -> 0.0037s917-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})918 -> 0.0036s919-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})920 -> 0.0038s921-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})922 -> 0.0035s923-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})924 -> 0.0037s925-- create_table("prometheus_metrics", {:force=>:cascade})926 -> 0.0058s927-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})928 -> 0.0037s929-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})930 -> 0.0036s931-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})932 -> 0.0042s933-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})934 -> 0.0073s935-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})936 -> 0.0039s937-- create_table("protected_branch_push_access_levels", {:force=>:cascade})938 -> 0.0047s939-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})940 -> 0.0039s941-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})942 -> 0.0040s943-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})944 -> 0.0045s945-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})946 -> 0.0036s947-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})948 -> 0.0038s949-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})950 -> 0.0038s951-- create_table("protected_branches", {:force=>:cascade})952 -> 0.0066s953-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})954 -> 0.0037s955-- create_table("protected_tag_create_access_levels", {:force=>:cascade})956 -> 0.0045s957-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})958 -> 0.0039s959-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})960 -> 0.0036s961-- create_table("protected_tags", {:force=>:cascade})962 -> 0.0062s963-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})964 -> 0.0038s965-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})966 -> 0.0038s967-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})968 -> 0.0037s969-- create_table("push_rules", {:force=>:cascade})970 -> 0.0080s971-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})972 -> 0.0039s973-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})974 -> 0.0038s975-- create_table("redirect_routes", {:force=>:cascade})976 -> 0.0062s977-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})978 -> 0.0040s979-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})980 -> 0.0038s981-- create_table("releases", {:force=>:cascade})982 -> 0.0061s983-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})984 -> 0.0046s985-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})986 -> 0.0039s987-- create_table("remote_mirrors", {:force=>:cascade})988 -> 0.0073s989-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})990 -> 0.0041s991-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})992 -> 0.0039s993-- create_table("routes", {:force=>:cascade})994 -> 0.0059s995-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})996 -> 0.0039s997-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})998 -> 0.0037s999-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1000 -> 0.0043s1001-- create_table("saml_providers", {:force=>:cascade})1002 -> 0.0058s1003-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1004 -> 0.0036s1005-- create_table("sent_notifications", {:force=>:cascade})1006 -> 0.0058s1007-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1008 -> 0.0052s1009-- create_table("services", {:force=>:cascade})1010 -> 0.0111s1011-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1012 -> 0.0040s1013-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1014 -> 0.0039s1015-- create_table("slack_integrations", {:force=>:cascade})1016 -> 0.0067s1017-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1018 -> 0.0048s1019-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1020 -> 0.0046s1021-- create_table("snippets", {:force=>:cascade})1022 -> 0.0068s1023-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1024 -> 0.0040s1025-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1026 -> 0.0023s1027-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1028 -> 0.0038s1029-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1030 -> 0.0023s1031-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1032 -> 0.0037s1033-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1034 -> 0.0040s1035-- create_table("spam_logs", {:force=>:cascade})1036 -> 0.0069s1037-- create_table("subscriptions", {:force=>:cascade})1038 -> 0.0060s1039-- 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})1040 -> 0.0038s1041-- create_table("system_note_metadata", {:force=>:cascade})1042 -> 0.0063s1043-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1044 -> 0.0039s1045-- create_table("taggings", {:force=>:cascade})1046 -> 0.0060s1047-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1048 -> 0.0039s1049-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1050 -> 0.0036s1051-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1052 -> 0.0042s1053-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1054 -> 0.0035s1055-- create_table("tags", {:force=>:cascade})1056 -> 0.0066s1057-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1058 -> 0.0043s1059-- create_table("timelogs", {:force=>:cascade})1060 -> 0.0041s1061-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1062 -> 0.0036s1063-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1064 -> 0.0041s1065-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1066 -> 0.0038s1067-- create_table("todos", {:force=>:cascade})1068 -> 0.0059s1069-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1070 -> 0.0038s1071-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1072 -> 0.0037s1073-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1074 -> 0.0037s1075-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1076 -> 0.0035s1077-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1078 -> 0.0037s1079-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1080 -> 0.0037s1081-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1082 -> 0.0040s1083-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1084 -> 0.0041s1085-- create_table("trending_projects", {:force=>:cascade})1086 -> 0.0042s1087-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1088 -> 0.0039s1089-- create_table("u2f_registrations", {:force=>:cascade})1090 -> 0.0064s1091-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1092 -> 0.0038s1093-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1094 -> 0.0036s1095-- create_table("uploads", {:force=>:cascade})1096 -> 0.0064s1097-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1098 -> 0.0040s1099-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1100 -> 0.0038s1101-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1102 -> 0.0039s1103-- create_table("user_agent_details", {:force=>:cascade})1104 -> 0.0065s1105-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1106 -> 0.0038s1107-- create_table("user_callouts", {:force=>:cascade})1108 -> 0.0043s1109-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1110 -> 0.0037s1111-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1112 -> 0.0036s1113-- create_table("user_custom_attributes", {:force=>:cascade})1114 -> 0.0060s1115-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1116 -> 0.0037s1117-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1118 -> 0.0037s1119-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1120 -> 0.0017s1121-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1122 -> 0.0037s1123-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1124 -> 0.0036s1125-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1126 -> 0.0071s1127-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1128 -> 0.0036s1129-- create_table("users", {:force=>:cascade})1130 -> 0.0152s1131-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1132 -> 0.0041s1133-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1134 -> 0.0043s1135-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1136 -> 0.0038s1137-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1138 -> 0.0044s1139-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1140 -> 0.0024s1141-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1142 -> 0.0076s1143-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1144 -> 0.0044s1145-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1146 -> 0.0043s1147-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1148 -> 0.0025s1149-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1150 -> 0.0042s1151-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})1152 -> 0.0053s1153-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1154 -> 0.0039s1155-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1156 -> 0.0040s1157-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1158 -> 0.0040s1159-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1160 -> 0.0026s1161-- create_table("users_star_projects", {:force=>:cascade})1162 -> 0.0041s1163-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1164 -> 0.0039s1165-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1166 -> 0.0040s1167-- create_table("web_hook_logs", {:force=>:cascade})1168 -> 0.0061s1169-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1170 -> 0.0037s1171-- create_table("web_hooks", {:force=>:cascade})1172 -> 0.0103s1173-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1174 -> 0.0040s1175-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1176 -> 0.0036s1177-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1178 -> 0.0028s1179-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1180 -> 0.0019s1181-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1182 -> 0.0016s1183-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1184 -> 0.0022s1185-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1186 -> 0.0016s1187-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1188 -> 0.0020s1189-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1190 -> 0.0021s1191-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1192 -> 0.0016s1193-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1194 -> 0.0016s1195-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1196 -> 0.0017s1197-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1198 -> 0.0016s1199-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1200 -> 0.0017s1201-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1202 -> 0.0016s1203-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1204 -> 0.0020s1205-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1206 -> 0.0017s1207-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1208 -> 0.0017s1209-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1210 -> 0.0017s1211-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1212 -> 0.0019s1213-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1214 -> 0.0015s1215-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1216 -> 0.0017s1217-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1218 -> 0.0015s1219-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1220 -> 0.0018s1221-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1222 -> 0.0017s1223-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1224 -> 0.0015s1225-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1226 -> 0.0016s1227-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1228 -> 0.0015s1229-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1230 -> 0.0018s1231-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1232 -> 0.0017s1233-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1234 -> 0.0016s1235-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1236 -> 0.0014s1237-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1238 -> 0.0016s1239-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1240 -> 0.0018s1241-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1242 -> 0.0018s1243-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1244 -> 0.0017s1245-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1246 -> 0.0013s1247-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1248 -> 0.0015s1249-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1250 -> 0.0017s1251-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1252 -> 0.0024s1253-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1254 -> 0.0015s1255-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1256 -> 0.0019s1257-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1258 -> 0.0014s1259-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1260 -> 0.0017s1261-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1262 -> 0.0018s1263-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1264 -> 0.0018s1265-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1266 -> 0.0016s1267-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1268 -> 0.0020s1269-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1270 -> 0.0018s1271-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1272 -> 0.0015s1273-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1274 -> 0.0018s1275-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1276 -> 0.0015s1277-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1278 -> 0.0015s1279-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1280 -> 0.0014s1281-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1282 -> 0.0017s1283-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1284 -> 0.0015s1285-- add_foreign_key("container_repositories", "projects")1286 -> 0.0019s1287-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1288 -> 0.0022s1289-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1290 -> 0.0020s1291-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1292 -> 0.0018s1293-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1294 -> 0.0017s1295-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1296 -> 0.0019s1297-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1298 -> 0.0022s1299-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1300 -> 0.0022s1301-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1302 -> 0.0018s1303-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1304 -> 0.0018s1305-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1306 -> 0.0017s1307-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1308 -> 0.0020s1309-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1310 -> 0.0017s1311-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1312 -> 0.0016s1313-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1314 -> 0.0018s1315-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1316 -> 0.0017s1317-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1318 -> 0.0017s1319-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1320 -> 0.0017s1321-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1322 -> 0.0018s1323-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1324 -> 0.0019s1325-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1326 -> 0.0018s1327-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1328 -> 0.0015s1329-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1330 -> 0.0014s1331-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1332 -> 0.0014s1333-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1334 -> 0.0016s1335-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1336 -> 0.0014s1337-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1338 -> 0.0014s1339-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1340 -> 0.0017s1341-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1342 -> 0.0014s1343-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1344 -> 0.0014s1345-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1346 -> 0.0019s1347-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1348 -> 0.0018s1349-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1350 -> 0.0017s1351-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1352 -> 0.0016s1353-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1354 -> 0.0016s1355-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1356 -> 0.0015s1357-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1358 -> 0.0017s1359-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1360 -> 0.0018s1361-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1362 -> 0.0018s1363-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1364 -> 0.0016s1365-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1366 -> 0.0017s1367-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1368 -> 0.0017s1369-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1370 -> 0.0014s1371-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1372 -> 0.0018s1373-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1374 -> 0.0015s1375-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1376 -> 0.0018s1377-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1378 -> 0.0016s1379-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1380 -> 0.0020s1381-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1382 -> 0.0016s1383-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1384 -> 0.0018s1385-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1386 -> 0.0016s1387-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1388 -> 0.0014s1389-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1390 -> 0.0016s1391-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1392 -> 0.0015s1393-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1394 -> 0.0016s1395-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1396 -> 0.0019s1397-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1398 -> 0.0017s1399-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1400 -> 0.0018s1401-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1402 -> 0.0017s1403-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1404 -> 0.0015s1405-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1406 -> 0.0017s1407-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1408 -> 0.0014s1409-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1410 -> 0.0018s1411-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1412 -> 0.0018s1413-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1414 -> 0.0017s1415-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1416 -> 0.0015s1417-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1418 -> 0.0014s1419-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1420 -> 0.0020s1421-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1422 -> 0.0015s1423-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1424 -> 0.0017s1425-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1426 -> 0.0016s1427-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1428 -> 0.0015s1429-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1430 -> 0.0016s1431-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1432 -> 0.0018s1433-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1434 -> 0.0018s1435-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1436 -> 0.0019s1437-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1438 -> 0.0018s1439-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1440 -> 0.0028s1441-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1442 -> 0.0025s1443-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1444 -> 0.0020s1445-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1446 -> 0.0020s1447-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1448 -> 0.0019s1449-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1450 -> 0.0018s1451-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1452 -> 0.0018s1453-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1454 -> 0.0018s1455-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1456 -> 0.0017s1457-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1458 -> 0.0016s1459-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1460 -> 0.0018s1461-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1462 -> 0.0018s1463-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1464 -> 0.0018s1465-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1466 -> 0.0021s1467-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1468 -> 0.0015s1469-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1470 -> 0.0019s1471-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1472 -> 0.0019s1473-- add_foreign_key("path_locks", "users")1474 -> 0.0020s1475-- add_foreign_key("personal_access_tokens", "users")1476 -> 0.0020s1477-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1478 -> 0.0018s1479-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1480 -> 0.0017s1481-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1482 -> 0.0018s1483-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1484 -> 0.0023s1485-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1486 -> 0.0018s1487-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1488 -> 0.0017s1489-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1490 -> 0.0018s1491-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1492 -> 0.0018s1493-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1494 -> 0.0018s1495-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1496 -> 0.0019s1497-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1498 -> 0.0017s1499-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1500 -> 0.0018s1501-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1502 -> 0.0020s1503-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1504 -> 0.0020s1505-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1506 -> 0.0017s1507-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1508 -> 0.0016s1509-- add_foreign_key("protected_branch_merge_access_levels", "users")1510 -> 0.0018s1511-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1512 -> 0.0023s1513-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1514 -> 0.0015s1515-- add_foreign_key("protected_branch_push_access_levels", "users")1516 -> 0.0018s1517-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1518 -> 0.0016s1519-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1520 -> 0.0015s1521-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1522 -> 0.0017s1523-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1524 -> 0.0017s1525-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1526 -> 0.0016s1527-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1528 -> 0.0014s1529-- add_foreign_key("protected_tag_create_access_levels", "users")1530 -> 0.0017s1531-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1532 -> 0.0018s1533-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1534 -> 0.0015s1535-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1536 -> 0.0019s1537-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1538 -> 0.0018s1539-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1540 -> 0.0020s1541-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1542 -> 0.0016s1543-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1544 -> 0.0019s1545-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1546 -> 0.0015s1547-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1548 -> 0.0020s1549-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1550 -> 0.0019s1551-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1552 -> 0.0016s1553-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1554 -> 0.0017s1555-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1556 -> 0.0016s1557-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1558 -> 0.0018s1559-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1560 -> 0.0020s1561-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1562 -> 0.0018s1563-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1564 -> 0.0019s1565-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1566 -> 0.0019s1567-- add_foreign_key("u2f_registrations", "users")1568 -> 0.0019s1569-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1570 -> 0.0019s1571-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1572 -> 0.0017s1573-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1574 -> 0.0019s1575-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1576 -> 0.0023s1577-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1578 -> 0.0017s1579-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1580 -> 0.0018s1581-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1582 -> 0.0016s1583-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1584 -> 0.0018s1585-- initialize_schema_migrations_table()1586 -> 0.0122s1587-- enable_extension("plpgsql")1588 -> 0.0128s1589-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1590 -> 0.0072s1591-- create_table("file_registry", {:force=>:cascade})1592 -> 0.0082s1593-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1594 -> 0.0047s1595-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1596 -> 0.0042s1597-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1598 -> 0.0042s1599-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1600 -> 0.0041s1601-- create_table("job_artifact_registry", {:force=>:cascade})1602 -> 0.0069s1603-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1604 -> 0.0041s1605-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1606 -> 0.0038s1607-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1608 -> 0.0048s1609-- create_table("project_registry", {:force=>:cascade})1610 -> 0.0089s1611-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1612 -> 0.0045s1613-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1614 -> 0.0047s1615-- 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})1616 -> 0.0041s1617-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1618 -> 0.0039s1619-- 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})1620 -> 0.0040s1621-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1622 -> 0.0038s1623-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1624 -> 0.0041s1625-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1626 -> 0.0038s1627-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1628 -> 0.0041s1629-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1630 -> 0.0039s1631-- 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})1632 -> 0.0040s1633-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1634 -> 0.0040s1635-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1636 -> 0.0040s1637-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1638 -> 0.0039s1639-- 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})1640 -> 0.0040s1641-- initialize_schema_migrations_table()1642 -> 0.0079s1643$ date1644Wed May 2 15:06:56 UTC 20181645$ export KNAPSACK_TEST_FILE_PATTERN="ee/spec/**{,/*/**}/*_spec.rb" KNAPSACK_GENERATE_REPORT=true CACHE_CLASSES=true1646$ JOB_NAME=( $CI_JOB_NAME )1647$ export CI_NODE_INDEX=${JOB_NAME[-2]} CI_NODE_TOTAL=${JOB_NAME[-1]}1648$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1649$ cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1650$ scripts/gitaly-test-spawn16511161652$ knapsack rspec "-Ispec --color --format documentation --tag ~geo"1653Report specs:1654ee/spec/models/burndown_spec.rb1655ee/spec/lib/gitlab/elastic/search_results_spec.rb1656ee/spec/controllers/projects/merge_requests_controller_spec.rb1657ee/spec/elastic_integration/global_search_spec.rb1658ee/spec/features/issues/filtered_search/dropdown_weight_spec.rb1659ee/spec/policies/group_policy_spec.rb1660ee/spec/features/issues/form_spec.rb1661ee/spec/features/search/elastic/project_search_spec.rb1662ee/spec/features/boards/sidebar_spec.rb1663ee/spec/features/merge_requests/squash_spec.rb1664ee/spec/features/merge_request/user_approves_spec.rb1665ee/spec/features/merge_request/user_sets_approvers_spec.rb1666ee/spec/models/merge_request_spec.rb1667ee/spec/features/projects/new_project_spec.rb1668ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb1669ee/spec/features/issues/service_desk_spec.rb1670ee/spec/controllers/boards/issues_controller_spec.rb1671ee/spec/features/projects/settings/merge_requests_settings_spec.rb1672ee/spec/services/geo/repository_sync_service_spec.rb1673ee/spec/controllers/groups/epic_issues_controller_spec.rb1674ee/spec/workers/elastic_indexer_worker_spec.rb1675ee/spec/features/discussion_comments/epic_spec.rb1676ee/spec/services/projects/update_remote_mirror_service_spec.rb1677ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb1678ee/spec/controllers/groups/analytics_controller_spec.rb1679ee/spec/services/projects/create_service_spec.rb1680ee/spec/features/admin/admin_geo_nodes_spec.rb1681ee/spec/mailers/notify_spec.rb1682ee/spec/features/projects/push_rules_spec.rb1683ee/spec/models/ci/build_spec.rb1684ee/spec/models/remote_mirror_spec.rb1685ee/spec/helpers/push_rules_helper_spec.rb1686ee/spec/features/projects/services/user_activates_github_spec.rb1687ee/spec/services/epic_issues/update_service_spec.rb1688ee/spec/features/search/elastic/global_search_spec.rb1689ee/spec/features/groups/group_roadmap_spec.rb1690ee/spec/requests/api/project_push_rule_spec.rb1691ee/spec/features/admin/admin_audit_logs_spec.rb1692ee/spec/requests/api/project_mirror_spec.rb1693ee/spec/features/epics/epic_labels_spec.rb1694ee/spec/controllers/projects/issues_controller_spec.rb1695ee/spec/finders/epics_finder_spec.rb1696ee/spec/features/groups/pipeline_quota_spec.rb1697ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb1698ee/spec/features/projects/milestones/milestone_spec.rb1699ee/spec/models/project_import_data_spec.rb1700ee/spec/lib/gitlab/chat/command_spec.rb1701ee/spec/requests/api/merge_request_approvals_spec.rb1702ee/spec/controllers/projects_controller_spec.rb1703ee/spec/controllers/projects/push_rules_controller_spec.rb1704ee/spec/services/issue_links/list_service_spec.rb1705ee/spec/services/ee/notification_service_spec.rb1706ee/spec/features/merge_request/user_merges_with_push_rules_spec.rb1707ee/spec/features/epics/new_epic_spec.rb1708ee/spec/features/projects/pipelines/pipeline_spec.rb1709ee/spec/models/concerns/ee/deployment_platform_spec.rb1710ee/spec/models/namespace_spec.rb1711ee/spec/features/epics/epics_list_spec.rb1712ee/spec/models/repository_spec.rb1713ee/spec/requests/projects/issue_links_controller_spec.rb1714ee/spec/requests/api/ldap_group_links_spec.rb1715ee/spec/services/ci/register_job_service_spec.rb1716ee/spec/models/project_services/github_service_spec.rb1717ee/spec/policies/merge_request_policy_spec.rb1718ee/spec/services/audit_event_service_spec.rb1719ee/spec/models/project_services/jenkins_service_spec.rb1720ee/spec/services/boards/issues/list_service_spec.rb1721ee/spec/services/merge_requests/merge_service_spec.rb1722ee/spec/requests/projects/path_locks_controller_spec.rb1723ee/spec/controllers/admin/application_settings_controller_spec.rb1724ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb1725ee/spec/models/geo_node_spec.rb1726ee/spec/controllers/projects/approvers_controller_spec.rb1727ee/spec/services/projects/update_service_spec.rb1728ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb1729ee/spec/policies/project_policy_spec.rb1730ee/spec/features/display_system_header_and_footer_bar_spec.rb1731ee/spec/services/geo/file_registry_removal_service_spec.rb1732ee/spec/controllers/projects/approver_groups_controller_spec.rb1733ee/spec/features/groups/group_settings_spec.rb1734ee/spec/services/projects/destroy_service_spec.rb1735ee/spec/features/projects/issues/user_creates_issue_spec.rb1736ee/spec/features/groups/analytics_spec.rb1737ee/spec/workers/repository_update_mirror_worker_spec.rb1738ee/spec/workers/admin_emails_worker_spec.rb1739ee/spec/models/concerns/elastic/project_wiki_spec.rb1740ee/spec/requests/api/geo_spec.rb1741ee/spec/requests/api/v3/ldap_group_links_spec.rb1742ee/spec/features/boards/group_boards/user_edits_issues_spec.rb1743ee/spec/controllers/groups/group_members_controller_spec.rb1744ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb1745ee/spec/models/concerns/elastic/issue_spec.rb1746ee/spec/routing/group_routing_spec.rb1747ee/spec/services/issue_links/destroy_service_spec.rb1748ee/spec/services/ee/issues/move_service_spec.rb1749ee/spec/models/project_services/kubernetes_service_spec.rb1750ee/spec/services/epic_issues/list_service_spec.rb1751ee/spec/services/search/group_service_spec.rb1752ee/spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb1753ee/spec/controllers/autocomplete_controller_spec.rb1754ee/spec/services/geo/hashed_storage_migration_service_spec.rb1755ee/spec/serializers/project_mirror_entity_spec.rb1756ee/spec/features/merge_request/user_sees_approval_widget_spec.rb1757ee/spec/lib/gitlab/ci/external/file/local_spec.rb1758ee/spec/models/geo/repository_updated_event_spec.rb1759Leftover specs:1760ee/spec/features/admin/admin_sends_notification_spec.rb1761ee/spec/finders/geo/attachment_registry_finder_spec.rb1762ee/spec/finders/geo/job_artifact_registry_finder_spec.rb1763ee/spec/finders/geo/project_registry_finder_spec.rb1764ee/spec/lib/gitlab/geo/cron_manager_spec.rb1765ee/spec/lib/gitlab/geo/file_uploader_spec.rb1766ee/spec/lib/gitlab/geo/job_artifact_downloader_spec.rb1767ee/spec/lib/gitlab/geo/job_artifact_uploader_spec.rb1768ee/spec/lib/gitlab/geo_spec.rb1769ee/spec/lib/system_check/geo/fdw_schema_up_to_date_check_spec.rb1770ee/spec/models/geo_node_status_spec.rb1771ee/spec/requests/api/geo_nodes_spec.rb1772ee/spec/services/geo/metrics_update_service_spec.rb1773ee/spec/services/geo/node_status_fetch_service_spec.rb1774ee/spec/support/protected_tags/access_control_spec.rb1775ee/spec/workers/geo/file_download_dispatch_worker_spec.rb1776ee/spec/workers/geo/metrics_update_worker_spec.rb1777ee/spec/workers/geo/prune_event_log_worker_spec.rb1778ee/spec/workers/geo/repository_sync_worker_spec.rb1779WARNING: Shared example group 'protected tags > access control > EE' has been previously defined at:1780 /builds/gitlab-org/gitlab-ee/ee/spec/support/protected_tags/access_control_spec.rb:11781...and you are now defining it at:1782 /builds/gitlab-org/gitlab-ee/ee/spec/support/protected_tags/access_control_spec.rb:11783The new definition will overwrite the original one.1784Knapsack report generator started!1785Run options: exclude {:geo=>true}1786==> Setting up GitLab Shell...1787 GitLab Shell setup in 0.463865241 seconds...1788==> Setting up Gitaly...1789 Gitaly setup in 0.00017903 seconds...1790Burndown1791 project milestone burndown1792 behaves like burndown for milestone1793 generates an array with date, issue count and weight1794 returns empty array if milestone start date is nil1795 returns empty array if milestone due date is nil1796 it counts until today if milestone due date > Date.today1797 sets attribute accurate to true1798 when all closed issues does not have closed events1799 considers closed_at as milestone start date1800 sets attribute empty to true1801 when one or more closed issues does not have a closed event1802 sets attribute accurate to false1803 group milestone burndown1804 when nested group milestone1805 behaves like burndown for milestone1806 generates an array with date, issue count and weight1807 returns empty array if milestone start date is nil1808 returns empty array if milestone due date is nil1809 it counts until today if milestone due date > Date.today1810 sets attribute accurate to true1811 when all closed issues does not have closed events1812 considers closed_at as milestone start date1813 sets attribute empty to true1814 when one or more closed issues does not have a closed event1815 sets attribute accurate to false1816 when non-nested group milestone1817 behaves like burndown for milestone1818 generates an array with date, issue count and weight1819 returns empty array if milestone start date is nil1820 returns empty array if milestone due date is nil1821 it counts until today if milestone due date > Date.today1822 sets attribute accurate to true1823 when all closed issues does not have closed events1824 considers closed_at as milestone start date1825 sets attribute empty to true1826 when one or more closed issues does not have a closed event1827 sets attribute accurate to false1828Gitlab::Elastic::SearchResults1829 parse_search_result1830 returns an unhighlighted blob when no highlight data is present1831 parses the blob with highlighting1832 issues1833 lists found issues1834 returns empty list when issues are not found1835 lists issue when search by a valid iid1836 returns empty list when search by invalid iid1837 confidential issues1838 search by term1839 does not list confidential issues for guests1840 does not list confidential issues for non project members1841 lists confidential issues for author1842 lists confidential issues for assignee1843 lists confidential issues for project members1844 lists all issues for admin1845 search by iid1846 does not list confidential issues for guests1847 does not list confidential issues for non project members1848 lists confidential issues for author1849 lists confidential issues for assignee1850 lists confidential issues for project members1851 lists all issues for admin1852 merge requests1853 lists found merge requests1854 returns empty list when merge requests are not found1855 lists merge request when search by a valid iid1856 returns empty list when search by invalid iid1857 project scoping1858 returns items for project1859 Blobs1860 finds blobs1861 finds blobs from public projects only1862 returns zero when blobs are not found1863 Searches CamelCased methods1864 find by first word1865 find by first two words1866 find by last two words1867 find by exact match1868 Searches special characters1869 finds files with dashes1870 finds files with dots1871 finds files with other special chars1872 Wikis1873 finds wiki blobs1874 finds wiki blobs for guest1875 finds wiki blobs from public projects only1876 returns zero when wiki blobs are not found1877 when wiki is disabled1878 search by member1879 should be empty1880 search by non-member1881 should be empty1882 when wiki is internal1883 search by member1884 should not be empty1885 search by non-member1886 should be empty1887 Commits1888 finds commits1889 finds commits from public projects only1890 returns zero when commits are not found1891 Visibility levels1892 Issues1893 finds right set of issues1894 Milestones1895 finds right set of milestine1896 Projects1897 finds right set of projects1898 Merge Requests1899 finds right set of merge requests1900 Wikis1901 finds the right set of wiki blobs1902 Commits1903 finds right set of commits1904 Blobs1905 finds right set of blobs1906Projects::MergeRequestsController1907 behaves like approvals1908 approve1909 approves the merge request1910 approvals1911 shows approval information1912 unapprove1913 unapproves the merge request1914 PUT update1915 when the merge request requires approval1916 behaves like update invalid issuable1917 when updating causes conflicts1918 renders edit when format is html1919 renders json error message when format is json1920 when updating an invalid issuable1921 renders edit when merge request is invalid1922 overriding approvers per MR1923 enabled1924 updates approvals1925 disabled1926 does not update approvals_before_merge1927 does not update approver_ids1928 does not update approver_group_ids1929 when the MR targets the project1930 behaves like approvals_before_merge param1931 approvals_before_merge not set for the existing MR1932 when it is less than the one in the target project1933 sets the param to nil1934 updates the merge request1935 when it is equal to the one in the target project1936 sets the param to nil1937 updates the merge request1938 when it is greater than the one in the target project1939 saves the param in the merge request1940 updates the merge request1941 approvals_before_merge set for the existing MR1942 when it is not set1943 does not change the merge request1944 updates the merge request1945 when it is less than the one in the target project1946 sets the param to nil1947 updates the merge request1948 when it is equal to the one in the target project1949 sets the param to nil1950 updates the merge request1951 when it is greater than the one in the target project1952 saves the param in the merge request1953 updates the merge request1954 when the project is a fork1955 when the MR target upstream1956 behaves like approvals_before_merge param1957 approvals_before_merge not set for the existing MR1958 when it is less than the one in the target project1959 sets the param to nil1960 updates the merge request1961 when it is equal to the one in the target project1962 sets the param to nil1963 updates the merge request1964 when it is greater than the one in the target project1965 saves the param in the merge request1966 updates the merge request1967 approvals_before_merge set for the existing MR1968 when it is not set1969 does not change the merge request1970 updates the merge request1971 when it is less than the one in the target project1972 sets the param to nil1973 updates the merge request1974 when it is equal to the one in the target project1975 sets the param to nil1976 updates the merge request1977 when it is greater than the one in the target project1978 saves the param in the merge request1979 updates the merge request1980 when the MR target the fork1981 behaves like approvals_before_merge param1982 approvals_before_merge not set for the existing MR1983 when it is less than the one in the target project1984 sets the param to nil1985 updates the merge request1986 when it is equal to the one in the target project1987 sets the param to nil1988 updates the merge request1989 when it is greater than the one in the target project1990 saves the param in the merge request1991 updates the merge request1992 approvals_before_merge set for the existing MR1993 when it is not set1994 does not change the merge request1995 updates the merge request1996 when it is less than the one in the target project1997 sets the param to nil1998 updates the merge request1999 when it is equal to the one in the target project2000 sets the param to nil2001 updates the merge request2002 when it is greater than the one in the target project2003 saves the param in the merge request2004 updates the merge request2005 POST merge2006 when the sha parameter matches the source SHA2007 when squash is passed as 12008 updates the squash attribute on the MR to true2009 merges even when squash is unavailable2010 when squash is passed as 02011 updates the squash attribute on the MR to false2012 POST #rebase2013 approvals pending2014 returns 2002015 with a forked project2016 behaves like approvals2017 approve2018 approves the merge request2019 approvals2020 shows approval information2021 unapprove2022 unapproves the merge request2023GlobalSearch2024 Respect feature visibility levels2025 Private projects2026 does not find items if features are disabled2027 shows items to member only if features are enabled2028 Internal projects2029 does not find items if features are disabled2030 shows items to member only if features are enabled2031 shows items to member only if features are private2032 Public projects2033 does not find items if features are disabled2034 finds items if features are enabled2035 shows items to member only if features are private2036Dropdown weight2037Starting the Capybara driver server...2038 behavior2039 opens when the search bar has weight:2040 closes when the search bar is unfocused2041 should load all the weights when opened2042 selecting from dropdown2043 fills in weight 12044 fills in weight 22045 fills in weight 32046 fills in `no weight`2047 input has existing content2048 opens weight dropdown with existing search term2049 opens weight dropdown with existing assignee2050 opens weight dropdown with existing label2051 opens weight dropdown with existing milestone2052GroupPolicy2053 when epics feature is disabled2054 should be disallowed :read_epic, :create_epic, :admin_epic, and :destroy_epic2055 when epics feature is enabled2056 should be allowed :read_epic, :create_epic, :admin_epic, and :destroy_epic2057 per group SAML2058 should be disallowed :admin_group_saml2059 owner2060 should be allowed :admin_group_saml2061 admin2062 should be allowed :admin_group_saml2063 when LDAP sync is not enabled2064 owner2065 should be disallowed :override_group_member2066 should be allowed :admin_ldap_group_links2067 does not allow group owners to manage ldap2068 should be disallowed :admin_ldap_group_links2069 admin2070 should be disallowed :override_group_member2071 should be allowed :admin_ldap_group_links2072 when LDAP sync is enabled2073 with no user2074 should be disallowed :override_group_member2075 should be disallowed :admin_ldap_group_links2076 guests2077 should be disallowed :override_group_member2078 should be disallowed :admin_ldap_group_links2079 reporter2080 should be disallowed :override_group_member2081 should be disallowed :admin_ldap_group_links2082 developer2083 should be disallowed :override_group_member2084 should be disallowed :admin_ldap_group_links2085 master2086 should be disallowed :override_group_member2087 should be disallowed :admin_ldap_group_links2088 owner2089 allow group owners to manage ldap2090 should be allowed :override_group_member2091 does not allow group owners to manage ldap2092 should be disallowed :override_group_member2093 should be disallowed :admin_ldap_group_links2094 admin2095 should be allowed :override_group_member2096 should be allowed :admin_ldap_group_links2097 create_projects2098 project_creation_level enabled2099 when group has no project creation level set2100 reporter2101 should be disallowed :create_projects2102 developer2103 should be allowed :create_projects2104 master2105 should be allowed :create_projects2106 owner2107 should be allowed :create_projects2108 when group has project creation level set to no one2109 reporter2110 should be disallowed :create_projects2111 developer2112 should be disallowed :create_projects2113 master2114 should be disallowed :create_projects2115 owner2116 should be disallowed :create_projects2117 when group has project creation level set to master only2118 reporter2119 should be disallowed :create_projects2120 developer2121 should be disallowed :create_projects2122 master2123 should be allowed :create_projects2124 owner2125 should be allowed :create_projects2126 when group has project creation level set to developers + master2127 reporter2128 should be disallowed :create_projects2129 developer2130 should be allowed :create_projects2131 master2132 should be allowed :create_projects2133 owner2134 should be allowed :create_projects2135 project_creation_level disabled2136 when group has no project creation level set2137 reporter2138 should be disallowed :create_projects2139 developer2140 should be disallowed :create_projects2141 master2142 should be allowed :create_projects2143 owner2144 should be allowed :create_projects2145 when group has project creation level set to no one2146 reporter2147 should be disallowed :create_projects2148 developer2149 should be disallowed :create_projects2150 master2151 should be allowed :create_projects2152 owner2153 should be allowed :create_projects2154 when group has project creation level set to master only2155 reporter2156 should be disallowed :create_projects2157 developer2158 should be disallowed :create_projects2159 master2160 should be allowed :create_projects2161 owner2162 should be allowed :create_projects2163 when group has project creation level set to developers + master2164 reporter2165 should be disallowed :create_projects2166 developer2167 should be disallowed :create_projects2168 master2169 should be allowed :create_projects2170 owner2171 should be allowed :create_projects2172New/edit issue2173 new issue2174 allows user to create new issue2175 correctly updates the selected user when changing assignee2176 shorten users API pagination limit2177 should display selected users even if they are not part of the original API call2178 multiple assignees2179 unselects other assignees when unassigned is selected2180 toggles assign to me when current user is selected and unselected2181Project elastic search2182 searching2183 finds issues2184 finds merge requests2185 finds milestones2186 finds wiki pages2187 finds notes2188 finds commits2189 finds blobs2190Issue Boards2191 assignee2192 updates the issues assignee2193 adds multiple assignees2194 removes the assignee2195 assignees to current user2196 updates assignee dropdown2197 epic2198 when the issue is not associated with an epic2199 displays `None` for value of epic2200 when the issue is associated with an epic2201 displays name of epic and links to it2202 weight2203 displays weight async2204 updates weight in sidebar to 12205 updates weight in sidebar to no weight2206Squashing merge requests2207 when the MR has only one commit2208 does not show the squash checkbox2209 when squash is enabled on merge request creation2210 shows the squash checkbox as checked2211 when accepting with squash checked2212 squashes the commits into a single commit, and adds a merge commit2213 when accepting and unchecking squash2214 accepts the merge request without squashing2215 when squash is not enabled on merge request creation2216 shows the squash checkbox as unchecked2217 when accepting and checking squash2218 squashes the commits into a single commit, and adds a merge commit2219 when accepting with squash unchecked2220 accepts the merge request without squashing2221 squash is unlicensed2222 does not show squash option when creating MR2223 does not show squash option when viewing MR2224Merge request > User approves2225 Approving by approvers from groups2226 when group is assigned to a project2227 I am able to approve2228 I am able to unapprove2229 when group is assigned to a merge request2230 I am able to approve2231 I am able to unapprove2232 when CI is running but no approval given2233 I am unable to set Merge when pipeline succeeds2234 when merge when discussions resolved is active2235 does not show checking ability text2236Merge request > User sets approvers2237 when editing an MR with a different author2238 does not allow setting the author as an approver but allows setting the current user as an approver2239 when creating an MR from a fork2240 allows setting other users as approvers but does not allow setting the current user as an approver, and filters non members from approvers list2241 Group approvers2242 when creating an MR2243 allows setting groups as approvers2244 allows delete approvers group when it is set in project2245 when editing an MR with a different author2246 allows setting groups as approvers2247 allows delete approvers group when it`s set in project2248 allows changing approvals number2249MergeRequest2250 should delegate #expose_sast_data? to #head_pipeline object2251 should delegate #base_has_sast_data? to #base_pipeline object as #has_sast_data?2252 should delegate #head_sast_artifact to #head_pipeline object as #sast_artifact2253 should delegate #base_sast_artifact to #base_pipeline object as #sast_artifact2254 should delegate #expose_dast_data? to #head_pipeline object2255 should delegate #base_has_dast_data? to #base_pipeline object as #has_dast_data?2256 should delegate #head_dast_artifact to #head_pipeline object as #dast_artifact2257 should delegate #base_dast_artifact to #base_pipeline object as #dast_artifact2258 should delegate #expose_sast_container_data? to #head_pipeline object2259 should delegate #base_has_sast_container_data? to #base_pipeline object as #has_sast_container_data?2260 should delegate #head_sast_container_artifact to #head_pipeline object as #sast_container_artifact2261 should delegate #base_sast_container_artifact to #base_pipeline object as #sast_container_artifact2262 associations2263 should have many approvals dependent => delete_all2264 should have many approvers dependent => delete_all2265 should have many approver_groups dependent => delete_all2266 should have many approved_by_users2267 #squash_in_progress?2268 when Gitaly squash_in_progress is enabled2269 behaves like checking whether a squash is in progress2270Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/2c/58/2c58b3a68ac99f845a207a613ce245b3fd2dd839320355a9778e9319f96363b2.git/gitlab-worktree/squash-126 (identifier squash-126)2271HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2272 returns true when there is a current squash directory2273Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/02/52/0252b081bda70b478f0131b310a93cb8d79086d785fb4ae392a8c5ffc3ddc5fe.git/gitlab-worktree/squash-127 (identifier squash-127)2274HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2275 returns false when there is no squash directory2276Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/c7/b9/c7b96125d8bb1b5ac26f057909f1a29dcd87d00ced1a9b563f3220b6d6038d66.git/gitlab-worktree/squash-128 (identifier squash-128)2277HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2278 returns false when the squash directory has expired2279Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/48/e1/48e1ff78f2967629663434954e7034e9a16116b94c678174f080fb20509144dc.git/gitlab-worktree/squash-129 (identifier squash-129)2280HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2281 returns false when the source project has been removed2282 when Gitaly squash_in_progress is disabled2283 behaves like checking whether a squash is in progress2284Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/d4/05/d40535ac09aac0ef32f8a23b8bb8e04bc2e8f9d6b0981fa98a16d0382f558d83.git/gitlab-worktree/squash-130 (identifier squash-130)2285HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2286 returns true when there is a current squash directory2287Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/ef/ec/efec9aaf21433bf806e7681de337cac7dbecfbf17b22ad3bcdfe5e46e564f32f.git/gitlab-worktree/squash-131 (identifier squash-131)2288HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2289 returns false when there is no squash directory2290Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/27/48/274897360371d52c0d6f5e7dcc285f914c51a39bb714f51a7a547433b143c151.git/gitlab-worktree/squash-132 (identifier squash-132)2291HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2292 returns false when the squash directory has expired2293Preparing /builds/gitlab-org/gitlab-ee/tmp/tests/repositories/@hashed/ca/15/ca153fc499ffc25f1118ad5e58ff242584f3b3a285d4d9428615325613633e3e.git/gitlab-worktree/squash-133 (identifier squash-133)2294HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2295 returns false when the source project has been removed2296 #squash?2297 unlicensed2298 disabled in database2299 should be falsy2300 enabled in database2301 should be falsy2302 licensed2303 disabled in database2304 should be falsy2305 licensed2306 should be truthy2307 #approvals_before_merge2308 license_value: true, db_value: 5, expected: 52309 should eq 52310 license_value: true, db_value: nil, expected: nil2311 should eq nil2312 license_value: false, db_value: 5, expected: nil2313 should eq nil2314 license_value: false, db_value: nil, expected: nil2315 should eq nil2316 #base_pipeline2317 should eq #<Ci::Pipeline id: 2, ref: "master", sha: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f", before_sha: nil...il, pipeline_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil>2318 #base_codeclimate_artifact2319WARNING: An expectation of `:codeclimate_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:125:in `block (3 levels) in <top (required)>'.2320 delegates to merge request diff2321 #head_codeclimate_artifact2322WARNING: An expectation of `:codeclimate_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:136:in `block (3 levels) in <top (required)>'.2323 delegates to merge request diff2324 #base_performance_artifact2325WARNING: An expectation of `:performance_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:147:in `block (3 levels) in <top (required)>'.2326 delegates to merge request diff2327 #head_performance_artifact2328WARNING: An expectation of `:performance_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:158:in `block (3 levels) in <top (required)>'.2329 delegates to merge request diff2330 #expose_codeclimate_data?2331 with codeclimate data2332 should be truthy2333 without codeclimate data2334 should be falsey2335 #expose_performance_data?2336 with performance data2337 should be truthy2338 without performance data2339 should be falsey2340New project2341 repository mirrors2342 when licensed2343 shows mirror repository checkbox enabled2344 when unlicensed2345 does not show mirror repository option2346 CI/CD for external repositories2347 when licensed2348 shows CI/CD tab and pane2349 "Import project" tab creates projects with features enabled2350 creates CI/CD project from repo URL2351 creates CI/CD project from GitHub2352 new GitHub CI/CD project page has link to status page with ?ci_cd_only=true param2353 stays on GitHub import page after access token failure2354 when unlicensed2355 does not show CI/CD only tab2356User approves a merge request2357 when user can approve2358 approves a merge request2359 when a merge request is approved additionally2360 shows multiple approvers beyond the needed count2361 doesn't show the add approval when a merge request is closed2362 when user cannot approve2363 does not approves a merge request2364Service Desk Issue Tracker2365 navigation to service desk2366 can navigate to the service desk from link in the sidebar2367 issues list2368 when service desk has not been activated2369 service desk info content2370 when user has permissions to edit project settings2371 displays the large info box2372 has a link to the documentation2373 does show a button configure service desk2374 when user does not have permission to edit project settings2375 does not show a button configure service desk2376 when service desk has been activated2377 when there are no issues2378 service desk info content2379 displays the large info box2380 has a link to the documentation2381 does not show a button configure service desk2382 shows the service desk email address2383 when there are issues2384 service desk info content2385 displays the small info box2386 has a link to the documentation2387 does not show a button configure service desk2388 shows the service desk email address2389 issues list2390 only displays issues created by support bot2391 search box2392 adds hidden support bot author token2393 support bot author token cannot be deleted2394Boards::IssuesController2395 GET index2396 with invalid board id2397 returns a not found 404 response2398 when list id is present2399 with valid list id2400 returns issues that have the list label applied2401 with invalid list id2402 returns a not found 404 response2403 when list id is missing2404 returns opened issues without board labels applied2405 with unauthorized user2406 returns a forbidden 403 response2407 with external authorization2408 returns a 404 for group boards2409 is successful for project boards2410 POST create2411 with valid params2412 returns a successful 200 response2413 returns the created issue2414 with invalid params2415 when title is nil2416 returns an unprocessable entity 422 response2417 when list does not belongs to project board2418 returns a not found 404 response2419 with invalid board id2420 returns a not found 404 response2421 with invalid list id2422 returns a not found 404 response2423 with unauthorized user2424 returns a forbidden 403 response2425 PATCH update2426 with valid params2427 returns a successful 200 response2428 moves issue to the desired list2429 with invalid params2430 returns a unprocessable entity 422 response for invalid lists2431 returns a not found 404 response for invalid board id2432 returns a not found 404 response for invalid issue id2433 with unauthorized user2434 returns a forbidden 403 response2435Project settings > [EE] Merge Requests2436 adds approver2437 filter approvers2438 adds approver group2439 with an approver group2440 removes approver group2441 issuable default templates feature not available2442 input to configure merge request template is not shown2443 issuable default templates feature is available2444 input to configure merge request template is not shown2445Geo::RepositorySyncService2446 behaves like geo base sync execution2447 #execute2448 when can acquire exclusive lease2449 executes the synchronization2450 when exclusive lease is not acquired2451 is does not execute synchronization2452 behaves like geo base sync fetch and repack2453 #fetch_repository2454 cleans up temporary repository2455 updates registry2456 fetches repository from geo node2457 redownload2458 fetches repository from geo node into temporary location2459 schedule git repack2460 repository does not exist2461 ensures repository is created2462 schedule git repack2463 #execute2464 fetches project repository with JWT credentials2465 expires repository caches2466 returns the lease when succeed2467 voids the failure message when it succeeds after an error2468 returns the lease when sync fail2469 does not fetch project repository if cannot obtain a lease2470 rescues when Gitlab::Shell::Error is raised2471 rescues when Gitlab::Git::RepositoryMirroring::RemoteError is raised2472 rescues exception and fires after_create hook when Gitlab::Git::Repository::NoRepository is raised2473 increases retry count when Gitlab::Git::Repository::NoRepository is raised2474 marks sync as successful if no repository found2475 tracking database2476 creates a new registry if does not exists2477 does not create a new registry if one exist2478 temporary repositories2479 there is a leftover repository2480 removes leftover repository2481 when repository sync succeed2482 sets last_repository_synced_at2483 sets last_repository_successful_sync_at2484 resets the repository_verification_checksum_sha2485 resets the last_repository_verification_failure2486 resets the repository_checksum_mismatch2487 logs success with timings2488 sets repository_retry_count and repository_retry_at to nil2489 with non empty repositories2490 syncs gitattributes to info/attributes2491 when repository sync fail2492 sets last_repository_synced_at2493 resets last_repository_successful_sync_at2494 resets repository_retry_count2495 resets repository_retry_at2496 sets last_repository_sync_failure2497 retries2498 tries to fetch repo2499 sets the redownload flag to false after success2500 tries to redownload repo2501 tries to redownload repo when force_redownload flag is set2502 cleans temporary repo after redownload2503 successfully redownloads the repository even if the retry time exceeds max value2504 no repository2505 does not raise an error2506 behaves like sync retries use the snapshot RPC2507 snapshot synchronization method2508 does not attempt to snapshot for initial sync2509 does not attempt to snapshot for ordinary retries2510 registry is ready to be snapshotted2511 attempts to snapshot2512 attempts to fetch if snapshotting raises an exception2513 does not attempt to snapshot if the feature flag is disabled2514 #schedule_repack2515 schedule GitGarbageCollectWorker for full repack2516Groups::EpicIssuesController2517 GET #index2518 behaves like unlicensed epics action2519 returns 400 status2520 when epics feature is enabled2521 returns status 2002522 returns the correct json2523 POST #create2524 behaves like unlicensed epics action2525 returns 400 status2526 when epics feature is enabled2527 when user has permissions to create requested association2528 returns correct response for the correct issue reference2529 creates a new EpicIssue record2530 when user does not have permissions to create requested association2531 returns correct response for the correct issue reference2532 does not create a new EpicIssue record2533 DELETE #destroy2534 behaves like unlicensed epics action2535 returns 400 status2536 when epics feature is enabled2537 when user has permissions to delete the link2538 returns status 2002539 destroys the link2540 when user does not have permissions to delete the link2541 returns status 4042542 does not destroy the link2543 when the epic from the association does not equal epic from the path2544 returns status 4042545 does not destroy the link2546 when the epic_issue record does not exists2547 returns status 4042548 PUT #update2549 behaves like unlicensed epics action2550 returns 400 status2551 when epics feature is enabled2552 when user has permissions to admin the epic2553 returns status 2002554 updates the issue position value2555 when user does not have permissions to admin the epic2556 returns status 4042557 when the epic from the association does not equal epic from the path2558 returns status 4042559 when the epic_issue record does not exists2560 returns status 4042561ElasticIndexerWorker2562 returns true if ES disabled2563 Indexing new records2564 indexes a project2565 indexes an issue2566 indexes a note2567 indexes a milestone2568 indexes a merge request2569 Updating index2570 updates a project2571 updates an issue2572 updates a note2573 updates a milestone2574 updates a merge request2575 Delete2576 deletes a project with all nested objects2577 deletes an issue2578 deletes a note2579 deletes a milestone2580 deletes a merge request2581Discussion Comments Epic2582 behaves like discussion comments2583 clicking "Comment" will post a comment2584 when the toggle is clicked2585 has a "Comment" item (selected by default) and "Start discussion" item2586 closes the menu when clicking the toggle or body2587 clicking the ul padding or divider should not change the text2588 when selecting "Start discussion"2589 updates the submit button text and closes the dropdown2590 creating a discussion2591 clicking "Start discussion" will post a discussion2592 when opening the menu2593 should have "Start discussion" selected2594 when selecting "Comment"2595 updates the submit button text and closes the dropdown2596 should have "Comment" selected when opening the menu2597Projects::UpdateRemoteMirrorService2598 #execute25992018-05-02T15:22:36.318Z 130 TID-bla08 INFO: Removing remote remote_mirror_1 from project 134226002018-05-02T15:22:36.321Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_1 from project 13422601 does nothing when unlicensed26022018-05-02T15:22:36.620Z 130 TID-bla08 INFO: Removing remote remote_mirror_2 from project 134426032018-05-02T15:22:36.623Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_2 from project 13442604 fetches the remote repository26052018-05-02T15:22:37.091Z 130 TID-bla08 INFO: Removing remote remote_mirror_3 from project 134626062018-05-02T15:22:37.094Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_3 from project 13462607 succeeds2608 Syncing branches26092018-05-02T15:22:37.494Z 130 TID-bla08 INFO: Removing remote remote_mirror_4 from project 134826102018-05-02T15:22:37.498Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_4 from project 13482611 push all the branches the first time26122018-05-02T15:22:37.880Z 130 TID-bla08 INFO: Removing remote remote_mirror_5 from project 135026132018-05-02T15:22:37.883Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_5 from project 13502614 does not push anything is remote is up to date26152018-05-02T15:22:38.252Z 130 TID-bla08 INFO: Removing remote remote_mirror_6 from project 135226162018-05-02T15:22:38.255Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_6 from project 13522617 sync new branches26182018-05-02T15:22:38.621Z 130 TID-bla08 INFO: Removing remote remote_mirror_7 from project 135426192018-05-02T15:22:38.624Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_7 from project 13542620 sync updated branches2621 when push only protected branches option is set26222018-05-02T15:22:39.011Z 130 TID-bla08 INFO: Removing remote remote_mirror_8 from project 135626232018-05-02T15:22:39.015Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_8 from project 13562624 sync updated protected branches26252018-05-02T15:22:39.414Z 130 TID-bla08 INFO: Removing remote remote_mirror_9 from project 135826262018-05-02T15:22:39.418Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_9 from project 13582627 does not sync unprotected branches2628 when branch exists in local and remote repo2629 when it has diverged26302018-05-02T15:22:39.797Z 130 TID-bla08 INFO: Removing remote remote_mirror_10 from project 136026312018-05-02T15:22:39.800Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_10 from project 13602632 syncs branches2633 for delete2634 when branch exists in local and remote repo26352018-05-02T15:22:40.178Z 130 TID-bla08 INFO: Removing remote remote_mirror_11 from project 136226362018-05-02T15:22:40.182Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_11 from project 13622637 deletes the branch from remote repo2638 when push only protected branches option is set2639 when branch exists in local and remote repo26402018-05-02T15:22:40.557Z 130 TID-bla08 INFO: Removing remote remote_mirror_12 from project 136426412018-05-02T15:22:40.560Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_12 from project 13642642 deletes the protected branch from remote repo26432018-05-02T15:22:41.013Z 130 TID-bla08 INFO: Removing remote remote_mirror_13 from project 136626442018-05-02T15:22:41.016Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_13 from project 13662645 does not delete the unprotected branch from remote repo2646 when branch only exists on remote repo2647 when it has diverged26482018-05-02T15:22:41.382Z 130 TID-bla08 INFO: Removing remote remote_mirror_14 from project 136826492018-05-02T15:22:41.385Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_14 from project 13682650 does not delete the remote branch2651 when it has not diverged26522018-05-02T15:22:41.746Z 130 TID-bla08 INFO: Removing remote remote_mirror_15 from project 137026532018-05-02T15:22:41.749Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_15 from project 13702654 deletes the remote branch2655 when branch only exists on remote repo2656 when it has diverged26572018-05-02T15:22:42.109Z 130 TID-bla08 INFO: Removing remote remote_mirror_16 from project 137226582018-05-02T15:22:42.113Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_16 from project 13722659 does not delete the remote branch2660 when it has not diverged26612018-05-02T15:22:42.466Z 130 TID-bla08 INFO: Removing remote remote_mirror_17 from project 137426622018-05-02T15:22:42.469Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_17 from project 13742663 deletes the remote branch2664 Syncing tags2665 when there are not tags to push26662018-05-02T15:22:42.826Z 130 TID-bla08 INFO: Removing remote remote_mirror_18 from project 137626672018-05-02T15:22:42.829Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_18 from project 13762668 does not try to push tags2669 when there are some tags to push26702018-05-02T15:22:43.199Z 130 TID-bla08 INFO: Removing remote remote_mirror_19 from project 137826712018-05-02T15:22:43.202Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_19 from project 13782672 pushes tags to remote2673 when there are some tags to delete26742018-05-02T15:22:43.639Z 130 TID-bla08 INFO: Removing remote remote_mirror_20 from project 138026752018-05-02T15:22:43.643Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_20 from project 13802676 deletes tags from remote2677Ldap::OmniauthCallbacksController2678 displays LDAP sync flash on first sign in2679 skips LDAP sync flash on subsequent sign ins2680 access denied2681 logs a failure event2682Groups::AnalyticsController2683 returns 404 when feature is not available and we dont show promotions2684 sets instance variables properly2685 returns member contributions JSON when format is JSON2686 does not cause N+1 queries when the format is JSON2687 unlicensed but we show promotions2688 returns page when feature is not available and we show promotions2689 with views2690 avoids a N+1 query in #show2691 GET #index2692 behaves like disabled when using an external authorization service2693 works when the feature is not enabled2694 renders a 404 with a message when the feature is enabled2695Projects::CreateService#execute2696 with a CI/CD only project2697 when CI/CD projects feature is available2698 calls the service to setup CI/CD on the project2699 when CI/CD projects feature is not available2700 doesn't call the service to setup CI/CD on the project2701 repository_size_limit assignment as Bytes2702 when param present2703 assign repository_size_limit as Bytes2704 when param not present2705 assign nil value2706 without repository mirror2707 sets the mirror to false2708 with repository mirror2709 when licensed2710 sets the correct attributes2711 with mirror trigger builds2712 sets the mirror trigger builds2713 with checks on the namespace2714 when not licensed on a namespace2715 does not allow enabeling mirrors2716 when licensed on a namespace2717 allows enabling mirrors2718 when unlicensed2719 does not set mirror attributes2720 with mirror trigger builds2721 sets the mirror trigger builds2722 git hook sample2723 creates git hook from sample2724 push rules unlicensed2725 ignores the push rule sample2726 when running on a primary node2727 logs an event to the Geo event log2728 does not log event to the Geo log if project creation fails2729 when importing Project by repo URL2730 and check namespace plan is enabled2731 creates the project2732 audit events2733 does not log audit event if project operation fails2734 if operation succeed2735 logs an audit event if operation succeed2736 logs the project info2737admin Geo Nodes2738 show all public Geo Nodes and create new node link2739 create a new Geo Nodes2740 creates a new Geo Node2741 returns an error message when a duplicate primary is added2742 update an existing Geo Node2743 updates an existing Geo Node2744 remove an existing Geo Node2745 removes an existing Geo Node2746Notify2747 for a project2748 for merge requests2749 that are new with approver2750 contains the approvers list2751 that are approved2752 is sent as the last approver2753 has the correct subject2754 contains the new status2755 contains a link to the merge request2756 contains the names of all of the approvers2757 behaves like a multiple recipients email2758 is sent to the given recipient2759 behaves like an answer to an existing thread with reply-by-email enabled2760 has X-GitLab-Project headers2761 has X-GitLab-Project headers2762 has the characteristics of a threaded reply2763 when reply-by-email is enabled with incoming address with %{key}2764 has a Reply-To header2765 when reply-by-email is enabled with incoming address without %{key}2766 has X-GitLab-Project headers2767 has the characteristics of a threaded reply2768 has a Reply-To header2769 behaves like it should show Gmail Actions View Merge request link2770 should have body including "View Merge request"2771 behaves like it should have Gmail Actions links2772 should have body including "ViewAction"2773 behaves like an unsubscribeable thread2774 has a List-Unsubscribe header in the correct format, and a body link2775 behaves like an unsubscribeable thread with incoming address without %{key}2776 has a List-Unsubscribe header in the correct format, and a body link2777 when merge request has no assignee2778 does not show the assignee2779 that are unapproved2780 is sent as the last unapprover2781 has the correct subject2782 contains the new status2783 contains a link to the merge request2784 contains the names of all of the approvers2785 behaves like a multiple recipients email2786 is sent to the given recipient2787 behaves like an answer to an existing thread with reply-by-email enabled2788 has X-GitLab-Project headers2789 has X-GitLab-Project headers2790 has the characteristics of a threaded reply2791 when reply-by-email is enabled with incoming address with %{key}2792 has a Reply-To header2793 when reply-by-email is enabled with incoming address without %{key}2794 has X-GitLab-Project headers2795 has the characteristics of a threaded reply2796 has a Reply-To header2797 behaves like it should show Gmail Actions View Merge request link2798 should have body including "View Merge request"2799 behaves like it should have Gmail Actions links2800 should have body including "ViewAction"2801 behaves like an unsubscribeable thread2802 has a List-Unsubscribe header in the correct format, and a body link2803 behaves like an unsubscribeable thread with incoming address without %{key}2804 has a List-Unsubscribe header in the correct format, and a body link2805 for merge requests without assignee2806 that are unapproved2807 contains the new status2808Projects > Push Rules2809 reject_unsigned_commits rule2810 unlicensed2811 does not render the setting checkbox2812 licensed2813 renders the setting checkbox2814 with GL.com plans2815 when disabled2816 does not render the setting checkbox2817 when enabled2818 renders the setting checkbox2819 commit_committer_check rule2820 unlicensed2821 does not render the setting checkbox2822 licensed2823 renders the setting checkbox2824 with GL.com plans2825 when disabled2826 does not render the setting checkbox2827 when enabled2828 renders the setting checkbox2829Ci::Build2830 .codequality2831 when a job name is codequality2832 should include #<Ci::Build id: 1, status: "pending", finished_at: nil, trace: nil, created_at: "2018-05-02 08:50:29"... 1, artifacts_file_store: nil, artifacts_metadata_store: nil, protected: false, failure_reason: nil>2833 when a job name is codeclimate2834 should include #<Ci::Build id: 2, status: "pending", finished_at: nil, trace: nil, created_at: "2018-05-02 08:50:29"... 2, artifacts_file_store: nil, artifacts_metadata_store: nil, protected: false, failure_reason: nil>2835 when a job name is irrelevant2836 should not include #<Ci::Build id: 3, status: "pending", finished_at: nil, trace: nil, created_at: "2018-05-02 08:50:29"... 3, artifacts_file_store: nil, artifacts_metadata_store: nil, protected: false, failure_reason: nil>2837 #shared_runners_minutes_limit_enabled?2838 for shared runner2839 should be truthy2840 with specific runner2841 should be falsey2842 without runner2843 should be falsey2844 updates pipeline minutes2845 for event success2846 for event drop2847 for event cancel2848 #stick_build_if_status_changed2849 sticks the build if the status changed2850 #variables2851 when environment specific variable is defined2852 when variable environment scope is available2853 should include {:key => "ENV_KEY", :value => "environment", :public => false}2854 when variable environment scope is not available2855 should not include {:key => "ENV_KEY", :value => "environment", :public => false}2856 when there is a plan for the group2857 GITLAB_FEATURES should include the features for that plan2858 #has_codeclimate_json?2859 valid build2860 should be truthy2861 invalid build2862 should be falsey2863 #has_performance_json?2864 valid build2865 should be truthy2866 invalid build2867 should be falsey2868 #has_sast_json?2869 valid build2870 should be truthy2871 invalid build2872 should be falsey2873 #has_dependency_scanning_json?2874 valid build2875 should be truthy2876 invalid build2877 should be falsey2878 #has_sast_container_json?2879 valid build2880 should be truthy2881 invalid build2882 should be falsey2883 #has_dast_json?2884 valid build2885 should be truthy2886 invalid build2887 should be falsey2888RemoteMirror2889 URL validation2890 with a valid URL2891 should be valid2892 with an invalid URL2893 should not be valid2894 encrypting credentials2895 when setting URL for a first time28962018-05-02T15:24:41.029Z 130 TID-bla08 INFO: Removing remote remote_mirror_21 from project 144428972018-05-02T15:24:41.035Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_21 from project 14442898 stores the URL without credentials28992018-05-02T15:24:41.206Z 130 TID-bla08 INFO: Removing remote remote_mirror_22 from project 144529002018-05-02T15:24:41.211Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_22 from project 14452901 stores the credentials on a separate field29022018-05-02T15:24:41.376Z 130 TID-bla08 INFO: Removing remote remote_mirror_23 from project 144629032018-05-02T15:24:41.383Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_23 from project 14462904 handles credentials with large content2905 when updating the URL29062018-05-02T15:24:41.545Z 130 TID-bla08 INFO: Removing remote remote_mirror_24 from project 144729072018-05-02T15:24:41.551Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_24 from project 144729082018-05-02T15:24:41.564Z 130 TID-bla08 INFO: Removing remote remote_mirror_7f96f03770537d8bc3adb6bb3c321fb1 from project 144729092018-05-02T15:24:41.570Z 130 TID-bla08 INFO: Remote remote_mirror_7f96f03770537d8bc3adb6bb3c321fb1 was successfully removed from project 14472910 allows a new URL without credentials29112018-05-02T15:24:41.733Z 130 TID-bla08 INFO: Removing remote remote_mirror_25 from project 144829122018-05-02T15:24:41.738Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_25 from project 144829132018-05-02T15:24:41.754Z 130 TID-bla08 INFO: Removing remote remote_mirror_d88ad509409e32291d13c60618be5a87 from project 144829142018-05-02T15:24:41.760Z 130 TID-bla08 INFO: Remote remote_mirror_d88ad509409e32291d13c60618be5a87 was successfully removed from project 14482915 allows a new URL with credentials29162018-05-02T15:24:41.929Z 130 TID-bla08 INFO: Removing remote remote_mirror_26 from project 144929172018-05-02T15:24:41.937Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_26 from project 144929182018-05-02T15:24:41.953Z 130 TID-bla08 INFO: Removing remote remote_mirror_4b270e030e828b272383b8e6f4ffb3d9 from project 144929192018-05-02T15:24:41.961Z 130 TID-bla08 INFO: Remote remote_mirror_4b270e030e828b272383b8e6f4ffb3d9 was successfully removed from project 14492920 updates the remote config if credentials changed29212018-05-02T15:24:42.202Z 130 TID-bla08 INFO: Removing remote remote_mirror_27 from project 145029222018-05-02T15:24:42.209Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_27 from project 145029232018-05-02T15:24:42.227Z 130 TID-bla08 INFO: Removing remote remote_mirror_707af8ad7719e600f076eb6280fcbd28 from project 145029242018-05-02T15:24:42.233Z 130 TID-bla08 INFO: Remote remote_mirror_707af8ad7719e600f076eb6280fcbd28 was successfully removed from project 14502925 removes previous remote2926 #remote_name2927 when remote name is persisted in the database29282018-05-02T15:24:42.395Z 130 TID-bla08 INFO: Removing remote remote_mirror_28 from project 145129292018-05-02T15:24:42.400Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_28 from project 14512930 returns remote name with random value2931 when remote name is not persisted in the database29322018-05-02T15:24:42.566Z 130 TID-bla08 INFO: Removing remote remote_mirror_29 from project 145229332018-05-02T15:24:42.572Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_29 from project 14522934 returns remote name with remote mirror id2935 when remote is not persisted in the database2936 returns nil2937 #safe_url2938 when URL contains credentials29392018-05-02T15:24:42.893Z 130 TID-bla08 INFO: Removing remote remote_mirror_30 from project 145429402018-05-02T15:24:42.898Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_30 from project 14542941 masks the credentials2942 when URL does not contain credentials29432018-05-02T15:24:43.300Z 130 TID-bla08 INFO: Removing remote remote_mirror_31 from project 145529442018-05-02T15:24:43.306Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_31 from project 14552945 shows the full URL2946 when remote mirror gets destroyed29472018-05-02T15:24:43.481Z 130 TID-bla08 INFO: Removing remote remote_mirror_32 from project 145629482018-05-02T15:24:43.486Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_32 from project 145629492018-05-02T15:24:43.491Z 130 TID-bla08 INFO: Removing remote remote_mirror_833a911b5b6e04104f952496a8ef396e from project 145629502018-05-02T15:24:43.496Z 130 TID-bla08 INFO: Remote remote_mirror_833a911b5b6e04104f952496a8ef396e was successfully removed from project 14562951 removes remote2952 stuck mirrors29532018-05-02T15:24:43.675Z 130 TID-bla08 INFO: Removing remote remote_mirror_33 from project 145729542018-05-02T15:24:43.680Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_33 from project 14572955 includes mirrors stuck in started with no last_update_at set2956 #sync2957 repository mirrors not licensed29582018-05-02T15:24:43.685Z 130 TID-bla08 INFO: Removing remote remote_mirror_34 from project 145829592018-05-02T15:24:43.685Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_34 from project 14582960 does not schedule RepositoryUpdateRemoteMirrorWorker2961 with remote mirroring disabled29622018-05-02T15:24:43.866Z 130 TID-bla08 INFO: Removing remote remote_mirror_35 from project 145929632018-05-02T15:24:43.866Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_35 from project 14592964 returns nil2965 as a Geo secondary29662018-05-02T15:24:44.096Z 130 TID-bla08 INFO: Removing remote remote_mirror_36 from project 146029672018-05-02T15:24:44.096Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_36 from project 14602968 returns nil2969 with remote mirroring enabled2970 with only protected branches enabled2971 when it did not update in the last minute29722018-05-02T15:24:44.302Z 130 TID-bla08 INFO: Removing remote remote_mirror_37 from project 146129732018-05-02T15:24:44.302Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_37 from project 14612974 schedules a RepositoryUpdateRemoteMirrorWorker to run now2975 when it did update in the last minute29762018-05-02T15:24:44.483Z 130 TID-bla08 INFO: Removing remote remote_mirror_38 from project 146229772018-05-02T15:24:44.483Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_38 from project 14622978 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next minute2979 with only protected branches disabled2980 when it did not update in the last 5 minutes29812018-05-02T15:24:44.663Z 130 TID-bla08 INFO: Removing remote remote_mirror_39 from project 146329822018-05-02T15:24:44.663Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_39 from project 14632983 schedules a RepositoryUpdateRemoteMirrorWorker to run now2984 when it did update within the last 5 minutes29852018-05-02T15:24:44.842Z 130 TID-bla08 INFO: Removing remote remote_mirror_40 from project 146429862018-05-02T15:24:44.842Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_40 from project 14642987 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next 5 minutes2988 #updated_since?2989 when remote mirror does not have status failed29902018-05-02T15:24:45.075Z 130 TID-bla08 INFO: Removing remote remote_mirror_41 from project 146529912018-05-02T15:24:45.075Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_41 from project 14652992 returns true when last update started after the timestamp29932018-05-02T15:24:45.298Z 130 TID-bla08 INFO: Removing remote remote_mirror_42 from project 146629942018-05-02T15:24:45.298Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_42 from project 14662995 returns false when last update started before the timestamp2996 when remote mirror has status failed29972018-05-02T15:24:45.563Z 130 TID-bla08 INFO: Removing remote remote_mirror_43 from project 146729982018-05-02T15:24:45.563Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_43 from project 14672999 returns false when last update started after the timestamp3000 no project30012018-05-02T15:24:45.910Z 130 TID-bla08 INFO: Removing remote remote_mirror_44 from project 146830022018-05-02T15:24:45.915Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_44 from project 14683003 includes mirror with a project in pending_delete3004PushRulesHelper3005 global_setting: true, enabled_globally: true, enabled_in_project: false, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3006 has the correct help text3007 has the correct help text3008 global_setting: true, enabled_globally: false, enabled_in_project: false, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3009 has the correct help text3010 has the correct help text3011 global_setting: true, enabled_globally: true, enabled_in_project: true, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3012 has the correct help text3013 has the correct help text3014 global_setting: true, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3015 has the correct help text3016 has the correct help text3017 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :admin, help_text: :setting_can_be_overridden, invalid_text: nil3018 has the correct help text3019 has the correct help text3020 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :owner, help_text: :setting_can_be_overridden, invalid_text: nil3021 has the correct help text3022 has the correct help text3023 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :owner, help_text: :requires_admin_contact, invalid_text: nil3024 has the correct help text3025 has the correct help text3026 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :admin, help_text: :setting_has_been_overridden, invalid_text: nil3027 has the correct help text3028 has the correct help text3029 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :setting_has_been_overridden, invalid_text: nil3030 has the correct help text3031 has the correct help text3032 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :requires_admin_contact, invalid_text: nil3033 has the correct help text3034 has the correct help text3035 global_setting: false, enabled_globally: true, enabled_in_project: true, current_user: :owner, help_text: :setting_can_be_overridden, invalid_text: nil3036 has the correct help text3037 has the correct help text3038 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :setting_has_been_overridden, invalid_text: nil3039 has the correct help text3040 has the correct help text3041 global_setting: false, enabled_globally: true, enabled_in_project: true, current_user: :owner, help_text: :requires_admin_contact, invalid_text: :setting_has_been_overridden3042 has the correct help text3043 has the correct help text3044 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :requires_admin_contact, invalid_text: :setting_can_be_overridden3045 has the correct help text3046 has the correct help text3047 global_setting: false, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :base_help, invalid_text: :setting_can_be_overridden3048 has the correct help text3049 has the correct help text3050 global_setting: false, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :base_help, invalid_text: :setting_has_been_overridden3051 has the correct help text3052 has the correct help text3053User activates GitHub Service3054 without a license3055 is excluded from the integrations index3056 renders 404 when trying to access service settings directly3057 with valid license3058 activates service3059 with pipelines3060 tests service before save3061EpicIssues::UpdateService3062 #execute3063 when moving issues between different epics3064 returns an error3065 does not change the relative_position values3066 moving issue to the first position3067 when some positions are close to each other3068 orders issues correctly3069 when there is enough place between positions3070 orders issues correctly3071 moving issue to the third position3072 when some positions are close to each other3073 orders issues correctly3074 when all positions are same3075 orders affected 2 issues correctly3076 when there is enough place between positions3077 orders issues correctly3078 moving issues to the last position3079 when index of the last possition is correct3080 orders issues correctly3081Global elastic search3082 I search through the issues and I see pagination3083 has a pagination3084 I search through the blobs3085 finds files3086 I search through the wiki blobs3087 finds files3088 I search through the commits3089 finds commits3090group epic roadmap3091 when epics exist for the group3092 roadmap page3093 renders the filtered search bar correctly3094 renders roadmap view3095 renders all group epics within roadmap3096 roadmap page with filter applied3097 renders filtered search bar with applied filter token3098 renders roadmap view with matching epic3099 when no epics exist for the group3100 roadmap page3101 does not render the filtered search bar3102API::ProjectPushRule ProjectPushRule3103 GET /projects/:id/push_rule3104 authorized user3105 returns project push rule3106 unauthorized user3107 does not have access to project push rule3108 POST /projects/:id/push_rule3109 adds push rule to project with no file size3110 returns 400 if no parameter is given3111 authorized user3112 adds push rule to project3113 unauthorized user3114 does not add push rule to project3115 POST /projects/:id/push_rule3116 with existing push rule3117 does not add push rule to project3118 PUT /projects/:id/push_rule3119 updates an existing project push rule3120 returns 400 if no parameter is given3121 PUT /projects/:id/push_rule3122 gets error on non existing project push rule3123 does not update push rule for unauthorized user3124 DELETE /projects/:id/push_rule3125 authorized user3126 deletes push rule from project3127 unauthorized user3128 returns a 403 error3129 DELETE /projects/:id/push_rule3130 for non existing push rule3131 deletes push rule from project3132 returns a 403 error if not authorized3133Admin::AuditLogs3134 unlicensed3135 returns 4043136 licensed3137 has Audit Log button in head nav bar3138 user events3139 filters by user3140 group events3141 filters by group3142 project events3143 filters by project3144API::ProjectMirror3145 POST /projects/:id/mirror/pull3146 when the project is not mirrored3147 returns error3148 when the project is mirrored3149 when import state is3150 none it triggers the pull mirroring operation3151 failed it triggers the pull mirroring operation3152 finished it triggers the pull mirroring operation3153 scheduled does not trigger the pull mirroring operation and returns 2003154 started does not trigger the pull mirroring operation and returns 2003155 when user3156 is unauthenticated3157 returns authentication error3158 is authenticated as developer3159 returns forbidden error3160 is authenticated as reporter3161 returns forbidden error3162 is authenticated as guest3163 returns forbidden error3164 is authenticated as master3165 triggers the pull mirroring operation3166 is authenticated as owner3167 triggers the pull mirroring operation3168 authenticating from GitHub signature3169 when it's valid3170 syncs the mirror3171 when it's invalid3172 doesn't sync the mirror3173 with a public project3174 returns a 401 status3175 with an internal project3176 returns a 404 status3177 with a private project3178 returns a 404 status3179Assign labels to an epic3180 when label is referenced3181 creates new system note with label pointing to epics index page3182 when labels icon is clicked on collapsed sidebar3183 expands sidebar3184 opens labels dropdown3185 collapses sidebar when clicked outside3186Projects::IssuesController3187 GET #index3188 behaves like unauthorized when external service denies access3189 allows access when the authorization service allows it3190 allows access when the authorization service denies it3191 POST export_csv3192 unlicensed3193 returns 4043194 globally licensed3195 allows CSV export3196 anonymous user3197 redirects to the sign in page3198 licensed by namespace3199 allows CSV export3200 issue weights3201 licensed3202 #index3203 allows sorting by weight3204 allows filtering by weight3205 #update3206 sets issue weight3207 #create3208 sets issue weight3209 unlicensed3210 #index3211 ignores filtering by weight3212 #update3213 does not set issue weight3214 #create3215 does not set issue weight3216 GET service_desk3217 when Service Desk is available on the project3218 adds an author filter for the support bot user3219 does not allow any other author to be set3220 supports other filters3221 allows an assignee to be specified by id3222 when Service Desk is not available on the project3223 returns a 4043224EpicsFinder3225 #execute3226 when epics feature is disabled3227 raises an exception3228 when epics feature is enabled3229 without param3230 raises an error when group_id param is missing3231 when user can not read epics of a group3232 raises an error when group_id param is missing3233 with correct params3234 returns all epics that belong to the given group3235 by created_at3236 returns all epics created before the given date3237 returns all epics created after the given date3238 returns all epics created within the given interval3239 by search3240 returns all epics that match the search3241 by author3242 returns all epics authored by the given user3243 by label3244 returns all epics with given label3245 when subgroups are supported3246 returns all epics that belong to the given group and its subgroups3247 by timeframe3248 returns epics which start in the timeframe3249 returns epics which end in the timeframe3250 returns epics which start before and end after the timeframe3251 #row_count3252 returns number of rows when epics are grouped3253Groups > Pipeline Quota3254 with no quota3255 is not linked within the group settings dropdown3256 shows correct group quota info3257 with no projects using shared runners3258 is not linked within the group settings dropdown3259 shows correct group quota info3260 minutes under quota3261 is linked within the group settings tab3262 shows correct group quota info3263 minutes over quota3264 is linked within the group settings tab3265 shows correct group quota and projects info3266 with shared_runner_minutes_on_root_namespace disabled3267 when accessing group with subgroups3268 does not show project of subgroup3269 with shared_runner_minutes_on_root_namespace enabled3270 when accessing subgroup3271 does not show subproject3272 when accesing root group3273 does show projects of subgroup3274Projects::MergeRequests::CreationsController3275 POST #create3276 the approvals_before_merge param3277 when it is less than the one in the target project3278 sets the param to nil3279 creates the merge request3280 when it is equal to the one in the target project3281 sets the param to nil3282 creates the merge request3283 when it is greater than the one in the target project3284 saves the param in the merge request3285 creates the merge request3286 when the target project is a fork of a deleted project3287 uses the default from the target project3288 creates the merge request3289Milestones on EE3290 burndown charts3291 with the burndown chart feature available3292 shows a burndown chart3293 when a closed issue do not have closed events3294 shows warning3295 when all closed issues do not have closed events3296 shows warning and hides burndown3297 data is accurate3298 does not show warning3299 with due & start date not set3300 shows a mention to fill in dates3301 with the burndown chart feature disabled3302 has a link to upgrade to Bronze when checking the namespace plan3303 has a link to upgrade to starter on premise3304 with the issuable weights feature disabled3305 has a link to upgrade to Bronze when checking the namespace plan3306 has a link to upgrade to starter on premise3307 milestone summary3308 shows the total weight when sum is greater than zero3309 hides the total weight when sum is equal to zero3310ProjectImportData3311 validations3312 should validate that :auth_method is either ‹nil›, ‹""›, ‹"password"›, or ‹"ssh_public_key"›3313 #ssh_key_auth?3314 import_url: "ssh://example.com", auth_method: "ssh_public_key", expected: true3315 should eq true3316 import_url: "ssh://example.com", auth_method: "password", expected: false3317 should eq false3318 import_url: "http://example.com", auth_method: "ssh_public_key", expected: false3319 should eq false3320 import_url: "http://example.com", auth_method: "password", expected: false3321 should eq false3322 #ssh_known_hosts_verified_by3323 is a user when ssh_known_hosts_verified_by_id is a valid id3324 is nil when ssh_known_hosts_verified_by_id is an invalid id3325 is nil when ssh_known_hosts_verified_by_id is nil3326 auth_method3327 returns 'password' when nil3328 returns 'password' when ""3329 credential fields accessors3330 should contain exactly :auth_method, :password, :ssh_known_hosts, :ssh_known_hosts_verified_at, :ssh_known_hosts_verified_by_id, :ssh_private_key, and :user3331 field: :auth_method3332 sets the value in the credentials hash3333 sets a not-present value to nil3334 returns the data in the credentials hash3335 field: :password3336 sets the value in the credentials hash3337 sets a not-present value to nil3338 returns the data in the credentials hash3339 field: :ssh_known_hosts3340 sets the value in the credentials hash3341 sets a not-present value to nil3342 returns the data in the credentials hash3343 field: :ssh_known_hosts_verified_at3344 sets the value in the credentials hash3345 sets a not-present value to nil3346 returns the data in the credentials hash3347 field: :ssh_known_hosts_verified_by_id3348 sets the value in the credentials hash3349 sets a not-present value to nil3350 returns the data in the credentials hash3351 field: :ssh_private_key3352 sets the value in the credentials hash3353 sets a not-present value to nil3354 returns the data in the credentials hash3355 field: :user3356 sets the value in the credentials hash3357 sets a not-present value to nil3358 returns the data in the credentials hash3359 #ssh_import?3360 import_url: "ssh://example.com", expected: true3361 should eq true3362 import_url: "git://example.com", expected: false3363 should eq false3364 import_url: "http://example.com", expected: false3365 should eq false3366 import_url: "https://example.com", expected: false3367 should eq false3368 import_url: nil, expected: nil3369 should eq nil3370 #ssh_known_hosts_fingerprints3371 defers to SshHostKey#fingerprint_host_keys3372 #ssh_public_key3373 no SSH key3374 should be nil3375 with SSH key3376 returns the public counterpart of the SSH private key3377 #regenerate_ssh_private_key3378 auth_method is password3379 regenerates the SSH private key3380 auth_method is ssh_public_key3381 regenerates the SSH private key3382Gitlab::Chat::Command3383 #try_create_pipeline3384 returns nil when the command is not valid3385 tries to create the pipeline when a command is valid3386 #create_pipeline3387 creates the pipeline3388 creates the chat data for the pipeline3389 stores the chat name ID in the chat data3390 stores the response URL in the chat data3391 creates the environment variables for the pipeline3392API::MergeRequestApprovals3393 GET :id/merge_requests/:merge_request_iid/approvals3394 retrieves the approval status3395 POST :id/merge_requests/:merge_request_iid/approvals3396 as a project admin3397 behaves like user allowed to override approvals required3398 when disable_overriding_approvers_per_merge_request is false on the project3399 allows you to override approvals required3400 does not allow approvals required under what the project requires3401 when project approvals are not enabled3402 does not allow you to override approvals required3403 when disable_overriding_approvers_per_merge_request is true on the project3404 does not allow you to override approvals required3405 as a global admin3406 behaves like user allowed to override approvals required3407 when disable_overriding_approvers_per_merge_request is false on the project3408 allows you to override approvals required3409 does not allow approvals required under what the project requires3410 when project approvals are not enabled3411 does not allow you to override approvals required3412 when disable_overriding_approvers_per_merge_request is true on the project3413 does not allow you to override approvals required3414 as a random user3415 does not allow you to override approvals required3416 PUT :id/merge_requests/:merge_request_iid/approvers3417 as a project admin3418 behaves like user allowed to change approvers3419 when disable_overriding_approvers_per_merge_request is true on the project3420 does not allow overriding approvers3421 when disable_overriding_approvers_per_merge_request is false on the project3422 allows overriding approvers3423 removes approvers not in the payload3424 as a global admin3425 behaves like user allowed to change approvers3426 when disable_overriding_approvers_per_merge_request is true on the project3427 does not allow overriding approvers3428 when disable_overriding_approvers_per_merge_request is false on the project3429 allows overriding approvers3430 removes approvers not in the payload3431 as a random user3432 does not allow overriding approvers3433 POST :id/merge_requests/:merge_request_iid/approve3434 as the author of the merge request3435 returns a 4013436 as a valid approver3437 when the sha param is not set3438 approves the merge request3439 when the sha param is correct3440 approves the merge request3441 when the sha param is incorrect3442 returns a 4093443 does not approve the merge request3444 POST :id/merge_requests/:merge_request_iid/unapprove3445 as a user who has approved the merge request3446 unapproves the merge request3447ProjectsController3448 POST create3449 with licensed repository mirrors3450 has mirror enabled in new project3451 with unlicensed repository mirrors3452 has mirror disabled in new project3453 PUT #update3454 updates EE attributes3455 updates Merge Request Approvers attributes3456 updates Issuable Default Templates attributes3457 updates Service Desk attributes3458 repository mirrors3459 when licensed3460 updates repository mirror attributes3461 when unlicensed3462 does not update repository mirror attributes3463 external authaurization service attributes3464 updates the project classification label3465 does not update the project classification label when the feature is not available3466 behaves like unauthorized when external service denies access3467 allows access when the authorization service allows it3468 allows access when the authorization service denies it3469 updates when the service allows access3470 does not update when the service rejects access3471Projects::PushRulesController3472 #update3473 updates the push rule3474 push rules unlicensed3475 returns 4043476 Updating reject_unsigned_commits rule3477 as an admin3478 updates the setting3479 as a master user3480 when global setting is disabled3481 updates the setting3482 when global setting is enabled3483 does not update the setting3484 as a developer user3485 does not update the setting3486 Updating commit_committer_check rule3487 as an admin3488 updates the setting3489 as a master user3490 when global setting is disabled3491 updates the setting3492 when global setting is enabled3493 does not update the setting3494 as a developer user3495 does not update the setting3496IssueLinks::ListService3497 #execute3498 user can see all issues3499 ensures no N+1 queries are made3500 returns related issues JSON3501 referencing a public project issue3502 presents issue3503 referencing issue with removed relationships3504 when referenced a deleted issue3505 ignores issue3506 when referenced an issue with deleted project3507 ignores issue3508 when referenced an issue with deleted namespace3509 ignores issue3510 user cannot see relations3511 when user cannot see the referenced issue3512 returns an empty list3513 when user cannot see the issue that referenced3514 returns an empty list3515 remove relations3516 user can admin related issues just on target project3517 returns no destroy relation path3518 user can admin related issues just on source project3519 returns no destroy relation path3520 when user can admin related issues on both projects3521 returns related issue destroy relation path3522EE::NotificationService3523 with external authentication service3524 sends email when the service is not enabled3525 when the service is enabled3526 does not send an email3527 still delivers email to admins3528 service desk issues3529 a non-service-desk issue3530 doesn't send the email3531 a service-desk issue3532 sends the email3533 where the project has disabled the feature3534 doesn't send the email3535 when the license doesn't allow service desk3536 doesn't send the email3537 when the support bot has unsubscribed3538 doesn't send the email3539 mirror hard failed3540 when the project has invited members3541 sends email3542 when user is owner3543 sends email3544 when owner is blocked3545 does not send email3546 when project belongs to group3547 does not send email to the blocked owner3548 when user is master3549 sends email3550 when user is not owner nor master3551 does not send email3552 when user is group owner3553 sends email3554 when user is group master3555 sends email3556 mirror user changed3557 sends email3558Merge request > User merges with Push Rules3559 commit message is invalid3560 displays error message after merge request is clicked3561 author email is invalid3562 displays error message after merge request is clicked3563New Epic3564 empty epic list3565 when user who is not a group member views the epic list3566 does not show the create button3567 when user with owner views the epic list3568 does show the create button3569 has epics in list3570 when user who is not a group member views the epic list3571 does not show the create button3572 when user with owner views the epic list3573 does show the create button3574 can create epic3575Pipeline3576 GET /:project/pipelines/:id/security3577 with a sast artifact3578 shows jobs tab pane as active3579 shows security report section3580 without sast artifact3581 displays the pipeline graph3582EE::DeploymentPlatform3583 #deployment_platform3584 when environment is specified3585 when environment scope is exactly matched3586 behaves like matching environment scope3587 when multiple clusters license is available3588 returns environment specific cluster3589 when multiple clusters licence is unavailable3590 returns a kubernetes platform3591 when environment scope is matched by wildcard3592 behaves like matching environment scope3593 when multiple clusters license is available3594 returns environment specific cluster3595 when multiple clusters licence is unavailable3596 returns a kubernetes platform3597 when environment scope does not match3598 behaves like not matching environment scope3599 when multiple clusters license is available3600 returns default cluster3601 when multiple clusters license is unavailable3602 returns a kubernetes platform3603 when environment scope has _3604 does not treat it as wildcard3605 when environment name contains an underscore3606 matches literally for _3607 when environment scope has %3608 does not treat it as wildcard3609 when environment name contains a percent char3610 matches literally for %3611 when perfectly matched cluster exists3612 returns perfectly matched cluster as highest precedence3613 with multiple clusters and multiple environments3614 should return the appropriate cluster3615Namespace3616 should have one namespace_statistics3617 should belong to plan3618 should delegate #shared_runners_minutes to #namespace_statistics object3619 should delegate #shared_runners_seconds to #namespace_statistics object3620 should delegate #shared_runners_seconds_last_reset to #namespace_statistics object3621 scopes3622 .with_plan3623 plan is set3624 returns namespaces with plan3625 plan is not set3626 plan is empty string3627 returns no namespace3628 plan is nil3629 returns no namespace3630 custom validations3631 #validate_plan_name3632 with a valid plan name3633 is valid3634 with an invalid plan name3635 is invalid3636 #validate_shared_runner_minutes_support3637 when changing :shared_runners_minutes_limit3638 when group is subgroup3639 is invalid3640 when group is root3641 is valid3642 #move_dir3643 when running on a primary node3644 logs the Geo::RepositoryRenamedEvent for each project inside namespace3645 #feature_available?3646 uses the global setting when running on premise3647 only checks the plan once3648 when checking namespace plan3649 combines the global setting with the group setting when not running on premise3650 when feature available on the plan3651 when feature available for current group3652 returns true3653 when license is applied to parent group3654 child group has feature available3655 when feature not available in the plan3656 returns false3657 when the feature is temporarily available on the entire instance3658 returns true when the feature is available globally3659 returns `false` when the feature is not included in the global license3660 #max_active_pipelines3661 when there is no limit defined3662 returns zero3663 when free plan has limit defined3664 returns a free plan limits3665 when associated plan has no limit defined3666 returns zero3667 when limit is defined3668 returns a number of maximum active pipelines3669 #max_pipeline_size3670 when there are no limits defined3671 returns zero3672 when free plan has limit defined3673 returns a free plan limits3674 when associated plan has no limits defined3675 returns zero3676 when limit is defined3677 returns a number of maximum pipeline size3678 #shared_runners_enabled?3679 without projects3680 should be falsey3681 with project3682 and disabled shared runners3683 should be falsey3684 and enabled shared runners3685 should be truthy3686 #actual_shared_runners_minutes_limit3687 when no limit defined3688 should be zero3689 when application settings limit is set3690 returns global limit3691 when namespace limit is set3692 returns namespace limit3693 #shared_runner_minutes_supported?3694 when is subgroup3695 when shared_runner_minutes_on_root_namespace is disabled3696 returns true3697 when shared_runner_minutes_on_root_namespace is enabled3698 returns false3699 when is root3700 returns true3701 #shared_runners_minutes_limit_enabled?3702 with project3703 when no limit defined3704 should be falsey3705 when limit is defined3706 should be truthy3707 when is subgroup3708 should be falsey3709 without project3710 should be falsey3711 #shared_runners_enabled?3712 subgroup with shared runners enabled project3713 when shared_runner_minutes_on_root_namespace is disabled3714 returns false3715 when shared_runner_minutes_on_root_namespace is enabled3716 returns true3717 group with shared runners enabled project3718 returns true3719 group without projects3720 returns false3721 #shared_runners_minutes_used?3722 with project3723 when limit is defined3724 when limit is used3725 should be truthy3726 when limit not yet used3727 should be falsey3728 when minutes are not yet set3729 should be falsey3730 without limit3731 should be falsey3732 without project3733 should be falsey3734 #actual_plan3735 when namespace has a plan associated3736 returns an associated plan3737 when namespace does not have plan associated3738 returns a free plan object3739 #actual_plan_name3740 when namespace has a plan associated3741 returns an associated plan name3742 when namespace does not have plan associated3743 returns a free plan name3744epics list3745 when epics exist for the group3746 shows the epics in the navigation sidebar3747 renders the filtered search bar correctly3748 renders the list correctly3749 renders the epic detail correctly after clicking the link3750 when no epics exist for the group3751 renders the empty list page3752Repository3753 #after_sync3754 expires repository cache3755 does not call expire_branch_cache if repository does not exist3756 Elastic search3757 class method find_commits_by_message_with_elastic3758 returns commits3759 find_commits_by_message_with_elastic3760 returns commits3761Projects::IssueLinksController3762 GET /*namespace_id/:project_id/issues/:issue_id/links3763 returns JSON response3764 POST /*namespace_id/:project_id/issues/:issue_id/links3765 with success3766 returns success JSON3767 with failure3768 when unauthorized3769 returns 4033770 when failing service result3771 returns failure JSON3772 DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id3773 when unauthorized3774 when no authorization on current project3775 returns 4033776 when no authorization on the related issue project3777 returns 4043778 when authorized3779 returns success JSON3780 when non of issues of the link is not the issue requested in the path3781 returns 4043782 does not delete the link3783API::LdapGroupLinks3784 POST /groups/:id/ldap_group_links3785 when unauthenticated3786 returns authentication error3787 when a less priviledged user3788 does not allow less priviledged user to add LDAP group link3789 when owner of the group3790 returns ok and add ldap group link3791 returns ok and add ldap group link even if no provider specified (PENDING: Temporarily skipped with xit)3792 returns error if LDAP group link already exists3793 returns a 400 error when cn is not given3794 returns a 400 error when group access is not given3795 returns a 422 error when group access is not known3796 DELETE /groups/:id/ldap_group_links/:cn3797 when unauthenticated3798 returns authentication error3799 when a less priviledged user3800 does not remove the LDAP group link3801 when owner of the group3802 removes ldap group link3803 returns 404 if LDAP group cn not used for a LDAP group link3804 DELETE /groups/:id/ldap_group_links/:provider/:cn3805 when unauthenticated3806 returns authentication error3807 when a less priviledged user3808 does not remove the LDAP group link3809 when owner of the group3810 returns 404 if LDAP group cn not used for a LDAP group link for the specified provider3811 removes ldap group link3812Ci::RegisterJobService3813 #execute3814 for project with shared runners when global minutes limit is set3815 allow to pick builds3816 should be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...file_store: integer, artifacts_metadata_store: integer, protected: boolean, failure_reason: integer)3817 when over the global quota3818 does not return a build3819 when project is public3820 does return the build3821 when namespace limit is set to unlimited3822 does return the build3823 when namespace quota is bigger than a global one3824 does return the build3825 when group is subgroup3826 when shared_runner_minutes_on_root_namespace is disabled3827 does return a build3828 when we are over limit on subnamespace3829 does not return a build3830 when shared_runner_minutes_on_root_namespace is enabled3831 does return a build3832 when we are over limit on subnamespace3833 limit is ignored and build is returned3834 when we are over limit on root namespace3835 does not return a build3836GithubService3837 Associations3838 should belong to project3839 #owner3840 is determined from the repo URL3841 #repository_name3842 is determined from the repo URL3843 #api_url3844 uses github.com by default3845 with GitHub Enterprise repo URL3846 is set to the Enterprise API URL3847 #detailed_description3848 links to mirroring settings3849 #execute3850 notifies GitHub of a status change3851 uses StatusMessage to build message3852 uses GitHub API to update status3853 passes StatusMessage values to StatusNotifier3854 sha3855 status3856 context3857 target_url3858 description3859 with custom api endpoint3860 hands custom api url to StatusNotifier3861 without a license3862 does nothing3863 #can_test?3864 is false if there are no pipelines3865 is true if the project has a pipeline3866 #test_data3867 raises error if no pipeline found3868 generates data for latest pipeline3869 #test3870 mentions creator in success message3871 forwards failure message on error3872 without a license3873 fails gracefully3874MergeRequestPolicy3875 for a merge request within the same project3876 when overwriting approvers is disabled on the project3877 does not allow anyone to update approvers3878 when overwriting approvers is enabled on the project3879 allows only project developers and above to update the approvers3880 for a merge request from a fork3881 when overwriting approvers is disabled on the target project3882 does not allow anyone to update approvers3883 when overwriting approvers is disabled on the source project3884 has no effect - project developers and above, as well as the author, can update the approvers3885 when overwriting approvers is enabled on the target project3886 allows project developers and above, as well as the author, to update the approvers3887 with external authorization enabled3888 can read the issue iid without accessing the external service3889AuditEventService3890 #for_member3891 generates event3892 handles deleted users3893 has the IP address3894 admin audit log licensed3895 has the entity full path3896 #security_event3897 unlicensed3898 does not create an event3899 licensed3900 creates an event3901 #entity_audit_events_enabled??3902 entity is a project3903 returns false when project is unlicensed3904 returns true when project is licensed3905 entity is a group3906 returns false when group is unlicensed3907 returns true when group is licensed3908 entity is a user3909 returns false when unlicensed3910 returns true when licensed with extended events3911 auth event3912 returns true when unlicensed3913 #for_failed_login3914 has the right type3915 has the right author3916 has the right IP address3917 has the right auth method for OAUTH3918 license3919 has the audit_admin feature3920 logs an audit event3921 has the entity_path3922 has the extended_audit_events feature3923 logs an audit event3924 has not the entity_path3925 entity has the audit_events feature3926 logs an audit event3927 has not the entity_path3928 has not any audit event feature3929 does not log the audit event3930JenkinsService3931 Associations3932 should belong to project3933 should have one service_hook3934 username validation3935 when the service is active3936 when password was not touched3937 should not validate that :username cannot be empty/falsy3938 when password was touched3939 should validate that :username cannot be empty/falsy3940 when the service is inactive3941 should not validate that :username cannot be empty/falsy3942 #hook_url3943 when the jenkins_url has no relative path3944 should eq "http://jenkins.example.com/project/my_project"3945 when the jenkins_url has relative path3947 userinfo is missing and username and password are set3948 should eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"3949 userinfo is provided and username and password are set3951 userinfo is provided username and password are not set3953 #test3954 returns the right status3955 #execute3956 without a license key3957 behaves like project with disabled Jenkins service3958 does not invoke the Jenkins API3959 with a license key3960 when namespace plan check is not enabled3961 behaves like project with enabled Jenkins service3962 invokes the Jenkins API3963 when namespace plan check is enabled3964 when namespace does not have a plan3965 behaves like project with disabled Jenkins service3966 does not invoke the Jenkins API3967 when namespace has a plan3968 adds default web hook headers to the request3969 request url contains properly serialized username and password3970 Stored password invalidation3971 when a password was previously set3972 resets password if url changed3973 resets password if username is blank3974 does not reset password if username changed3975 does not reset password if new url is set together with password, even if it's the same password3976 resets password if url changed, even if setter called multiple times3977 when no password was previously set3978 saves password if new url is set together with password3979Boards::Issues::ListService3980 #execute3981 when list_id is missing3982 when board does not have a milestone3983 returns opened issues without board labels applied3984 when board have a milestone3985 returns opened issues without board labels and milestone applied3986 when milestone is predefined3987 as upcoming3988 returns open issue for backlog without board label3989 as started3990 returns open issue for backlog without board label3991MergeRequests::MergeService3992 #execute3993 project has exceeded size limit3994 returns the correct error message3995 #hooks_validation_pass?3996 returns true when valid3997 commit message validation3998 returns false and saves error when invalid3999 behaves like hook validations are skipped when push rules unlicensed4000 should be truthy4001 authors email validation4002 returns false and saves error when invalid4003 behaves like hook validations are skipped when push rules unlicensed4004 should be truthy4005 fast forward merge request4006 returns true when fast forward is enabled4007Projects::PathLocksController4008 POST #toggle4009 when locking a file4010 when LFS is enabled4011 locks the file4012 locks the file in LFS4013 when LFS is not enabled4014 locks the file4015 doesn't lock the file in LFS4016 when unlocking a file4017 when LFS is enabled4018 unlocks the file4019 unlocks the file in LFS4020 when LFS is not enabled4021 unlocks the file4022Admin::ApplicationSettingsController4023 PUT #update4024 updates the EE specific application settings4025 updates the default_project_creation for string value4026 mirror settings4027 behaves like settings for licensed features4028 does not update settings when licesed feature is not available4029 updates settings when the feature is available4030 external policy classification settings4031 behaves like settings for licensed features4032 does not update settings when licesed feature is not available4033 updates settings when the feature is available4034 additional email footer4035 behaves like settings for licensed features4036 does not update settings when licesed feature is not available4037 updates settings when the feature is available4038Reset namespace pipeline minutes4039 for user namespace4040 reset pipeline minutes button is visible4041 when namespace has namespace statistics4042 resets pipeline minutes4043 when resetting pipeline minutes fails4044 renders edit page with an error4045 when creating a new group4046 does not display reset pipeline minutes callout4047 for group namespace4048 reset pipeline minutes button is visible4049 when namespace has namespace statistics4050 resets pipeline minutes4051 when resetting pipeline minutes fails4052 renders edit page with an error4053GeoNode4054 associations4055 should belong to oauth_application dependent => destroy4056 should have many geo_node_namespace_links4057 should have many namespaces through geo_node_namespace_links4058 validations4059 should validate that :selective_sync_type is either ‹nil›, ‹"namespaces"›, or ‹"shards"›4060 default values4061 attribute: :url, value: "http://localhost/"4062 should eq "http://localhost/"4063 attribute: :primary, value: false4064 should eq false4065 attribute: :repos_max_capacity, value: 254066 should eq 254067 attribute: :files_max_capacity, value: 104068 should eq 104069 prevent locking yourself out4070 does not accept adding a non primary node with same details as current_node4071 dependent models and attributes for GeoNode4072 on create4073 saves a corresponding oauth application if it is a secondary node4074 when is a primary node4075 has no oauth_application4076 persists current clone_url_prefix4077 cache expiration4078 expires cache when saved4079 expires cache when removed4080 #repair4081 creates an oauth application for a Geo secondary node4082 #current?4083 returns true when node is the current node4084 returns false when node is not the current node4085 #uri4086 when all fields are filled4087 returns an URI object4088 includes schema, host, port and relative_url_root with a terminating /4089 when required fields are not filled4090 returns an URI object4091 #url4092 returns a string4093 includes schema home port and relative_url with a terminating /4094 defaults to existing HTTPS and relative URL with a terminating / if present4095 #url=4096 sets schema field based on url4097 sets host field based on url4098 sets port field based on specified by url4099 when unspecified ports4100 sets port 80 when http and no port is specified4101 sets port 443 when https and no port is specified4102 #geo_transfers_url4103 returns api url based on node uri4104 #geo_status_url4105 returns api url based on node uri4106 #snapshot_url4107 returns snapshot URL based on node URI4108 adds ?wiki=1 to the snapshot URL when the repository is a wiki4109 #find_or_build_status4110 returns a new status4111 #oauth_callback_url4112 returns oauth callback url based on node uri4113 returns url that matches rails url_helpers generated one4114 #oauth_logout_url4115 returns oauth logout url based on node uri4116 returns url that matches rails url_helpers generated one4117 #missing_oauth_application?4118 returns false when present4119 returns true when it is not present4120 on a primary node4121 returns false4122 #projects_include?4123 returns true without selective sync4124 selective sync by namespaces4125 returns true when project belongs to one of the namespaces4126 returns false when project does not belong to one of the namespaces4127 selective sync by shards4128 returns true when project belongs to one of the namespaces4129 returns false when project does not belong to one of the namespaces4130 #projects4131 returns all projects without selective sync4132 returns projects that belong to the namespaces with selective sync by namespace4133 returns projects that belong to the shards with selective sync by shard4134 returns nothing if an unrecognised selective sync type is used4135 #selective_sync?4136 returns true when selective sync is by namespaces4137 returns true when selective sync is by shards4138 returns false when selective sync is disabled4139Projects::ApproversController4140 #destroy4141 on a merge request4142 when the user cannot update approvers because they do not have access4143 returns a 4044144 does not destroy any approvers4145 when the user cannot update approvers because of the project setting4146 returns a 4044147 does not destroy any approvers4148 when the user can update approvers4149 destroys the provided approver4150 on a project4151 when the user cannot update approvers because they do not have access4152 returns a 4044153 does not destroy any approvers4154 when the user can update approvers4155 destroys the provided approver4156Projects::UpdateService#execute4157 repository mirror4158 when licensed4159 updates the correct attributes4160 when unlicensed4161 does not update mirror attributes4162 audit events4163 #name4164 does not log audit event if project operation fails4165 if operation succeed4166 logs an audit event if operation succeed4167 logs the project info4168 #path4169 does not log audit event if project operation fails4170 if operation succeed4171 logs an audit event if operation succeed4172 logs the project info4173 #visibility4174 does not log audit event if project operation fails4175 if operation succeed4176 logs an audit event if operation succeed4177 logs the project info4178Geo::RepositoryVerification::Primary::ShardWorker4179 #perform4180 performs Geo::RepositoryVerification::Primary::SingleWorker for each project4181 performs Geo::RepositoryVerification::Primary::SingleWorker for verified projects updated recently4182 performs Geo::RepositoryVerification::Primary::SingleWorker for projects missing repository verification4183 performs Geo::RepositoryVerification::Primary::SingleWorker for projects missing wiki verification4184 does not perform Geo::RepositoryVerification::Primary::SingleWorker when shard becomes unhealthy4185 does not perform Geo::RepositoryVerification::Primary::SingleWorker when not running on a primary4186 does not schedule jobs when number of scheduled jobs exceeds capacity4187 does not perform Geo::RepositoryVerification::Primary::SingleWorker for projects on unhealthy shards4188 resource loading4189 handles multiple batches of projects needing verification4190 handles multiple batches of projects needing verification, skipping failed repos4191ProjectPolicy4192 admin_mirror4193 with remote mirror setting enabled4194 with admin4195 should be allowed :admin_mirror4196 with owner4197 should be allowed :admin_mirror4198 with developer4199 should be disallowed :admin_mirror4200 with remote mirror setting disabled4201 with admin4202 should be allowed :admin_mirror4203 with owner4204 should be disallowed :admin_mirror4205 with remote mirrors feature disabled4206 with admin4207 should be disallowed :admin_mirror4208 with owner4209 should be disallowed :admin_mirror4210 with remote mirrors feature enabled4211 with admin4212 should be allowed :admin_mirror4213 with owner4214 should be allowed :admin_mirror4215 reading a project4216 allows access when a user has read access to the repo4217 never checks the external service4218 with an external authorization service4219 allows access when the external service allows it4220 does not check the external service for admins and allows access4221 allows auditors4222 prevents all but seeing a public project in a list when access is denied4223 passes the full path to external authorization for logging purposes4224Display system header and footer bar4225 when authenticated4226 when system header and footer are not configured4227 behaves like system header is not configured4228 does not show system header4229 behaves like system footer is not configured4230 does not show system footer4231 when only system header is defined4232 behaves like system header is configured4233 shows system header4234 shows the correct content4235 behaves like system footer is not configured4236 does not show system footer4237 when only system footer is defined4238 behaves like system header is not configured4239 does not show system header4240 behaves like system footer is configured4241 shows system footer4242 shows the correct content4243 when system header and footer are defined4244 behaves like system header is configured4245 shows system header4246 shows the correct content4247 behaves like system footer is configured4248 shows system footer4249 shows the correct content4250 when not authenticated4251 when system header and footer are not configured4252 behaves like system header is not configured4253 does not show system header4254 behaves like system footer is not configured4255 does not show system footer4256 when only system header is defined4257 behaves like system header is configured4258 shows system header4259 shows the correct content4260 behaves like system footer is not configured4261 does not show system footer4262 when only system footer is defined4263 behaves like system header is not configured4264 does not show system header4265 behaves like system footer is configured4266 shows system footer4267 shows the correct content4268 when system header and footer are defined4269 behaves like system header is configured4270 shows system header4271 shows the correct content4272 behaves like system footer is configured4273 shows system footer4274 shows the correct content4275Geo::FileRegistryRemovalService4276 #execute4277 delegates log_error to the Geo logger4278 with LFS object4279 behaves like removes4280 file from disk4281 registry when file was deleted successfully4282 migrated to object storage4283 behaves like removes4284 file from disk4285 registry when file was deleted successfully4286 with job artifact4287 behaves like removes artifact4288 file from disk4289 registry when file was deleted successfully4290 migrated to object storage4291 behaves like removes artifact4292 file from disk4293 registry when file was deleted successfully4294 with avatar4295 behaves like removes4296 file from disk4297 registry when file was deleted successfully4298 migrated to object storage4299 behaves like removes4300 file from disk4301 registry when file was deleted successfully4302 with attachment4303 behaves like removes4304 file from disk4305 registry when file was deleted successfully4306 migrated to object storage4307 behaves like removes4308 file from disk4309 registry when file was deleted successfully4310 with file4311 behaves like removes4312 file from disk4313 registry when file was deleted successfully4314 migrated to object storage4315 behaves like removes4316 file from disk4317 registry when file was deleted successfully4318 with namespace_file4319 behaves like removes4320 file from disk4321 registry when file was deleted successfully4322 migrated to object storage4323 behaves like removes4324 file from disk4325 registry when file was deleted successfully4326 with personal_file4327 behaves like removes4328 file from disk4329 registry when file was deleted successfully4330 migrated to object storage4331 behaves like removes4332 file from disk4333 registry when file was deleted successfully4334Projects::ApproverGroupsController4335 #destroy4336 on a merge request4337 when the user cannot update approvers because they do not have access4338 returns a 4044339 does not destroy any approver groups4340 when the user cannot update approvers because of the project setting4341 returns a 4044342 does not destroy any approver groups4343 when the user can update approvers4344 destroys the provided approver group4345 on a project4346 when the user cannot update approvers because they do not have access4347 returns a 4044348 does not destroy any approver groups4349 when the user can update approvers4350 destroys the provided approver4351Edit group settings4352 with webhook feature enabled4353 shows the menu item4354 with webhook feature enabled4355 shows the menu item4356 with project_creation_level feature enabled4357 shows the selection menu4358 with project_creation_level feature disabled4359 shows the selection menu4360 Member Lock setting4361 without a license key4362 is not visible4363 with a license key4364 is visible4365 when current user is not the Owner4366 is not visible4367Projects::DestroyService4368 when project is a mirror4369 decrements capacity if mirror was scheduled4370 when running on a primary node4371 logs an event to the Geo event log4372 does not log event to the Geo log if project deletion fails4373 audit events4374 does not log audit event if project operation fails4375 if operation succeed4376 logs an audit event if operation succeed4377 logs the project info4378 system hooks exception4379 logs an audit event4380User creates issue4381 with weight set4382 creates issue4383Groups > Contribution Analytics4384 visit Contribution Analytics page for group4385 displays Contribution Analytics4386RepositoryUpdateMirrorWorker4387 #perform4388 sets status as finished when update mirror service executes successfully4389 sets status as failed when update mirror service executes with errors4390 marks mirror as failed when an error occurs4391 with another worker already running4392 returns nil4393 when worker was reset without cleanup4394 sets status as finished when update mirror service executes successfully4395 reschedule mirrors4396 does not perform UpdateAllMirrorsWorker when we cannot obtain the lease4397 does not perform UpdateAllMirrorsWorker when the lease already exists4398 when we obtain the lease4399 performs UpdateAllMirrorsWorker when reschedule_immediately? returns true4400 does not perform UpdateAllMirrorsWorker when reschedule_immediately? returns false4401AdminEmailsWorker4402 recipients4403 sending emails to members of a group only4404 sends email to subscribed users4405 sending emails to members of a project only4406 sends email to subscribed users4407 sending emails to users directly4408 sends email to subscribed users4409ProjectWiki4410 searches wiki page4411API::Geo4412 GET /geo/transfers/attachment/14413 responds with 401 with invalid auth header4414 attachment file exists4415 responds with 200 with X-Sendfile4416 attachment does not exist4417 responds with 4044418 GET /geo/transfers/avatar/14419 responds with 401 with invalid auth header4420 avatar file exists4421 responds with 200 with X-Sendfile4422 avatar does not exist4423 responds with 4044424 GET /geo/transfers/file/14425 responds with 401 with invalid auth header4426 when the Upload record exists4427 when the file exists4428 responds with 200 with X-Sendfile4429 file does not exist4430 responds with 404 and a specific geo code4431 when the Upload record does not exist4432 responds with 4044433 GET /geo/transfers/lfs/14434 responds with 401 with invalid auth header4435 LFS object exists4436 file exists4437 responds with 200 with X-Sendfile4438 file does not exist4439 responds with 404 and a specific geo code4440 LFS object does not exist4441 responds with 4044442 GET /geo/status4443 responds with 401 with invalid auth header4444 responds with 401 when the db_key_base is wrong4445 when requesting secondary node with valid auth header4446 responds with 2004447 when requesting primary node with valid auth header4448 responds with 2004449API::V3::LdapGroupLinks4450 DELETE /groups/:id/ldap_group_links/:cn4451 when unauthenticated4452 returns authentication error4453 when a less priviledged user4454 does not remove the LDAP group link4455 when owner of the group4456 removes ldap group link4457 returns 404 if LDAP group cn not used for a LDAP group link4458 DELETE /groups/:id/ldap_group_links/:provider/:cn4459 when unauthenticated4460 returns authentication error4461 when a less priviledged user4462 does not remove the LDAP group link4463 when owner of the group4464 returns 404 if LDAP group cn not used for a LDAP group link for the specified provider4465 removes ldap group link4466label issues4467 adds a new group label from sidebar4468Groups::GroupMembersController4469 with external authorization enabled4470 GET #index4471 is successful4472 POST #create4473 is successful4474 PUT #update4475 is successful4476 DELETE #destroy4477 is successful4478 POST #destroy4479 is successful4480 POST #approve_request_access4481 is successful4482 DELETE #leave4483 is successful4484 POST #resend_invite4485 is successful4486 POST #override4487 is successful4488shared/issuable/_approvals.html.haml4489 has no approvers4490 shows empty approvers list4491 can override approvers4492 shows suggested approvers4493 shows select approvers field4494 shows select approver groups field4495 can not override approvers4496 hides suggested approvers4497 hides select approvers field4498 hides select approver groups field4499 has approvers4500 shows approver in table4501 can override approvers4502 shows remove button for approver4503 can not override approvers4504 hides remove button4505Issue4506 searches issues4507 returns json with all needed elements4508 behaves like no results when the user cannot read cross project4509 returns the record if a single project was passed4510 does not return anything when trying to search cross project4511Group routing routing4512 subgroup "boards"4513 shows group show page4514 shows boards index page4515 legacy redirection4516 analytics4517 behaves like redirecting a legacy path4518 redirects /groups/complex.group-namegit/analytics to /groups/complex.group-namegit/-/analytics when the resource does not exist4519 does not redirect /groups/complex.group-namegit/analytics to /groups/complex.group-namegit/-/analytics when the resource exists4520 boards4521 behaves like redirecting a legacy path4522 redirects /groups/complex.group-namegit/boards to /groups/complex.group-namegit/-/boards when the resource does not exist4523 does not redirect /groups/complex.group-namegit/boards to /groups/complex.group-namegit/-/boards when the resource exists4524 ldap4525 behaves like redirecting a legacy path4526 redirects /groups/complex.group-namegit/ldap to /groups/complex.group-namegit/-/ldap when the resource does not exist4527 does not redirect /groups/complex.group-namegit/ldap to /groups/complex.group-namegit/-/ldap when the resource exists4528 ldap_group_links4529 behaves like redirecting a legacy path4530 redirects /groups/complex.group-namegit/ldap_group_links to /groups/complex.group-namegit/-/ldap_group_links when the resource does not exist4531 does not redirect /groups/complex.group-namegit/ldap_group_links to /groups/complex.group-namegit/-/ldap_group_links when the resource exists4532 notification_setting4533 behaves like redirecting a legacy path4534 redirects /groups/complex.group-namegit/notification_setting to /groups/complex.group-namegit/-/notification_setting when the resource does not exist4535 does not redirect /groups/complex.group-namegit/notification_setting to /groups/complex.group-namegit/-/notification_setting when the resource exists4536 audit_events4537 behaves like redirecting a legacy path4538 redirects /groups/complex.group-namegit/audit_events to /groups/complex.group-namegit/-/audit_events when the resource does not exist4539 does not redirect /groups/complex.group-namegit/audit_events to /groups/complex.group-namegit/-/audit_events when the resource exists4540 pipeline_quota4541 behaves like redirecting a legacy path4542 redirects /groups/complex.group-namegit/pipeline_quota to /groups/complex.group-namegit/-/pipeline_quota when the resource does not exist4543 does not redirect /groups/complex.group-namegit/pipeline_quota to /groups/complex.group-namegit/-/pipeline_quota when the resource exists4544 hooks4545 behaves like redirecting a legacy path4546 redirects /groups/complex.group-namegit/hooks to /groups/complex.group-namegit/-/hooks when the resource does not exist4547 does not redirect /groups/complex.group-namegit/hooks to /groups/complex.group-namegit/-/hooks when the resource exists4548 multiple redirects4549 follows multiple redirects4550 redirects when the nested group does not exist4551 does not redirect when the nested group exists4552IssueLinks::DestroyService4553 #execute4554 when successfully removes an issue link4555 removes related issue4556 creates notes4557 returns success message4558 when failing to remove an issue link4559 does not remove relation4560 does not create notes4561 returns error message4562Issues::MoveService4563 #rewrite_epic_issue4564 issue assigned to epic4565 updates epic issue reference4566 ignores epic issue reference if user can not update the epic4567KubernetesService4568 when user configured kubernetes from Integration > Kubernetes4569 behaves like same behavior between KubernetesService and Platform::Kubernetes4570 #rollout_status4571 with valid deployments4572 creates a matching RolloutStatus4573 with empty list of deployments4574 creates a matching RolloutStatus4575 not yet loaded deployments4576 creates a matching RolloutStatus4577 when user configured kubernetes from CI/CD > Clusters4578 behaves like same behavior between KubernetesService and Platform::Kubernetes4579 #rollout_status4580 with valid deployments4581 creates a matching RolloutStatus4582 with empty list of deployments4583 creates a matching RolloutStatus4584 not yet loaded deployments4585 creates a matching RolloutStatus4586EpicIssues::ListService4587 #execute4588 when epics feature is disabled4589 returns an empty array4590 when epics feature is enabled4591 owner can see all issues and destroy their associations4592 returns related issues JSON4593 user can see only some issues4594 returns related issues JSON4595Search::GroupService4596 elasticsearch4597 finding projects by name4598 in parent group4599 should contain exactly #<Project id:2079 group411/group410/inner_project_name_1>, #<Project id:2080 group411/group410/inner_project_name_2>, and #<Project id:2081 group411/outer_project_name>4600 in subgroup4601 should contain exactly #<Project id:2085 group413/group412/inner_project_name_1> and #<Project id:2086 group413/group412/inner_project_name_2>4602Gitlab::Database::LoadBalancing::LoadBalancer4603 #read4604 yields a connection for a read4605 marks hosts that are offline4606 retries a query in the event of a serialization failure4607 retries every host at most 3 times when a query conflict is raised4608 uses the primary if no secondaries are available4609 #read_write4610 yields a connection for a write4611 uses a retry with exponential backoffs4612 #host4613 returns the secondary host to use4614 stores the host in a thread-local variable4615 #release_host4616 releases the host and its connection4617 #release_primary_connection4618 releases the connection to the primary4619 #primary_write_location4620 returns a String4621 raises an error if the write location could not be retrieved4622 #all_caught_up?4623 returns true if all hosts caught up to the write location4624 returns false if a host has not yet caught up4625 #retry_with_backoff4626 returns the value returned by the block4627 re-raises errors not related to database connections4628 retries the block when a connection error is raised4629 re-raises the connection error if the retries did not succeed4630 #connection_error?4631 returns true for a connection error4632 returns true for a wrapped connection error4633 returns true for a wrapped connection error from a view4634 returns true for deeply wrapped/nested errors4635 returns true for an invalid encoding error4636 returns false for errors not related to database connections4637 #serialization_failure?4638 returns for a serialization error4639 returns true for a wrapped error4640AutocompleteController4641 GET users4642 project members4643 GET #users that can push to protected branches4644 returns authorized users4645 GET #users that can push code4646 returns authorized users4647 GET #users that can push to protected branches, including the current user4648 returns authorized users4649 groups4650 while fetching all groups belonging to a project4651 returns a single group4652 while fetching all groups belonging to a project the current user cannot access4653 should be not found4654 while fetching all groups belonging to an invalid project ID4655 should be not found4656Geo::HashedStorageMigrationService4657 #execute4658 does not move project backed by hashed storage4659 project backed by legacy storage4660 moves the project repositories4661 raises an error when project repository can not be moved4662 raises an error when wiki repository can not be moved4663 #async_execute4664 starts the worker4665 returns job id4666ProjectMirrorEntity4667 pull mirror4668 password authentication4669 represents the pull mirror4670 SSH public-key authentication4671 represents the pull mirror4672 push mirror46732018-05-02T15:29:31.745Z 130 TID-bla08 INFO: Removing remote remote_mirror_45 from project 210346742018-05-02T15:29:31.750Z 130 TID-bla08 ERROR: Could not remove remote remote_mirror_45 from project 21034675 represents the push mirror4676Merge request > User sees approval widget4677 when merge when discussions resolved is active4678 does not show checking ability text4679Gitlab::Ci::External::File::Local4680 #valid?4681 when is a valid local path4682 should return true4683 when is not a valid local path4684 should return false4685 when is not a yaml file4686 should return false4687 #content4688 with a a valid file4689 should return the content of the file4690 with an invalid file4691 should be nil4692 #error_message4693 should return an error message4694Geo::RepositoryUpdatedEvent4695 relationships4696 should belong to project4697 validations4698 should validate that :project cannot be empty/falsy4699 #source4700 should define :source as an enum with [:repository, :wiki] and store the value in a column with an integer type4701Admin sends notification47022nd Try error in ./ee/spec/features/admin/admin_sends_notification_spec.rb:17:4703 RSpec::Core::MultipleExceptionError 4704RSpec::Retry: 2nd try ./ee/spec/features/admin/admin_sends_notification_spec.rb:174705/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: already initialized constant NOTIFICATION_TEXT4706/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: previous definition of NOTIFICATION_TEXT was here47073rd Try error in ./ee/spec/features/admin/admin_sends_notification_spec.rb:17:4709expected: 14710 got: 54711(compared using eql?)4713RSpec::Retry: 3rd try ./ee/spec/features/admin/admin_sends_notification_spec.rb:174714/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: already initialized constant NOTIFICATION_TEXT4715/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: previous definition of NOTIFICATION_TEXT was here4716RSpec::Retry: 4th try ./ee/spec/features/admin/admin_sends_notification_spec.rb:174717/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: already initialized constant NOTIFICATION_TEXT4718/builds/gitlab-org/gitlab-ee/ee/spec/features/admin/admin_sends_notification_spec.rb:19: warning: previous definition of NOTIFICATION_TEXT was here4719 sends notification (FAILED - 1)4720 HTML screenshot: file:///builds/gitlab-org/gitlab-ee/tmp/capybara/screenshot_2018-05-02-15-29-46.389.html4721 Image screenshot: file:///builds/gitlab-org/gitlab-ee/tmp/capybara/screenshot_2018-05-02-15-29-46.389.png4722Knapsack report was generated. Preview:4723{4724 "ee/spec/models/burndown_spec.rb": 375.0898690223694,4725 "ee/spec/lib/gitlab/elastic/search_results_spec.rb": 89.7494866847992,4726 "ee/spec/controllers/projects/merge_requests_controller_spec.rb": 48.041356325149536,4727 "ee/spec/elastic_integration/global_search_spec.rb": 34.76005482673645,4728 "ee/spec/features/issues/filtered_search/dropdown_weight_spec.rb": 37.158318519592285,4729 "ee/spec/policies/group_policy_spec.rb": 26.143836498260498,4730 "ee/spec/features/issues/form_spec.rb": 26.027339935302734,4731 "ee/spec/features/search/elastic/project_search_spec.rb": 24.67595148086548,4732 "ee/spec/features/boards/sidebar_spec.rb": 36.38293981552124,4733 "ee/spec/features/merge_requests/squash_spec.rb": 27.503933429718018,4734 "ee/spec/features/merge_request/user_approves_spec.rb": 15.332407474517822,4735 "ee/spec/features/merge_request/user_sets_approvers_spec.rb": 22.247653484344482,4736 "ee/spec/models/merge_request_spec.rb": 12.335455656051636,4737 "ee/spec/features/projects/new_project_spec.rb": 14.702252864837646,4738 "ee/spec/features/projects/merge_requests/user_approves_merge_request_spec.rb": 12.743454694747925,4739 "ee/spec/features/issues/service_desk_spec.rb": 16.090914726257324,4740 "ee/spec/controllers/boards/issues_controller_spec.rb": 9.030691385269165,4741 "ee/spec/features/projects/settings/merge_requests_settings_spec.rb": 9.864329099655151,4742 "ee/spec/services/geo/repository_sync_service_spec.rb": 8.2549147605896,4743 "ee/spec/controllers/groups/epic_issues_controller_spec.rb": 7.508012533187866,4744 "ee/spec/workers/elastic_indexer_worker_spec.rb": 11.78231406211853,4745 "ee/spec/features/discussion_comments/epic_spec.rb": 13.109373092651367,4746 "ee/spec/services/projects/update_remote_mirror_service_spec.rb": 7.65458607673645,4747 "ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 7.766350984573364,4748 "ee/spec/controllers/groups/analytics_controller_spec.rb": 6.715375900268555,4749 "ee/spec/services/projects/create_service_spec.rb": 65.56358432769775,4750 "ee/spec/features/admin/admin_geo_nodes_spec.rb": 8.114001750946045,4751 "ee/spec/mailers/notify_spec.rb": 8.18470549583435,4752 "ee/spec/features/projects/push_rules_spec.rb": 9.417293071746826,4753 "ee/spec/models/ci/build_spec.rb": 7.450213432312012,4754 "ee/spec/models/remote_mirror_spec.rb": 5.322330713272095,4755 "ee/spec/helpers/push_rules_helper_spec.rb": 9.464516162872314,4756 "ee/spec/features/projects/services/user_activates_github_spec.rb": 6.881407976150513,4757 "ee/spec/services/epic_issues/update_service_spec.rb": 5.928539276123047,4758 "ee/spec/features/search/elastic/global_search_spec.rb": 7.547546148300171,4759 "ee/spec/features/groups/group_roadmap_spec.rb": 6.97889518737793,4760 "ee/spec/requests/api/project_push_rule_spec.rb": 4.676842212677002,4761 "ee/spec/features/admin/admin_audit_logs_spec.rb": 6.188428163528442,4762 "ee/spec/requests/api/project_mirror_spec.rb": 5.543070077896118,4763 "ee/spec/features/epics/epic_labels_spec.rb": 5.999692440032959,4764 "ee/spec/controllers/projects/issues_controller_spec.rb": 5.091524362564087,4765 "ee/spec/finders/epics_finder_spec.rb": 5.445454120635986,4766 "ee/spec/features/groups/pipeline_quota_spec.rb": 5.416158437728882,4767 "ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb": 4.72404146194458,4768 "ee/spec/features/projects/milestones/milestone_spec.rb": 5.303261995315552,4769 "ee/spec/models/project_import_data_spec.rb": 8.098426342010498,4770 "ee/spec/lib/gitlab/chat/command_spec.rb": 4.352232933044434,4771 "ee/spec/requests/api/merge_request_approvals_spec.rb": 4.181734085083008,4772 "ee/spec/controllers/projects_controller_spec.rb": 4.483926296234131,4773 "ee/spec/controllers/projects/push_rules_controller_spec.rb": 4.404677391052246,4774 "ee/spec/services/issue_links/list_service_spec.rb": 5.341504812240601,4775 "ee/spec/services/ee/notification_service_spec.rb": 4.416101694107056,4776 "ee/spec/features/merge_request/user_merges_with_push_rules_spec.rb": 4.391493797302246,4777 "ee/spec/features/epics/new_epic_spec.rb": 4.650759220123291,4778 "ee/spec/features/projects/pipelines/pipeline_spec.rb": 4.214967966079712,4779 "ee/spec/models/concerns/ee/deployment_platform_spec.rb": 3.9233808517456055,4780 "ee/spec/models/namespace_spec.rb": 4.11854100227356,4781 "ee/spec/features/epics/epics_list_spec.rb": 4.43137264251709,4782 "ee/spec/models/repository_spec.rb": 3.620518922805786,4783 "ee/spec/requests/projects/issue_links_controller_spec.rb": 3.371831178665161,4784 "ee/spec/requests/api/ldap_group_links_spec.rb": 3.6920480728149414,4785 "ee/spec/services/ci/register_job_service_spec.rb": 3.406644105911255,4786 "ee/spec/models/project_services/github_service_spec.rb": 3.6870644092559814,4787 "ee/spec/policies/merge_request_policy_spec.rb": 4.605401515960693,4788 "ee/spec/services/audit_event_service_spec.rb": 3.2668185234069824,4789 "ee/spec/models/project_services/jenkins_service_spec.rb": 3.2317121028900146,4790 "ee/spec/services/boards/issues/list_service_spec.rb": 3.6131532192230225,4791 "ee/spec/services/merge_requests/merge_service_spec.rb": 3.05918025970459,4792 "ee/spec/requests/projects/path_locks_controller_spec.rb": 2.5278725624084473,4793 "ee/spec/controllers/admin/application_settings_controller_spec.rb": 2.9629557132720947,4794 "ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb": 2.866290330886841,4795 "ee/spec/models/geo_node_spec.rb": 3.097580671310425,4796 "ee/spec/controllers/projects/approvers_controller_spec.rb": 2.849379777908325,4797 "ee/spec/services/projects/update_service_spec.rb": 2.219879150390625,4798 "ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb": 2.726644992828369,4799 "ee/spec/policies/project_policy_spec.rb": 2.7903425693511963,4800 "ee/spec/features/display_system_header_and_footer_bar_spec.rb": 2.744051694869995,4801 "ee/spec/services/geo/file_registry_removal_service_spec.rb": 3.023852825164795,4802 "ee/spec/controllers/projects/approver_groups_controller_spec.rb": 2.725897789001465,4803 "ee/spec/features/groups/group_settings_spec.rb": 2.6311471462249756,4804 "ee/spec/services/projects/destroy_service_spec.rb": 2.417842388153076,4805 "ee/spec/features/projects/issues/user_creates_issue_spec.rb": 3.061816453933716,4806 "ee/spec/features/groups/analytics_spec.rb": 2.72245192527771,4807 "ee/spec/workers/repository_update_mirror_worker_spec.rb": 3.163198947906494,4808 "ee/spec/workers/admin_emails_worker_spec.rb": 2.4495837688446045,4809 "ee/spec/models/concerns/elastic/project_wiki_spec.rb": 2.2062017917633057,4810 "ee/spec/requests/api/geo_spec.rb": 1.9630680084228516,4811 "ee/spec/requests/api/v3/ldap_group_links_spec.rb": 1.8313560485839844,4812 "ee/spec/features/boards/group_boards/user_edits_issues_spec.rb": 2.8028085231781006,4813 "ee/spec/controllers/groups/group_members_controller_spec.rb": 2.107511281967163,4814 "ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb": 1.7978427410125732,4815 "ee/spec/models/concerns/elastic/issue_spec.rb": 1.9382903575897217,4816 "ee/spec/routing/group_routing_spec.rb": 2.0223007202148438,4817 "ee/spec/services/issue_links/destroy_service_spec.rb": 1.9899778366088867,4818 "ee/spec/services/ee/issues/move_service_spec.rb": 1.8424091339111328,4819 "ee/spec/models/project_services/kubernetes_service_spec.rb": 1.783569574356079,4820 "ee/spec/services/epic_issues/list_service_spec.rb": 1.6197073459625244,4821 "ee/spec/services/search/group_service_spec.rb": 1.7559125423431396,4822 "ee/spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb": 1.7773735523223877,4823 "ee/spec/controllers/autocomplete_controller_spec.rb": 1.5352764129638672,4824 "ee/spec/services/geo/hashed_storage_migration_service_spec.rb": 1.167602777481079,4825 "ee/spec/serializers/project_mirror_entity_spec.rb": 1.6572282314300537,4826 "ee/spec/features/merge_request/user_sees_approval_widget_spec.rb": 1.688849925994873,4827 "ee/spec/lib/gitlab/ci/external/file/local_spec.rb": 0.9615917205810547,4828 "ee/spec/models/geo/repository_updated_event_spec.rb": 0.01826167106628418,4829 "ee/spec/features/admin/admin_sends_notification_spec.rb": 10.9165592193603524830}4831Knapsack global time execution for tests: 21m 18s4832Pending: (Failures listed here are expected and do not affect your suite's status)4833 1) API::LdapGroupLinks POST /groups/:id/ldap_group_links when owner of the group returns ok and add ldap group link even if no provider specified4834 # Temporarily skipped with xit4835 # ./ee/spec/requests/api/ldap_group_links_spec.rb:554836Failures:4837 1) Admin sends notification sends notification4838 Failure/Error: expect(emails.count).to eql(group.users.count)4839 expected: 14840 got: 74841 (compared using eql?)4842 # ./ee/spec/features/admin/admin_sends_notification_spec.rb:47:in `block (2 levels) in <top (required)>'4843Finished in 22 minutes 17 seconds (files took 31.51 seconds to load)48441439 examples, 1 failure, 1 pending4845Failed examples:4846rspec ./ee/spec/features/admin/admin_sends_notification_spec.rb:17 # Admin sends notification sends notification4847! Generating reports is disabled. To enable it, please set the `FLAKY_RSPEC_GENERATE_REPORT=1` !4849$ date4850Wed May 2 15:30:02 UTC 20184852coverage/: found 5 matching files 4853knapsack/: found 6 matching files 4854rspec_flaky/: found 2 matching files 4855tmp/capybara/: found 9 matching files 4856Uploading artifacts to coordinator... ok id=66076779 responseStatus=201 Created token=ZxyoNQBK4857ERROR: Job failed: exit code 1