rspec-pg 24 28
Passed Started
by
@vsizov

Valery Sizov
1Running with gitlab-runner 10.7.0 (7c273476)2 on docker-auto-scale-com 1d6b581d3Using 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 ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.7-golang-1.9-git-2.17-chrome-65.0-node-8.x-yarn-1.2-postgresql-9.6 ...12Using docker image sha256:fdb36b9f5c89bf331a5884b2bc013addfeac245b65b8051a0e6652fb6d46f8a9 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.7-golang-1.9-git-2.17-chrome-65.0-node-8.x-yarn-1.2-postgresql-9.6 ... 13 Running on runner-1d6b581d-project-278964-concurrent-0 via runner-1d6b581d-gsrm-1525269350-975f8151...
00:01
14 Fetching changes for 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching with git depth set to 20...
00:09
15Removing .gitlab_shell_secret16Removing .gitlab_workhorse_secret17Removing .yarn-cache/18Removing config/database.yml19Removing config/database_geo.yml20Removing config/gitlab.yml21Removing config/redis.cache.yml22Removing config/redis.queues.yml23Removing config/redis.shared_state.yml24Removing config/resque.yml25Removing config/secrets.yml26Removing coverage/27Removing knapsack/28Removing log/api_json.log29Removing log/application.log30Removing log/gitaly-test.log31Removing log/grpc.log32Removing log/repocheck.log33Removing log/test_json.log34Removing node_modules/35Removing public/assets/36Removing rspec_flaky/37Removing shared/tmp/38Removing tmp/tests/39Removing vendor/ruby/40HEAD is now at 6c0c85d1 Move the push_to_empty_repo to the user_access spec42 * [new branch] 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching -> origin/5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching43Checking out 73af10c1 as 5841-geo-basesyncservice-should-prune-the-geo-temporary-directory-before-fetching...44Skipping Git submodules setup46Downloading cache.zip from http://runners-cache-3-internal.gitlab.com:444/runner/project/278964/ruby-2.3.7-with-yarn 47Successfully extracted cache49Downloading artifacts from coordinator... ok id=66066850 responseStatus=200 OK token=gcRYWULP50Downloading artifacts for compile-assets (66066853)...51Downloading artifacts from coordinator... ok id=66066853 responseStatus=200 OK token=ZUdCpByW52Downloading artifacts for setup-test-env (66066854)...53Downloading artifacts from coordinator... ok id=66066854 responseStatus=200 OK token=S7SxDrPM54WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 56Bundler version 1.16.157$ date58Wed May 2 14:38:54 UTC 201859$ source scripts/utils.sh60$ date61Wed May 2 14:38:54 UTC 201862$ source scripts/prepare_build.sh63The Gemfile's dependencies are satisfied64Successfully installed knapsack-1.16.0651 gem installed66NOTICE: database "gitlabhq_test" does not exist, skipping67DROP DATABASE68CREATE DATABASE69CREATE ROLE70GRANT71-- enable_extension("plpgsql")72 -> 0.0140s73-- enable_extension("pg_trgm")74 -> 0.0184s75-- create_table("abuse_reports", {:force=>:cascade})76 -> 0.0138s77-- create_table("appearances", {:force=>:cascade})78 -> 0.0096s79-- create_table("application_settings", {:force=>:cascade})80 -> 0.0560s81-- create_table("approvals", {:force=>:cascade})82 -> 0.0090s83-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})84 -> 0.0066s85-- create_table("approver_groups", {:force=>:cascade})86 -> 0.0096s87-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})88 -> 0.0061s89-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})90 -> 0.0063s91-- create_table("approvers", {:force=>:cascade})92 -> 0.0094s93-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})94 -> 0.0065s95-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})96 -> 0.0060s97-- create_table("audit_events", {:force=>:cascade})98 -> 0.0097s99-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})100 -> 0.0066s101-- create_table("award_emoji", {:force=>:cascade})102 -> 0.0091s103-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})104 -> 0.0065s105-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})106 -> 0.0067s107-- create_table("badges", {:force=>:cascade})108 -> 0.0098s109-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})110 -> 0.0067s111-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})112 -> 0.0085s113-- create_table("board_assignees", {:force=>:cascade})114 -> 0.0069s115-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})116 -> 0.0065s117-- create_table("board_labels", {:force=>:cascade})118 -> 0.0073s119-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})120 -> 0.0061s121-- create_table("boards", {:force=>:cascade})122 -> 0.0097s123-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})124 -> 0.0069s125-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})126 -> 0.0057s127-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})128 -> 0.0060s129-- create_table("broadcast_messages", {:force=>:cascade})130 -> 0.0093s131-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})132 -> 0.0067s133-- create_table("chat_names", {:force=>:cascade})134 -> 0.0097s135-- 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})136 -> 0.0065s137-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})138 -> 0.0066s139-- create_table("chat_teams", {:force=>:cascade})140 -> 0.0094s141-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})142 -> 0.0060s143-- create_table("ci_build_trace_section_names", {:force=>:cascade})144 -> 0.0090s145-- 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})146 -> 0.0062s147-- create_table("ci_build_trace_sections", {:force=>:cascade})148 -> 0.0066s149-- 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})150 -> 0.0069s151-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})152 -> 0.0068s153-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})154 -> 0.0063s155-- create_table("ci_builds", {:force=>:cascade})156 -> 0.0113s157-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})158 -> 0.0065s159-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})160 -> 0.0058s161-- 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})162 -> 0.0057s163-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})164 -> 0.0060s165-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})166 -> 0.0057s167-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})168 -> 0.0056s169-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})170 -> 0.0055s171-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})172 -> 0.0055s173-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})174 -> 0.0054s175-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})176 -> 0.0052s177-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})178 -> 0.0054s179-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})180 -> 0.0062s181-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})182 -> 0.0060s183-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})184 -> 0.0058s185-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})186 -> 0.0065s187-- create_table("ci_builds_metadata", {:force=>:cascade})188 -> 0.0068s189-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})190 -> 0.0073s191-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})192 -> 0.0057s193-- create_table("ci_group_variables", {:force=>:cascade})194 -> 0.0095s195-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})196 -> 0.0058s197-- create_table("ci_job_artifacts", {:force=>:cascade})198 -> 0.0095s199-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})200 -> 0.0061s201-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})202 -> 0.0055s203-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})204 -> 0.0074s205-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})206 -> 0.0064s207-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})208 -> 0.0096s209-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})210 -> 0.0062s211-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})212 -> 0.0092s213-- 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})214 -> 0.0074s215-- create_table("ci_pipeline_schedules", {:force=>:cascade})216 -> 0.0106s217-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})218 -> 0.0069s219-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})220 -> 0.0062s221-- create_table("ci_pipeline_variables", {:force=>:cascade})222 -> 0.0099s223-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})224 -> 0.0065s225-- create_table("ci_pipelines", {:force=>:cascade})226 -> 0.0108s227-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})228 -> 0.0056s229-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})230 -> 0.0056s231-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})232 -> 0.0054s233-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})234 -> 0.0052s235-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})236 -> 0.0050s237-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})238 -> 0.0057s239-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})240 -> 0.0055s241-- create_table("ci_runner_projects", {:force=>:cascade})242 -> 0.0059s243-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})244 -> 0.0055s245-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})246 -> 0.0053s247-- create_table("ci_runners", {:force=>:cascade})248 -> 0.0128s249-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})250 -> 0.0061s251-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})252 -> 0.0072s253-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})254 -> 0.0064s255-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})256 -> 0.0062s257-- create_table("ci_sources_pipelines", {:force=>:cascade})258 -> 0.0064s259-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})260 -> 0.0058s261-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})262 -> 0.0067s263-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})264 -> 0.0062s265-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})266 -> 0.0060s267-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})268 -> 0.0061s269-- create_table("ci_stages", {:force=>:cascade})270 -> 0.0088s271-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})272 -> 0.0060s273-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})274 -> 0.0059s275-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})276 -> 0.0058s277-- create_table("ci_trigger_requests", {:force=>:cascade})278 -> 0.0092s279-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})280 -> 0.0059s281-- create_table("ci_triggers", {:force=>:cascade})282 -> 0.0090s283-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})284 -> 0.0054s285-- create_table("ci_variables", {:force=>:cascade})286 -> 0.0100s287-- 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})288 -> 0.0061s289-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})290 -> 0.0091s291-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})292 -> 0.0059s293-- create_table("cluster_projects", {:force=>:cascade})294 -> 0.0064s295-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})296 -> 0.0058s297-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})298 -> 0.0057s299-- create_table("cluster_providers_gcp", {:force=>:cascade})300 -> 0.0095s301-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})302 -> 0.0063s303-- create_table("clusters", {:force=>:cascade})304 -> 0.0102s305-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})306 -> 0.0057s307-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})308 -> 0.0069s309-- create_table("clusters_applications_helm", {:force=>:cascade})310 -> 0.0089s311-- create_table("clusters_applications_ingress", {:force=>:cascade})312 -> 0.0098s313-- create_table("clusters_applications_prometheus", {:force=>:cascade})314 -> 0.0094s315-- create_table("clusters_applications_runners", {:force=>:cascade})316 -> 0.0099s317-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})318 -> 0.0070s319-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})320 -> 0.0081s321-- create_table("container_repositories", {:force=>:cascade})322 -> 0.0089s323-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})324 -> 0.0056s325-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})326 -> 0.0060s327-- create_table("conversational_development_index_metrics", {:force=>:cascade})328 -> 0.0118s329-- create_table("deploy_keys_projects", {:force=>:cascade})330 -> 0.0069s331-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})332 -> 0.0057s333-- create_table("deploy_tokens", {:force=>:cascade})334 -> 0.0103s335-- 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})336 -> 0.0058s337-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})338 -> 0.0056s339-- create_table("deployments", {:force=>:cascade})340 -> 0.0095s341-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})342 -> 0.0056s343-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})344 -> 0.0054s345-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})346 -> 0.0052s347-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})348 -> 0.0082s349-- create_table("emails", {:force=>:cascade})350 -> 0.0101s351-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})352 -> 0.0061s353-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})354 -> 0.0067s355-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})356 -> 0.0074s357-- create_table("environments", {:force=>:cascade})358 -> 0.0110s359-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})360 -> 0.0067s361-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})362 -> 0.0062s363-- create_table("epic_issues", {:force=>:cascade})364 -> 0.0075s365-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})366 -> 0.0062s367-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})368 -> 0.0064s369-- create_table("epic_metrics", {:force=>:cascade})370 -> 0.0082s371-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})372 -> 0.0064s373-- create_table("epics", {:force=>:cascade})374 -> 0.0107s375-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})376 -> 0.0062s377-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})378 -> 0.0058s379-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})380 -> 0.0057s381-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})382 -> 0.0067s383-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})384 -> 0.0062s385-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})386 -> 0.0065s387-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})388 -> 0.0059s389-- create_table("events", {:force=>:cascade})390 -> 0.0090s391-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})392 -> 0.0063s393-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})394 -> 0.0055s395-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})396 -> 0.0058s397-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})398 -> 0.0077s399-- create_table("feature_gates", {:force=>:cascade})400 -> 0.0114s401-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})402 -> 0.0081s403-- create_table("features", {:force=>:cascade})404 -> 0.0114s405-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})406 -> 0.0060s407-- create_table("fork_network_members", {:force=>:cascade})408 -> 0.0067s409-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})410 -> 0.0064s411-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})412 -> 0.0062s413-- create_table("fork_networks", {:force=>:cascade})414 -> 0.0097s415-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})416 -> 0.0067s417-- create_table("forked_project_links", {:force=>:cascade})418 -> 0.0095s419-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})420 -> 0.0082s421-- create_table("gcp_clusters", {:force=>:cascade})422 -> 0.0140s423-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})424 -> 0.0062s425-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})426 -> 0.0071s427-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})428 -> 0.0066s429-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})430 -> 0.0063s431-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})432 -> 0.0062s433-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})434 -> 0.0068s435-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})436 -> 0.0060s437-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})438 -> 0.0114s439-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})440 -> 0.0066s441-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})442 -> 0.0103s443-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})444 -> 0.0062s445-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})446 -> 0.0099s447-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})448 -> 0.0062s449-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})450 -> 0.0093s451-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})452 -> 0.0061s453-- create_table("geo_node_namespace_links", {:force=>:cascade})454 -> 0.0089s455-- 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})456 -> 0.0067s457-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})458 -> 0.0059s459-- create_table("geo_node_statuses", {:force=>:cascade})460 -> 0.0107s461-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})462 -> 0.0065s463-- create_table("geo_nodes", {:force=>:cascade})464 -> 0.0119s465-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})466 -> 0.0073s467-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})468 -> 0.0063s469-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})470 -> 0.0065s471-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})472 -> 0.0074s473-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})474 -> 0.0060s475-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})476 -> 0.0108s477-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})478 -> 0.0067s479-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})480 -> 0.0108s481-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})482 -> 0.0067s483-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})484 -> 0.0102s485-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})486 -> 0.0070s487-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})488 -> 0.0118s489-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})490 -> 0.0121s491-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})492 -> 0.0065s493-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})494 -> 0.0088s495-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})496 -> 0.0087s497-- create_table("gpg_key_subkeys", {:force=>:cascade})498 -> 0.0093s499-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})500 -> 0.0063s501-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})502 -> 0.0054s503-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})504 -> 0.0059s505-- create_table("gpg_keys", {:force=>:cascade})506 -> 0.0088s507-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})508 -> 0.0061s509-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})510 -> 0.0064s511-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})512 -> 0.0058s513-- create_table("gpg_signatures", {:force=>:cascade})514 -> 0.0101s515-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})516 -> 0.0069s517-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})518 -> 0.0059s519-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})520 -> 0.0063s521-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})522 -> 0.0060s523-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})524 -> 0.0061s525-- create_table("group_custom_attributes", {:force=>:cascade})526 -> 0.0086s527-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})528 -> 0.0059s529-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})530 -> 0.0060s531-- create_table("historical_data", {:force=>:cascade})532 -> 0.0064s533-- create_table("identities", {:force=>:cascade})534 -> 0.0095s535-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})536 -> 0.0059s537-- create_table("index_statuses", {:force=>:cascade})538 -> 0.0090s539-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})540 -> 0.0064s541-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})542 -> 0.0062s543-- 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})544 -> 0.0058s545-- 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})546 -> 0.0055s547-- create_table("issue_assignees", {:id=>false, :force=>:cascade})548 -> 0.0024s549-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})550 -> 0.0058s551-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})552 -> 0.0060s553-- create_table("issue_links", {:force=>:cascade})554 -> 0.0065s555-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})556 -> 0.0062s557-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})558 -> 0.0063s559-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})560 -> 0.0063s561-- create_table("issue_metrics", {:force=>:cascade})562 -> 0.0072s563-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})564 -> 0.0068s565-- create_table("issues", {:force=>:cascade})566 -> 0.0124s567-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})568 -> 0.0066s569-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})570 -> 0.0060s571-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})572 -> 0.0036s573-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})574 -> 0.0054s575-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})576 -> 0.0062s577-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})578 -> 0.0073s579-- 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})580 -> 0.0066s581-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})582 -> 0.0061s583-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})584 -> 0.0080s585-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})586 -> 0.0060s587-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})588 -> 0.0061s589-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})590 -> 0.0038s591-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})592 -> 0.0062s593-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})594 -> 0.0059s595-- create_table("keys", {:force=>:cascade})596 -> 0.0101s597-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})598 -> 0.0063s599-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})600 -> 0.0063s601-- create_table("label_links", {:force=>:cascade})602 -> 0.0101s603-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})604 -> 0.0064s605-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})606 -> 0.0060s607-- create_table("label_priorities", {:force=>:cascade})608 -> 0.0069s609-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})610 -> 0.0061s611-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})612 -> 0.0058s613-- create_table("labels", {:force=>:cascade})614 -> 0.0102s615-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})616 -> 0.0062s617-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})618 -> 0.0060s619-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})620 -> 0.0062s621-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})622 -> 0.0059s623-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})624 -> 0.0061s625-- create_table("ldap_group_links", {:force=>:cascade})626 -> 0.0108s627-- create_table("lfs_file_locks", {:force=>:cascade})628 -> 0.0107s629-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})630 -> 0.0068s631-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})632 -> 0.0064s633-- create_table("lfs_objects", {:force=>:cascade})634 -> 0.0091s635-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})636 -> 0.0057s637-- create_table("lfs_objects_projects", {:force=>:cascade})638 -> 0.0070s639-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})640 -> 0.0056s641-- create_table("licenses", {:force=>:cascade})642 -> 0.0091s643-- create_table("lists", {:force=>:cascade})644 -> 0.0091s645-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})646 -> 0.0063s647-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})648 -> 0.0059s649-- create_table("members", {:force=>:cascade})650 -> 0.0109s651-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})652 -> 0.0064s653-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})654 -> 0.0060s655-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})656 -> 0.0060s657-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})658 -> 0.0060s659-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})660 -> 0.0068s661-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})662 -> 0.0059s663-- 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})664 -> 0.0057s665-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})666 -> 0.0058s667-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})668 -> 0.0063s669-- 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})670 -> 0.0063s671-- create_table("merge_request_diffs", {:force=>:cascade})672 -> 0.0099s673-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})674 -> 0.0064s675-- create_table("merge_request_metrics", {:force=>:cascade})676 -> 0.0084s677-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})678 -> 0.0059s679-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})680 -> 0.0067s681-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})682 -> 0.0063s683-- create_table("merge_requests", {:force=>:cascade})684 -> 0.0129s685-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})686 -> 0.0069s687-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})688 -> 0.0066s689-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})690 -> 0.0063s691-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})692 -> 0.0033s693-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})694 -> 0.0060s695-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})696 -> 0.0065s697-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})698 -> 0.0062s699-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})700 -> 0.0065s701-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})702 -> 0.0173s703-- 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})704 -> 0.0065s705-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})706 -> 0.0090s707-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})708 -> 0.0058s709-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})710 -> 0.0057s711-- 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})712 -> 0.0072s713-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})714 -> 0.0063s715-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})716 -> 0.0036s717-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})718 -> 0.0054s719-- create_table("merge_requests_closing_issues", {:force=>:cascade})720 -> 0.0064s721-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})722 -> 0.0062s723-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})724 -> 0.0057s725-- create_table("milestones", {:force=>:cascade})726 -> 0.0090s727-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})728 -> 0.0036s729-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})730 -> 0.0059s731-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})732 -> 0.0075s733-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})734 -> 0.0064s735-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})736 -> 0.0060s737-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})738 -> 0.0035s739-- create_table("namespace_statistics", {:force=>:cascade})740 -> 0.0082s741-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})742 -> 0.0060s743-- create_table("namespaces", {:force=>:cascade})744 -> 0.0135s745-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})746 -> 0.0081s747-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})748 -> 0.0061s749-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})750 -> 0.0064s751-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})752 -> 0.0082s753-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})754 -> 0.0054s755-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})756 -> 0.0078s757-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})758 -> 0.0065s759-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})760 -> 0.0062s761-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})762 -> 0.0036s763-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})764 -> 0.0076s765-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})766 -> 0.0058s767-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})768 -> 0.0060s769-- create_table("notes", {:force=>:cascade})770 -> 0.0107s771-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})772 -> 0.0057s773-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})774 -> 0.0053s775-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})776 -> 0.0058s777-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})778 -> 0.0064s779-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})780 -> 0.0060s781-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})782 -> 0.0035s783-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})784 -> 0.0060s785-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})786 -> 0.0068s787-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})788 -> 0.0060s789-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})790 -> 0.0058s791-- create_table("notification_settings", {:force=>:cascade})792 -> 0.0108s793-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})794 -> 0.0058s795-- 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})796 -> 0.0131s797-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})798 -> 0.0070s799-- create_table("oauth_access_grants", {:force=>:cascade})800 -> 0.0091s801-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})802 -> 0.0059s803-- create_table("oauth_access_tokens", {:force=>:cascade})804 -> 0.0092s805-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})806 -> 0.0056s807-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})808 -> 0.0057s809-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})810 -> 0.0058s811-- create_table("oauth_applications", {:force=>:cascade})812 -> 0.0100s813-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})814 -> 0.0061s815-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})816 -> 0.0053s817-- create_table("oauth_openid_requests", {:force=>:cascade})818 -> 0.0091s819-- create_table("pages_domains", {:force=>:cascade})820 -> 0.0090s821-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})822 -> 0.0060s823-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})824 -> 0.0058s825-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})826 -> 0.0054s827-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})828 -> 0.0065s829-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})830 -> 0.0061s831-- create_table("path_locks", {:force=>:cascade})832 -> 0.0090s833-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})834 -> 0.0058s835-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})836 -> 0.0060s837-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})838 -> 0.0061s839-- create_table("personal_access_tokens", {:force=>:cascade})840 -> 0.0115s841-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})842 -> 0.0061s843-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})844 -> 0.0063s845-- create_table("plans", {:force=>:cascade})846 -> 0.0095s847-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})848 -> 0.0055s849-- create_table("project_authorizations", {:id=>false, :force=>:cascade})850 -> 0.0023s851-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})852 -> 0.0056s853-- 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})854 -> 0.0056s855-- create_table("project_auto_devops", {:force=>:cascade})856 -> 0.0091s857-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})858 -> 0.0062s859-- create_table("project_ci_cd_settings", {:force=>:cascade})860 -> 0.0071s861-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})862 -> 0.0059s863-- create_table("project_custom_attributes", {:force=>:cascade})864 -> 0.0098s865-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})866 -> 0.0061s867-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})868 -> 0.0061s869-- create_table("project_deploy_tokens", {:force=>:cascade})870 -> 0.0076s871-- 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})872 -> 0.0061s873-- create_table("project_features", {:force=>:cascade})874 -> 0.0072s875-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})876 -> 0.0057s877-- create_table("project_group_links", {:force=>:cascade})878 -> 0.0069s879-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})880 -> 0.0056s881-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})882 -> 0.0058s883-- create_table("project_import_data", {:force=>:cascade})884 -> 0.0093s885-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})886 -> 0.0058s887-- create_table("project_mirror_data", {:force=>:cascade})888 -> 0.0069s889-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})890 -> 0.0074s891-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})892 -> 0.0064s893-- create_table("project_repository_states", {:force=>:cascade})894 -> 0.0094s895-- 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})896 -> 0.0065s897-- 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})898 -> 0.0061s899-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})900 -> 0.0063s901-- 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})902 -> 0.0058s903-- create_table("project_statistics", {:force=>:cascade})904 -> 0.0093s905-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})906 -> 0.0061s907-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})908 -> 0.0058s909-- create_table("projects", {:force=>:cascade})910 -> 0.0210s911-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})912 -> 0.0066s913-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})914 -> 0.0061s915-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})916 -> 0.0065s917-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})918 -> 0.0040s919-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})920 -> 0.0064s921-- 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})922 -> 0.0062s923-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})924 -> 0.0061s925-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})926 -> 0.0069s927-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})928 -> 0.0061s929-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})930 -> 0.0062s931-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})932 -> 0.0038s933-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})934 -> 0.0069s935-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})936 -> 0.0081s937-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})938 -> 0.0042s939-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})940 -> 0.0066s941-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})942 -> 0.0073s943-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})944 -> 0.0074s945-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})946 -> 0.0069s947-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})948 -> 0.0069s949-- create_table("prometheus_metrics", {:force=>:cascade})950 -> 0.0110s951-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})952 -> 0.0072s953-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})954 -> 0.0070s955-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})956 -> 0.0082s957-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})958 -> 0.0065s959-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})960 -> 0.0064s961-- create_table("protected_branch_push_access_levels", {:force=>:cascade})962 -> 0.0074s963-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})964 -> 0.0061s965-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})966 -> 0.0063s967-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})968 -> 0.0079s969-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})970 -> 0.0063s971-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})972 -> 0.0060s973-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})974 -> 0.0062s975-- create_table("protected_branches", {:force=>:cascade})976 -> 0.0123s977-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})978 -> 0.0071s979-- create_table("protected_tag_create_access_levels", {:force=>:cascade})980 -> 0.0074s981-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})982 -> 0.0065s983-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})984 -> 0.0069s985-- create_table("protected_tags", {:force=>:cascade})986 -> 0.0106s987-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})988 -> 0.0068s989-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})990 -> 0.0062s991-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})992 -> 0.0063s993-- create_table("push_rules", {:force=>:cascade})994 -> 0.0127s995-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})996 -> 0.0060s997-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})998 -> 0.0059s999-- create_table("redirect_routes", {:force=>:cascade})1000 -> 0.0098s1001-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1002 -> 0.0073s1003-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1004 -> 0.0065s1005-- create_table("releases", {:force=>:cascade})1006 -> 0.0094s1007-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1008 -> 0.0061s1009-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1010 -> 0.0068s1011-- create_table("remote_mirrors", {:force=>:cascade})1012 -> 0.0112s1013-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1014 -> 0.0063s1015-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1016 -> 0.0058s1017-- create_table("routes", {:force=>:cascade})1018 -> 0.0092s1019-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1020 -> 0.0064s1021-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1022 -> 0.0059s1023-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1024 -> 0.0058s1025-- create_table("saml_providers", {:force=>:cascade})1026 -> 0.0088s1027-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1028 -> 0.0060s1029-- create_table("sent_notifications", {:force=>:cascade})1030 -> 0.0090s1031-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1032 -> 0.0066s1033-- create_table("services", {:force=>:cascade})1034 -> 0.0172s1035-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1036 -> 0.0061s1037-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1038 -> 0.0058s1039-- create_table("slack_integrations", {:force=>:cascade})1040 -> 0.0094s1041-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1042 -> 0.0059s1043-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1044 -> 0.0059s1045-- create_table("snippets", {:force=>:cascade})1046 -> 0.0107s1047-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1048 -> 0.0060s1049-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1050 -> 0.0036s1051-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1052 -> 0.0057s1053-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1054 -> 0.0067s1055-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1056 -> 0.0062s1057-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1058 -> 0.0058s1059-- create_table("spam_logs", {:force=>:cascade})1060 -> 0.0104s1061-- create_table("subscriptions", {:force=>:cascade})1062 -> 0.0091s1063-- 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})1064 -> 0.0060s1065-- create_table("system_note_metadata", {:force=>:cascade})1066 -> 0.0093s1067-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1068 -> 0.0061s1069-- create_table("taggings", {:force=>:cascade})1070 -> 0.0094s1071-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1072 -> 0.0063s1073-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1074 -> 0.0063s1075-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1076 -> 0.0058s1077-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1078 -> 0.0058s1079-- create_table("tags", {:force=>:cascade})1080 -> 0.0097s1081-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1082 -> 0.0063s1083-- create_table("timelogs", {:force=>:cascade})1084 -> 0.0061s1085-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1086 -> 0.0063s1087-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1088 -> 0.0058s1089-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1090 -> 0.0060s1091-- create_table("todos", {:force=>:cascade})1092 -> 0.0100s1093-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1094 -> 0.0060s1095-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1096 -> 0.0054s1097-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1098 -> 0.0059s1099-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1100 -> 0.0054s1101-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1102 -> 0.0062s1103-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1104 -> 0.0058s1105-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1106 -> 0.0055s1107-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1108 -> 0.0056s1109-- create_table("trending_projects", {:force=>:cascade})1110 -> 0.0063s1111-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1112 -> 0.0063s1113-- create_table("u2f_registrations", {:force=>:cascade})1114 -> 0.0094s1115-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1116 -> 0.0054s1117-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1118 -> 0.0054s1119-- create_table("uploads", {:force=>:cascade})1120 -> 0.0095s1121-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1122 -> 0.0057s1123-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1124 -> 0.0059s1125-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1126 -> 0.0059s1127-- create_table("user_agent_details", {:force=>:cascade})1128 -> 0.0104s1129-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1130 -> 0.0065s1131-- create_table("user_callouts", {:force=>:cascade})1132 -> 0.0064s1133-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1134 -> 0.0056s1135-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1136 -> 0.0070s1137-- create_table("user_custom_attributes", {:force=>:cascade})1138 -> 0.0090s1139-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1140 -> 0.0060s1141-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1142 -> 0.0058s1143-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1144 -> 0.0026s1145-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1146 -> 0.0054s1147-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1148 -> 0.0051s1149-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1150 -> 0.0107s1151-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1152 -> 0.0057s1153-- create_table("users", {:force=>:cascade})1154 -> 0.0277s1155-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1156 -> 0.0074s1157-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1158 -> 0.0068s1159-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1160 -> 0.0076s1161-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1162 -> 0.0062s1163-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1164 -> 0.0044s1165-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1166 -> 0.0062s1167-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1168 -> 0.0061s1169-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1170 -> 0.0070s1171-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1172 -> 0.0036s1173-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1174 -> 0.0059s1175-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})1176 -> 0.0076s1177-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1178 -> 0.0064s1179-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1180 -> 0.0067s1181-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1182 -> 0.0061s1183-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1184 -> 0.0040s1185-- create_table("users_star_projects", {:force=>:cascade})1186 -> 0.0065s1187-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1188 -> 0.0064s1189-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1190 -> 0.0065s1191-- create_table("web_hook_logs", {:force=>:cascade})1192 -> 0.0113s1193-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1194 -> 0.0063s1195-- create_table("web_hooks", {:force=>:cascade})1196 -> 0.0169s1197-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1198 -> 0.0061s1199-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1200 -> 0.0058s1201-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1202 -> 0.0041s1203-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1204 -> 0.0026s1205-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1206 -> 0.0023s1207-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1208 -> 0.0031s1209-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1210 -> 0.0025s1211-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1212 -> 0.0030s1213-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1214 -> 0.0022s1215-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1216 -> 0.0025s1217-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1218 -> 0.0035s1219-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1220 -> 0.0030s1221-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1222 -> 0.0024s1223-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1224 -> 0.0027s1225-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1226 -> 0.0025s1227-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1228 -> 0.0053s1229-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1230 -> 0.0029s1231-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1232 -> 0.0028s1233-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1234 -> 0.0030s1235-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1236 -> 0.0035s1237-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1238 -> 0.0026s1239-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1240 -> 0.0030s1241-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1242 -> 0.0024s1243-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1244 -> 0.0024s1245-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1246 -> 0.0027s1247-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1248 -> 0.0023s1249-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1250 -> 0.0021s1251-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1252 -> 0.0021s1253-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1254 -> 0.0031s1255-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1256 -> 0.0027s1257-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1258 -> 0.0023s1259-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1260 -> 0.0020s1261-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1262 -> 0.0020s1263-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1264 -> 0.0026s1265-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1266 -> 0.0026s1267-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1268 -> 0.0035s1269-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1270 -> 0.0022s1271-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1272 -> 0.0020s1273-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1274 -> 0.0025s1275-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1276 -> 0.0026s1277-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1278 -> 0.0022s1279-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1280 -> 0.0031s1281-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1282 -> 0.0022s1283-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1284 -> 0.0026s1285-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1286 -> 0.0025s1287-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1288 -> 0.0027s1289-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1290 -> 0.0026s1291-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1292 -> 0.0021s1293-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1294 -> 0.0026s1295-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1296 -> 0.0021s1297-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1298 -> 0.0025s1299-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1300 -> 0.0021s1301-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1302 -> 0.0022s1303-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1304 -> 0.0024s1305-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1306 -> 0.0025s1307-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1308 -> 0.0024s1309-- add_foreign_key("container_repositories", "projects")1310 -> 0.0029s1311-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1312 -> 0.0029s1313-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1314 -> 0.0032s1315-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1316 -> 0.0045s1317-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1318 -> 0.0034s1319-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1320 -> 0.0032s1321-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1322 -> 0.0041s1323-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1324 -> 0.0059s1325-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1326 -> 0.0034s1327-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1328 -> 0.0031s1329-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1330 -> 0.0031s1331-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1332 -> 0.0034s1333-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1334 -> 0.0044s1335-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1336 -> 0.0034s1337-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1338 -> 0.0031s1339-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1340 -> 0.0042s1341-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1342 -> 0.0037s1343-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1344 -> 0.0034s1345-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1346 -> 0.0034s1347-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1348 -> 0.0026s1349-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1350 -> 0.0027s1351-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1352 -> 0.0029s1353-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1354 -> 0.0024s1355-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1356 -> 0.0020s1357-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1358 -> 0.0023s1359-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1360 -> 0.0021s1361-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1362 -> 0.0021s1363-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1364 -> 0.0034s1365-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1366 -> 0.0029s1367-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1368 -> 0.0026s1369-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1370 -> 0.0033s1371-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1372 -> 0.0034s1373-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1374 -> 0.0027s1375-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1376 -> 0.0023s1377-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1378 -> 0.0025s1379-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1380 -> 0.0027s1381-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1382 -> 0.0028s1383-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1384 -> 0.0027s1385-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1386 -> 0.0028s1387-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1388 -> 0.0055s1389-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1390 -> 0.0029s1391-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1392 -> 0.0027s1393-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1394 -> 0.0023s1395-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1396 -> 0.0028s1397-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1398 -> 0.0023s1399-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1400 -> 0.0026s1401-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1402 -> 0.0022s1403-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1404 -> 0.0027s1405-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1406 -> 0.0025s1407-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1408 -> 0.0026s1409-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1410 -> 0.0025s1411-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1412 -> 0.0022s1413-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1414 -> 0.0025s1415-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1416 -> 0.0024s1417-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1418 -> 0.0025s1419-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1420 -> 0.0029s1421-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1422 -> 0.0023s1423-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1424 -> 0.0025s1425-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1426 -> 0.0024s1427-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1428 -> 0.0023s1429-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1430 -> 0.0026s1431-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1432 -> 0.0021s1433-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1434 -> 0.0026s1435-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1436 -> 0.0024s1437-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1438 -> 0.0023s1439-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1440 -> 0.0023s1441-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1442 -> 0.0020s1443-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1444 -> 0.0031s1445-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1446 -> 0.0024s1447-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1448 -> 0.0024s1449-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1450 -> 0.0029s1451-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1452 -> 0.0024s1453-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1454 -> 0.0024s1455-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1456 -> 0.0027s1457-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1458 -> 0.0026s1459-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1460 -> 0.0024s1461-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1462 -> 0.0022s1463-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1464 -> 0.0043s1465-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1466 -> 0.0032s1467-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1468 -> 0.0027s1469-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1470 -> 0.0031s1471-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1472 -> 0.0029s1473-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1474 -> 0.0029s1475-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1476 -> 0.0027s1477-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1478 -> 0.0023s1479-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1480 -> 0.0023s1481-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1482 -> 0.0031s1483-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1484 -> 0.0027s1485-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1486 -> 0.0024s1487-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1488 -> 0.0023s1489-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1490 -> 0.0031s1491-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1492 -> 0.0021s1493-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1494 -> 0.0034s1495-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1496 -> 0.0028s1497-- add_foreign_key("path_locks", "users")1498 -> 0.0027s1499-- add_foreign_key("personal_access_tokens", "users")1500 -> 0.0025s1501-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1502 -> 0.0028s1503-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1504 -> 0.0026s1505-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1506 -> 0.0029s1507-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1508 -> 0.0028s1509-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1510 -> 0.0026s1511-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1512 -> 0.0022s1513-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1514 -> 0.0027s1515-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1516 -> 0.0024s1517-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1518 -> 0.0024s1519-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1520 -> 0.0024s1521-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1522 -> 0.0027s1523-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1524 -> 0.0026s1525-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1526 -> 0.0028s1527-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1528 -> 0.0033s1529-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1530 -> 0.0027s1531-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1532 -> 0.0028s1533-- add_foreign_key("protected_branch_merge_access_levels", "users")1534 -> 0.0028s1535-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1536 -> 0.0025s1537-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1538 -> 0.0022s1539-- add_foreign_key("protected_branch_push_access_levels", "users")1540 -> 0.0030s1541-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1542 -> 0.0025s1543-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1544 -> 0.0024s1545-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1546 -> 0.0029s1547-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1548 -> 0.0027s1549-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1550 -> 0.0021s1551-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1552 -> 0.0022s1553-- add_foreign_key("protected_tag_create_access_levels", "users")1554 -> 0.0027s1555-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1556 -> 0.0027s1557-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1558 -> 0.0023s1559-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1560 -> 0.0030s1561-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1562 -> 0.0026s1563-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1564 -> 0.0027s1565-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1566 -> 0.0024s1567-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1568 -> 0.0032s1569-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1570 -> 0.0057s1571-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1572 -> 0.0035s1573-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1574 -> 0.0030s1575-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1576 -> 0.0025s1577-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1578 -> 0.0025s1579-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1580 -> 0.0028s1581-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1582 -> 0.0027s1583-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1584 -> 0.0030s1585-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1586 -> 0.0029s1587-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1588 -> 0.0032s1589-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1590 -> 0.0033s1591-- add_foreign_key("u2f_registrations", "users")1592 -> 0.0034s1593-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1594 -> 0.0032s1595-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1596 -> 0.0031s1597-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1598 -> 0.0036s1599-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1600 -> 0.0036s1601-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1602 -> 0.0026s1603-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1604 -> 0.0030s1605-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1606 -> 0.0024s1607-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1608 -> 0.0026s1609-- initialize_schema_migrations_table()1610 -> 0.0178s1611-- enable_extension("plpgsql")1612 -> 0.0178s1613-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1614 -> 0.0089s1615-- create_table("file_registry", {:force=>:cascade})1616 -> 0.0119s1617-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1618 -> 0.0072s1619-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1620 -> 0.0065s1621-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1622 -> 0.0060s1623-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1624 -> 0.0059s1625-- create_table("job_artifact_registry", {:force=>:cascade})1626 -> 0.0096s1627-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1628 -> 0.0060s1629-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1630 -> 0.0059s1631-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1632 -> 0.0058s1633-- create_table("project_registry", {:force=>:cascade})1634 -> 0.0106s1635-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1636 -> 0.0062s1637-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1638 -> 0.0062s1639-- 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})1640 -> 0.0061s1641-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1642 -> 0.0061s1643-- 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})1644 -> 0.0062s1645-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1646 -> 0.0066s1647-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1648 -> 0.0062s1649-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1650 -> 0.0063s1651-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1652 -> 0.0063s1653-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1654 -> 0.0060s1655-- 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})1656 -> 0.0064s1657-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1658 -> 0.0059s1659-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1660 -> 0.0060s1661-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1662 -> 0.0061s1663-- 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})1664 -> 0.0062s1665-- initialize_schema_migrations_table()1666 -> 0.0117s1667$ date1668Wed May 2 14:40:09 UTC 20181669$ JOB_NAME=( $CI_JOB_NAME )1670$ export CI_NODE_INDEX=${JOB_NAME[-2]}1671$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1672$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1673$ export KNAPSACK_GENERATE_REPORT=true1674$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1675$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1676$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1677$ export FLAKY_RSPEC_GENERATE_REPORT=true1678$ export CACHE_CLASSES=true1679$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1680$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1681$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1682$ scripts/gitaly-test-spawn1683651684$ knapsack rspec "--color --format documentation --tag ~geo"1685Report specs:1686spec/lib/gitlab/git_access_spec.rb1687spec/requests/api/services_spec.rb1688spec/models/user_spec.rb1689spec/features/issues/form_spec.rb1690spec/features/projects_spec.rb1691spec/features/issues/user_creates_branch_and_merge_request_spec.rb1692spec/requests/api/repositories_spec.rb1693spec/lib/gitlab/background_migration/prepare_untracked_uploads_spec.rb1694spec/features/issues/award_emoji_spec.rb1695spec/models/concerns/issuable_spec.rb1696spec/features/projects/pages_spec.rb1697spec/finders/projects_finder_spec.rb1698spec/lib/gitlab/reference_extractor_spec.rb1699spec/features/groups/empty_states_spec.rb1700spec/requests/api/deploy_keys_spec.rb1701spec/services/boards/issues/move_service_spec.rb1702spec/services/merge_requests/conflicts/resolve_service_spec.rb1703spec/services/push_event_payload_service_spec.rb1704spec/features/profile_spec.rb1705spec/lib/gitlab/checks/change_access_spec.rb1706spec/services/projects/update_service_spec.rb1707spec/controllers/projects/environments_controller_spec.rb1708spec/controllers/import/gitea_controller_spec.rb1709spec/requests/api/v3/project_snippets_spec.rb1710spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb1711spec/serializers/build_details_entity_spec.rb1712spec/features/projects/tree/tree_show_spec.rb1713spec/migrations/migrate_process_commit_worker_jobs_spec.rb1714spec/features/groups/members/leave_group_spec.rb1715spec/features/projects/files/find_file_keyboard_spec.rb1716spec/services/web_hook_service_spec.rb1717spec/features/projects/milestones/milestone_spec.rb1718spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb1719spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb1720spec/features/projects/services/user_activates_hipchat_spec.rb1721spec/features/merge_request/user_merges_immediately_spec.rb1722spec/features/projects/issues/user_toggles_subscription_spec.rb1723spec/controllers/groups/variables_controller_spec.rb1724spec/lib/banzai/filter/redactor_filter_spec.rb1725spec/services/milestones/promote_service_spec.rb1726spec/features/projects/branches/user_deletes_branch_spec.rb1727spec/initializers/secret_token_spec.rb1728spec/lib/gitlab/import_export/merge_request_parser_spec.rb1729spec/features/projects/show/user_manages_notifications_spec.rb1730spec/features/projects/show/redirects_spec.rb1731spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb1732spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb1733spec/features/projects/show/user_sees_readme_spec.rb1734spec/models/snippet_spec.rb1735spec/features/projects/jobs/user_browses_jobs_spec.rb1736spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb1737spec/lib/gitlab/import_export/fork_spec.rb1738spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb1739spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb1740spec/models/project_group_link_spec.rb1741spec/lib/banzai/reference_parser/external_issue_parser_spec.rb1742spec/workers/prune_old_events_worker_spec.rb1743spec/services/notes/resolve_service_spec.rb1744spec/tasks/gitlab/artifacts/check_rake_spec.rb1745spec/views/notify/pipeline_success_email.html.haml_spec.rb1746spec/lib/gitlab/job_waiter_spec.rb1747spec/models/hooks/web_hook_log_spec.rb1748spec/unicorn/unicorn_spec.rb1749spec/helpers/button_helper_spec.rb1750spec/features/admin/admin_conversational_development_index_spec.rb1751spec/features/projects/snippets/user_updates_snippet_spec.rb1752spec/services/clusters/gcp/verify_provision_status_service_spec.rb1753spec/services/users/create_service_spec.rb1754spec/views/projects/jobs/_build.html.haml_spec.rb1755spec/lib/gitlab/repo_path_spec.rb1756spec/controllers/abuse_reports_controller_spec.rb1757spec/models/fork_network_member_spec.rb1758spec/features/abuse_report_spec.rb1759spec/controllers/google_api/authorizations_controller_spec.rb1760spec/services/emails/create_service_spec.rb1761spec/tasks/gitlab/lfs/migrate_rake_spec.rb1762spec/lib/banzai/issuable_extractor_spec.rb1763spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb1764spec/lib/gitlab/import_export/import_export_spec.rb1765spec/serializers/analytics_build_serializer_spec.rb1766spec/lib/gitlab/git/compare_spec.rb1767spec/requests/api/circuit_breakers_spec.rb1768spec/uploaders/file_mover_spec.rb1769spec/migrations/cleanup_nonexisting_namespace_pending_delete_projects_spec.rb1770spec/controllers/user_callouts_controller_spec.rb1771spec/uploaders/records_uploads_spec.rb1772spec/views/projects/issues/_related_branches.html.haml_spec.rb1773spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb1774spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb1775spec/models/project_services/redmine_service_spec.rb1776spec/models/identity_spec.rb1777spec/models/broadcast_message_spec.rb1778spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb1779spec/lib/banzai/renderer_spec.rb1780spec/models/blob_viewer/package_json_spec.rb1781spec/lib/gitlab/bare_repository_import/repository_spec.rb1782spec/lib/gitlab/redis/wrapper_spec.rb1783spec/rubocop/cop/migration/add_concurrent_index_spec.rb1784spec/lib/gitlab/i18n_spec.rb1785spec/lib/rspec_flaky/config_spec.rb1786spec/lib/gitlab/github_import/representation/note_spec.rb1787spec/lib/gitlab/health_checks/redis/cache_check_spec.rb1788spec/lib/gitlab/metrics/samplers/influx_sampler_spec.rb1789spec/lib/gitlab/import_export/reader_spec.rb1790spec/lib/gitlab/ci/config/entry/image_spec.rb1791spec/uploaders/gitlab_uploader_spec.rb1792spec/lib/gitlab/sherlock/collection_spec.rb1793spec/initializers/artifacts_direct_upload_support_spec.rb1794spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb1795spec/models/project_services/chat_message/wiki_page_message_spec.rb1796spec/lib/gitlab/ci/trace/section_parser_spec.rb1797spec/models/concerns/case_sensitivity_spec.rb1798spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb1799spec/lib/gitlab/sql/glob_spec.rb1800spec/lib/gitlab/ci/config/entry/validator_spec.rb1801spec/models/concerns/sha_attribute_spec.rb1802spec/models/concerns/blocks_json_serialization_spec.rb1803spec/lib/gitlab/auth/o_auth/provider_spec.rb1804spec/lib/gitlab/string_placeholder_replacer_spec.rb1805spec/lib/gitlab/upgrader_spec.rb1806spec/lib/gitlab/tcp_checker_spec.rb1807spec/models/concerns/presentable_spec.rb1808spec/lib/system_check/base_check_spec.rb1809spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb1810Leftover specs:1811Knapsack report generator started!1812Run options: exclude {:geo=>true}1813==> Setting up GitLab Shell...1814 GitLab Shell setup in 0.459221468 seconds...1815==> Setting up Gitaly...1816 Gitaly setup in 0.000270173 seconds...1817Gitlab::GitAccess1818 #check with single protocols allowed1819 ssh disabled1820 blocks ssh git push and pull1821 http disabled1822 blocks http push and pull1823 when request is made from CI1824WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/git_access_spec.rb:64:in `block (6 levels) in <top (required)>'.1825 doesn't block http pull1826 when legacy CI credentials are used1827WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass, message)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/git_access_spec.rb:73:in `block (7 levels) in <top (required)>'.1828 doesn't block http pull1829 #check_project_accessibility!1830 when the project exists1831 when actor exists1832 when actor is a DeployKey1833 when the DeployKey has access to the project1834 allows push and pull access1835 when the Deploykey does not have access to the project1836 blocks push and pull with "not found"1837 when actor is a User1838 when the User can read the project1839 allows push and pull access1840 when the User cannot read the project1841 blocks push and pull with "not found"1842 when actor is :ci1843 allows pull access1844 does not block pushes with "not found"1845 when actor is DeployToken1846 when DeployToken is active and belongs to project1847 allows pull access1848 blocks the push1849 when DeployToken does not belong to project1850 blocks pull access1851 blocks the push1852 when actor is nil1853 when guests can read the project1854 allows pull access1855 does not block pushes with "not found"1856 when guests cannot read the project1857 blocks pulls with "not found"1858 blocks pushes with "not found"1859 when the project is nil1860 blocks push and pull with "not found"1861 when user is allowed to create project in namespace1862 blocks pull access with "not found"1863 allows push access1864 when user is not allowed to create project in namespace1865 blocks push and pull with "not found"1866 behaves like #check with a key that is not valid1867 key is too small1868 does not allow keys which are too small1869 key type is not allowed1870 does not allow keys which are too small1871 behaves like #check with a key that is not valid1872 key is too small1873 does not allow keys which are too small1874 key type is not allowed1875 does not allow keys which are too small1876 #add_project_moved_message!1877 when a redirect was not followed to find the project1878 allows push and pull access1879 with a redirect and ssh protocol1880 behaves like check_project_moved1881 enqueues a redirected message for pushing1882 allows push and pull access1883 with a redirect and http protocol1884 behaves like check_project_moved1885 enqueues a redirected message for pushing1886 allows push and pull access1887 #check_authentication_abilities!1888 when download1889 raises unauthorized with download error1890 when authentication abilities include download code1891 does not raise any errors1892 when authentication abilities include build download code1893 does not raise any errors1894 when upload1895 raises unauthorized with push error1896 when authentication abilities include push code1897 does not raise any errors1898 #check_command_disabled!1899 over http1900 when the git-upload-pack command is disabled in config1901 when calling git-upload-pack1902 should raise Gitlab::GitAccess::UnauthorizedError with "Pulling over HTTP is not allowed."1903 when calling git-receive-pack1904 should not raise Exception1905 when the git-receive-pack command is disabled in config1906 when calling git-receive-pack1907 should raise Gitlab::GitAccess::UnauthorizedError with "Pushing over HTTP is not allowed."1908 when calling git-upload-pack1909 should not raise Exception1910 #check_db_accessibility!1911 when in a read-only GitLab instance1912 should raise Gitlab::GitAccess::UnauthorizedError with "You can't push code to a read-only GitLab instance."1913 #ensure_project_on_push!1914 when push1915 when project does not exist1916 when changes is _any1917 when authentication abilities include push code1918 when user can create project in namespace1919 creates a new project1920 when user cannot create project in namespace1921 does not create a new project1922 when authentication abilities do not include push code1923 when user can create project in namespace1924 does not create a new project1925 when check contains actual changes1926 does not create a new project1927 when project exists1928 does not create a new project1929 when deploy key is used1930 does not create a new project1931 when pull1932 when project does not exist1933 does not create a new project1934 #check_download_access!1935 allows masters to pull1936 disallows guests to pull1937 disallows blocked users to pull1938 when the project repository does not exist1939 returns not found1940 without access to project1941 pull code1942 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."1943 when project is public1944 when repository is enabled1945 give access to download code1946 when repository is disabled1947 does not give access to download code1948 deploy key permissions1949 pull code1950 when project is authorized1951 should not raise Exception1952 when unauthorized1953 from public project1954 should not raise Exception1955 from internal project1956 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."1957 from private project1958 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."1959 deploy token permissions1960 pull code1961 when project is authorized1962 should not raise Exception1963 when unauthorized1964 from public project1965 should not raise Exception1966 from internal project1967 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."1968 from private project1969 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."1970 build authentication_abilities permissions1971 owner1972 pull code1973 should not raise Exception1974 reporter user1975 pull code1976 should not raise Exception1977 admin user1978 when member of the project1979 pull code1980 should not raise Exception1981 when is not member of the project1982 pull code1983 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to download code from this project."1984 generic CI (build without a user)1985 pull code1986 should not raise Exception1987 check LFS integrity1988 checks LFS integrity only for first change1989 #check_push_access!1991 has the correct permissions for admins1992 has the correct permissions for masters1993 has the correct permissions for developers1994 has the correct permissions for reporters1995 has the correct permissions for guests1996 when developers are allowed to push into the exact protected branch1997 has the correct permissions for admins1998 has the correct permissions for masters1999 has the correct permissions for developers2000 has the correct permissions for reporters2001 has the correct permissions for guests2002 developers are allowed to merge into the exact protected branch2003 when a merge request exists for the given source/target branch2004 when the merge request is in progress2005 has the correct permissions for admins2006 has the correct permissions for masters2007 has the correct permissions for developers2008 has the correct permissions for reporters2009 has the correct permissions for guests2010 when the merge request is not in progress2011 has the correct permissions for admins2012 has the correct permissions for masters2013 has the correct permissions for developers2014 has the correct permissions for reporters2015 has the correct permissions for guests2016 when a merge request does not exist for the given source/target branch2017 has the correct permissions for admins2018 has the correct permissions for masters2019 has the correct permissions for developers2020 has the correct permissions for reporters2021 has the correct permissions for guests2022 when developers are allowed to push and merge into the exact protected branch2023 has the correct permissions for admins2024 has the correct permissions for masters2025 has the correct permissions for developers2026 has the correct permissions for reporters2027 has the correct permissions for guests2028 user-specific access control2029 when a specific user is allowed to push into the exact protected branch2030 has the correct permissions for admins2031 has the correct permissions for masters2032 has the correct permissions for developers2033 has the correct permissions for reporters2034 has the correct permissions for guests2035 when a specific user is allowed to merge into the exact protected branch2036 has the correct permissions for admins2037 has the correct permissions for masters2038 has the correct permissions for developers2039 has the correct permissions for reporters2040 has the correct permissions for guests2041 when a specific user is allowed to push & merge into the exact protected branch2042 has the correct permissions for admins2043 has the correct permissions for masters2044 has the correct permissions for developers2045 has the correct permissions for reporters2046 has the correct permissions for guests2047 group-specific access control2048 when a specific group is allowed to push into the exact protected branch2049 has the correct permissions for group masters2050 has the correct permissions for group developers2051 has the correct permissions for group reporters2052 has the correct permissions for group guests2053 when a specific group is allowed to merge into the exact protected branch2054 has the correct permissions for group masters2055 has the correct permissions for group developers2056 has the correct permissions for group reporters2057 has the correct permissions for group guests2058 when a specific group is allowed to push & merge into the exact protected branch2059 has the correct permissions for group masters2060 has the correct permissions for group developers2061 has the correct permissions for group reporters2062 has the correct permissions for group guests2063 when no one is allowed to push to the feature protected branch2064 has the correct permissions for admins2065 has the correct permissions for masters2066 has the correct permissions for developers2067 has the correct permissions for reporters2068 has the correct permissions for guests2070 has the correct permissions for admins2071 has the correct permissions for masters2072 has the correct permissions for developers2073 has the correct permissions for reporters2074 has the correct permissions for guests2075 when developers are allowed to push into the wildcard protected branch2076 has the correct permissions for admins2077 has the correct permissions for masters2078 has the correct permissions for developers2079 has the correct permissions for reporters2080 has the correct permissions for guests2081 developers are allowed to merge into the wildcard protected branch2082 when a merge request exists for the given source/target branch2083 when the merge request is in progress2084 has the correct permissions for admins2085 has the correct permissions for masters2086 has the correct permissions for developers2087 has the correct permissions for reporters2088 has the correct permissions for guests2089 when the merge request is not in progress2090 has the correct permissions for admins2091 has the correct permissions for masters2092 has the correct permissions for developers2093 has the correct permissions for reporters2094 has the correct permissions for guests2095 when a merge request does not exist for the given source/target branch2096 has the correct permissions for admins2097 has the correct permissions for masters2098 has the correct permissions for developers2099 has the correct permissions for reporters2100 has the correct permissions for guests2101 when developers are allowed to push and merge into the wildcard protected branch2102 has the correct permissions for admins2103 has the correct permissions for masters2104 has the correct permissions for developers2105 has the correct permissions for reporters2106 has the correct permissions for guests2107 user-specific access control2108 when a specific user is allowed to push into the wildcard protected branch2109 has the correct permissions for admins2110 has the correct permissions for masters2111 has the correct permissions for developers2112 has the correct permissions for reporters2113 has the correct permissions for guests2114 when a specific user is allowed to merge into the wildcard protected branch2115 has the correct permissions for admins2116 has the correct permissions for masters2117 has the correct permissions for developers2118 has the correct permissions for reporters2119 has the correct permissions for guests2120 when a specific user is allowed to push & merge into the wildcard protected branch2121 has the correct permissions for admins2122 has the correct permissions for masters2123 has the correct permissions for developers2124 has the correct permissions for reporters2125 has the correct permissions for guests2126 group-specific access control2127 when a specific group is allowed to push into the wildcard protected branch2128 has the correct permissions for group masters2129 has the correct permissions for group developers2130 has the correct permissions for group reporters2131 has the correct permissions for group guests2132 when a specific group is allowed to merge into the wildcard protected branch2133 has the correct permissions for group masters2134 has the correct permissions for group developers2135 has the correct permissions for group reporters2136 has the correct permissions for group guests2137 when a specific group is allowed to push & merge into the wildcard protected branch2138 has the correct permissions for group masters2139 has the correct permissions for group developers2140 has the correct permissions for group reporters2141 has the correct permissions for group guests2142 when no one is allowed to push to the feat* protected branch2143 has the correct permissions for admins2144 has the correct permissions for masters2145 has the correct permissions for developers2146 has the correct permissions for reporters2147 has the correct permissions for guests2148 push_rule_check2149 author email check2150 returns true2151 returns false2152 returns true for tags2153 allows githook for new branch with an old bad commit2154 allows githook for any change with an old bad commit2155 does not allow any change from Web UI with bad commit2156 member_check2157 returns false for non-member user2158 returns true if committer is a gitlab member2159 file names check2160 returns false when filename is prohibited2161 returns true if file name is allowed2162 max file size check2163 returns false when size is too large2164 returns true when size is allowed2165 returns true when size is nil2166 repository size restrictions2167 returns false when blob is too big2168 returns true when blob is just right2169 when pushing to a project2170 cleans up the files2171 build authentication abilities2172 when project is authorized2173 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2174 when unauthorized2175 to public project2176 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2177 to internal project2178 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2179 to private project2180 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code."2181 when the repository is read only2182 denies push access2183 deploy key permissions2184 when deploy_key can push2185 when project is authorized2186 should not raise Exception2187 when unauthorized2188 to public project2189 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2190 to internal project2191 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2192 to private project2193 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2194 when deploy_key cannot push2195 when project is authorized2196 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2197 when unauthorized2198 to public project2199 should raise Gitlab::GitAccess::UnauthorizedError with "This deploy key does not have write access to this project."2200 to internal project2201 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2202 to private project2203 should raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found."2204 Geo system permissions2205 should not raise Exception2206 should raise Gitlab::GitAccess::UnauthorizedError with "You are not allowed to upload code for this project."2207API::Services2208 PUT /projects/:id/services/asana2209 updates asana settings2210 returns if required fields missing2211 DELETE /projects/:id/services/asana2212 deletes asana2213 GET /projects/:id/services/asana2214 returns authentication error when unauthenticated2215 returns all properties of service asana when authenticated as admin2216 returns properties of service asana other than passwords when authenticated as project owner2217 returns error when authenticated but not a project owner2218 PUT /projects/:id/services/assembla2219 updates assembla settings2220 returns if required fields missing2221 DELETE /projects/:id/services/assembla2222 deletes assembla2223 GET /projects/:id/services/assembla2224 returns authentication error when unauthenticated2225 returns all properties of service assembla when authenticated as admin2226 returns properties of service assembla other than passwords when authenticated as project owner2227 returns error when authenticated but not a project owner2228 PUT /projects/:id/services/bamboo2229 updates bamboo settings2230 returns if required fields missing2231 DELETE /projects/:id/services/bamboo2232 deletes bamboo2233 GET /projects/:id/services/bamboo2234 returns authentication error when unauthenticated2235 returns all properties of service bamboo when authenticated as admin2236 returns properties of service bamboo other than passwords when authenticated as project owner2237 returns error when authenticated but not a project owner2238 PUT /projects/:id/services/bugzilla2239 updates bugzilla settings2240 returns if required fields missing2241 DELETE /projects/:id/services/bugzilla2242 deletes bugzilla2243 GET /projects/:id/services/bugzilla2244 returns authentication error when unauthenticated2245 returns all properties of service bugzilla when authenticated as admin2246 returns properties of service bugzilla other than passwords when authenticated as project owner2247 returns error when authenticated but not a project owner2248 PUT /projects/:id/services/buildkite2249 updates buildkite settings2250 returns if required fields missing2251 DELETE /projects/:id/services/buildkite2252 deletes buildkite2253 GET /projects/:id/services/buildkite2254 returns authentication error when unauthenticated2255 returns all properties of service buildkite when authenticated as admin2256 returns properties of service buildkite other than passwords when authenticated as project owner2257 returns error when authenticated but not a project owner2258 PUT /projects/:id/services/campfire2259 updates campfire settings2260 returns if required fields missing2261 DELETE /projects/:id/services/campfire2262 deletes campfire2263 GET /projects/:id/services/campfire2264 returns authentication error when unauthenticated2265 returns all properties of service campfire when authenticated as admin2266 returns properties of service campfire other than passwords when authenticated as project owner2267 returns error when authenticated but not a project owner2268 PUT /projects/:id/services/custom-issue-tracker2269 updates custom_issue_tracker settings2270 returns if required fields missing2271 DELETE /projects/:id/services/custom-issue-tracker2272 deletes custom_issue_tracker2273 GET /projects/:id/services/custom-issue-tracker2274 returns authentication error when unauthenticated2275 returns all properties of service custom_issue_tracker when authenticated as admin2276 returns properties of service custom_issue_tracker other than passwords when authenticated as project owner2277 returns error when authenticated but not a project owner2278 PUT /projects/:id/services/drone-ci2279 updates drone_ci settings2280 returns if required fields missing2281 DELETE /projects/:id/services/drone-ci2282 deletes drone_ci2283 GET /projects/:id/services/drone-ci2284 returns authentication error when unauthenticated2285 returns all properties of service drone_ci when authenticated as admin2286 returns properties of service drone_ci other than passwords when authenticated as project owner2287 returns error when authenticated but not a project owner2288 PUT /projects/:id/services/emails-on-push2289 updates emails_on_push settings2290 returns if required fields missing2291 DELETE /projects/:id/services/emails-on-push2292 deletes emails_on_push2293 GET /projects/:id/services/emails-on-push2294 returns authentication error when unauthenticated2295 returns all properties of service emails_on_push when authenticated as admin2296 returns properties of service emails_on_push other than passwords when authenticated as project owner2297 returns error when authenticated but not a project owner2298 PUT /projects/:id/services/external-wiki2299 updates external_wiki settings2300 returns if required fields missing2301 DELETE /projects/:id/services/external-wiki2302 deletes external_wiki2303 GET /projects/:id/services/external-wiki2304 returns authentication error when unauthenticated2305 returns all properties of service external_wiki when authenticated as admin2306 returns properties of service external_wiki other than passwords when authenticated as project owner2307 returns error when authenticated but not a project owner2308 PUT /projects/:id/services/flowdock2309 updates flowdock settings2310 returns if required fields missing2311 DELETE /projects/:id/services/flowdock2312 deletes flowdock2313 GET /projects/:id/services/flowdock2314 returns authentication error when unauthenticated2315 returns all properties of service flowdock when authenticated as admin2316 returns properties of service flowdock other than passwords when authenticated as project owner2317 returns error when authenticated but not a project owner2318 PUT /projects/:id/services/gemnasium2319 updates gemnasium settings2320 returns if required fields missing2321 DELETE /projects/:id/services/gemnasium2322 deletes gemnasium2323 GET /projects/:id/services/gemnasium2324 returns authentication error when unauthenticated2325 returns all properties of service gemnasium when authenticated as admin2326 returns properties of service gemnasium other than passwords when authenticated as project owner2327 returns error when authenticated but not a project owner2328 PUT /projects/:id/services/github2329 updates github settings2330 returns if required fields missing2331 DELETE /projects/:id/services/github2332 deletes github2333 GET /projects/:id/services/github2334 returns authentication error when unauthenticated2335 returns all properties of service github when authenticated as admin2336 returns properties of service github other than passwords when authenticated as project owner2337 returns error when authenticated but not a project owner2338 PUT /projects/:id/services/hipchat2339 updates hipchat settings2340 returns if required fields missing2341 DELETE /projects/:id/services/hipchat2342 deletes hipchat2343 GET /projects/:id/services/hipchat2344 returns authentication error when unauthenticated2345 returns all properties of service hipchat when authenticated as admin2346 returns properties of service hipchat other than passwords when authenticated as project owner2347 returns error when authenticated but not a project owner2348 PUT /projects/:id/services/irker2349 updates irker settings2350 returns if required fields missing2351 DELETE /projects/:id/services/irker2352 deletes irker2353 GET /projects/:id/services/irker2354 returns authentication error when unauthenticated2355 returns all properties of service irker when authenticated as admin2356 returns properties of service irker other than passwords when authenticated as project owner2357 returns error when authenticated but not a project owner2358 PUT /projects/:id/services/jenkins2359 updates jenkins settings2360 returns if required fields missing2361 DELETE /projects/:id/services/jenkins2362 deletes jenkins2363 GET /projects/:id/services/jenkins2364 returns authentication error when unauthenticated2365 returns all properties of service jenkins when authenticated as admin2366 returns properties of service jenkins other than passwords when authenticated as project owner2367 returns error when authenticated but not a project owner2368 PUT /projects/:id/services/jenkins-deprecated2369 updates jenkins_deprecated settings2370 returns if required fields missing2371 DELETE /projects/:id/services/jenkins-deprecated2372 deletes jenkins_deprecated2373 GET /projects/:id/services/jenkins-deprecated2374 returns authentication error when unauthenticated2375 returns all properties of service jenkins_deprecated when authenticated as admin2376 returns properties of service jenkins_deprecated other than passwords when authenticated as project owner2377 returns error when authenticated but not a project owner2378 PUT /projects/:id/services/jira2379 updates jira settings2380 returns if required fields missing2381 DELETE /projects/:id/services/jira2382 deletes jira2383 GET /projects/:id/services/jira2384 returns authentication error when unauthenticated2385 returns all properties of service jira when authenticated as admin2386 returns properties of service jira other than passwords when authenticated as project owner2387 returns error when authenticated but not a project owner2388 PUT /projects/:id/services/kubernetes2389 updates kubernetes settings2390 returns if required fields missing2391 DELETE /projects/:id/services/kubernetes2392 deletes kubernetes2393 GET /projects/:id/services/kubernetes2394 returns authentication error when unauthenticated2395 returns all properties of service kubernetes when authenticated as admin2396 returns properties of service kubernetes other than passwords when authenticated as project owner2397 returns error when authenticated but not a project owner2398 PUT /projects/:id/services/mattermost2399 updates mattermost settings2400 returns if required fields missing2401 DELETE /projects/:id/services/mattermost2402 deletes mattermost2403 GET /projects/:id/services/mattermost2404 returns authentication error when unauthenticated2405 returns all properties of service mattermost when authenticated as admin2406 returns properties of service mattermost other than passwords when authenticated as project owner2407 returns error when authenticated but not a project owner2408 PUT /projects/:id/services/mattermost-slash-commands2409 updates mattermost_slash_commands settings2410 returns if required fields missing2411 DELETE /projects/:id/services/mattermost-slash-commands2412 deletes mattermost_slash_commands2413 GET /projects/:id/services/mattermost-slash-commands2414 returns authentication error when unauthenticated2415 returns all properties of service mattermost_slash_commands when authenticated as admin2416 returns properties of service mattermost_slash_commands other than passwords when authenticated as project owner2417 returns error when authenticated but not a project owner2418 PUT /projects/:id/services/microsoft-teams2419 updates microsoft_teams settings2420 returns if required fields missing2421 DELETE /projects/:id/services/microsoft-teams2422 deletes microsoft_teams2423 GET /projects/:id/services/microsoft-teams2424 returns authentication error when unauthenticated2425 returns all properties of service microsoft_teams when authenticated as admin2426 returns properties of service microsoft_teams other than passwords when authenticated as project owner2427 returns error when authenticated but not a project owner2428 PUT /projects/:id/services/packagist2429 updates packagist settings2430 returns if required fields missing2431 DELETE /projects/:id/services/packagist2432 deletes packagist2433 GET /projects/:id/services/packagist2434 returns authentication error when unauthenticated2435 returns all properties of service packagist when authenticated as admin2436 returns properties of service packagist other than passwords when authenticated as project owner2437 returns error when authenticated but not a project owner2438 PUT /projects/:id/services/pipelines-email2439 updates pipelines_email settings2440 returns if required fields missing2441 DELETE /projects/:id/services/pipelines-email2442 deletes pipelines_email2443 GET /projects/:id/services/pipelines-email2444 returns authentication error when unauthenticated2445 returns all properties of service pipelines_email when authenticated as admin2446 returns properties of service pipelines_email other than passwords when authenticated as project owner2447 returns error when authenticated but not a project owner2448 PUT /projects/:id/services/pivotaltracker2449 updates pivotaltracker settings2450 returns if required fields missing2451 DELETE /projects/:id/services/pivotaltracker2452 deletes pivotaltracker2453 GET /projects/:id/services/pivotaltracker2454 returns authentication error when unauthenticated2455 returns all properties of service pivotaltracker when authenticated as admin2456 returns properties of service pivotaltracker other than passwords when authenticated as project owner2457 returns error when authenticated but not a project owner2458 PUT /projects/:id/services/prometheus2459 updates prometheus settings2460 returns if required fields missing2461 DELETE /projects/:id/services/prometheus2462 deletes prometheus2463 GET /projects/:id/services/prometheus2464 returns authentication error when unauthenticated2465 returns all properties of service prometheus when authenticated as admin2466 returns properties of service prometheus other than passwords when authenticated as project owner2467 returns error when authenticated but not a project owner2468 PUT /projects/:id/services/pushover2469 updates pushover settings2470 returns if required fields missing2471 DELETE /projects/:id/services/pushover2472 deletes pushover2473 GET /projects/:id/services/pushover2474 returns authentication error when unauthenticated2475 returns all properties of service pushover when authenticated as admin2476 returns properties of service pushover other than passwords when authenticated as project owner2477 returns error when authenticated but not a project owner2478 PUT /projects/:id/services/redmine2479 updates redmine settings2480 returns if required fields missing2481 DELETE /projects/:id/services/redmine2482 deletes redmine2483 GET /projects/:id/services/redmine2484 returns authentication error when unauthenticated2485 returns all properties of service redmine when authenticated as admin2486 returns properties of service redmine other than passwords when authenticated as project owner2487 returns error when authenticated but not a project owner2488 PUT /projects/:id/services/slack2489 updates slack settings2490 returns if required fields missing2491 DELETE /projects/:id/services/slack2492 deletes slack2493 GET /projects/:id/services/slack2494 returns authentication error when unauthenticated2495 returns all properties of service slack when authenticated as admin2496 returns properties of service slack other than passwords when authenticated as project owner2497 returns error when authenticated but not a project owner2498 PUT /projects/:id/services/slack-slash-commands2499 updates slack_slash_commands settings2500 returns if required fields missing2501 DELETE /projects/:id/services/slack-slash-commands2502 deletes slack_slash_commands2503 GET /projects/:id/services/slack-slash-commands2504 returns authentication error when unauthenticated2505 returns all properties of service slack_slash_commands when authenticated as admin2506 returns properties of service slack_slash_commands other than passwords when authenticated as project owner2507 returns error when authenticated but not a project owner2508 PUT /projects/:id/services/teamcity2509 updates teamcity settings2510 returns if required fields missing2511 DELETE /projects/:id/services/teamcity2512 deletes teamcity2513 GET /projects/:id/services/teamcity2514 returns authentication error when unauthenticated2515 returns all properties of service teamcity when authenticated as admin2516 returns properties of service teamcity other than passwords when authenticated as project owner2517 returns error when authenticated but not a project owner2518 POST /projects/:id/services/:slug/trigger2519 Mattermost Service2520 no service is available2521 returns a not found message2522 the service exists2523 the service is not active2524 when the service is inactive2525 the service is active2526 returns status 2002527 when the project can not be found2528 returns a generic 4042529 Slack Service2530 returns status 2002531 Mattermost service2532 accepts a username for update2533 Slack application Service2534 returns status 2002535User2536 modules2537 should includes the Gitlab::ConfigHelper module2538 should includes the Referable module2539 should includes the Sortable module2540 should includes the TokenAuthenticatable module2541 should includes the BlocksJsonSerialization module2542 delegations2543 should delegate #namespace_path to #namespace object as #path2544 should delegate #shared_runners_minutes_limit to #namespace object2545 should delegate #shared_runners_minutes_limit= to #namespace object passing arguments [133]2546 associations2547 should have one namespace2548 should have many snippets dependent => destroy2549 should have many members2550 should have many project_members2551 should have many group_members2552 should have many groups2553 should have many keys dependent => destroy2554 should have many deploy_keys dependent => nullify2555 should have many events dependent => destroy2556 should have many issues dependent => destroy2557 should have many notes dependent => destroy2558 should have many merge_requests dependent => destroy2559 should have many identities dependent => destroy2560 should have many spam_logs dependent => destroy2561 should have many todos2562 should have many award_emoji dependent => destroy2563 should have many path_locks dependent => destroy2564 should have many triggers dependent => destroy2565 should have many builds dependent => nullify2566 should have many pipelines dependent => nullify2567 should have many chat_names dependent => destroy2568 should have many uploads dependent => destroy2569 should have many reported_abuse_reports class_name => AbuseReport dependent => destroy2570 should have many custom_attributes class_name => UserCustomAttribute2571 #abuse_report2572 should have one abuse_report2573 refers to the abuse report whose user_id is the current user2574 does not refer to the abuse report whose reporter_id is the current user2575 does not update the user_id of an abuse report when the user is updated2576 #group_members2577 does not include group memberships for which user is a requester2578 #project_members2579 does not include project memberships for which user is a requester2580 nested attributes2581 should respond to #namespace_attributes=2582 validations2583 has a DB-level NOT NULL constraint on projects_limit2584 should validate that :projects_limit cannot be empty/falsy2585 should validate that :projects_limit looks like a number2586 should allow :projects_limit to be ‹0›2587 should not allow :projects_limit to be ‹-1›2588 should not allow :projects_limit to be ‹2147483648›2589 should validate that the length of :bio is at most 2552590 does not allow a user to be both an auditor and an admin2591 username2592 validates presence2593 rejects blacklisted names2594 allows child names2595 allows wildcard names2596 when username is changed2597 validates move_dir is allowed for the namespace2598 when the username is in use by another user2599 is invalid2600 behaves like an object with email-formated attributes2601 specifically its :email attribute2602 with a value of 'info@example.com'2603 is valid2604 with a value of 'info+test@example.com'2605 is valid2606 with a value of 'o'reilly@example.com'2607 is valid2608 with a value of 'mailto:test@example.com'2609 is valid2610 with a value of 'lol!'+=?><#$%^&*()@gmail.com'2611 is valid2612 with a value of 'foobar'2613 is invalid2614 with a value of 'test@test@example.com'2615 is invalid2616 behaves like an object with email-formated attributes2617 specifically its :public_email attribute2618 with a value of 'info@example.com'2619 is valid2620 with a value of 'info+test@example.com'2621 is valid2622 with a value of 'o'reilly@example.com'2623 is valid2624 with a value of 'mailto:test@example.com'2625 is valid2626 with a value of 'lol!'+=?><#$%^&*()@gmail.com'2627 is valid2628 with a value of 'foobar'2629 is invalid2630 with a value of 'test@test@example.com'2631 is invalid2632 specifically its :notification_email attribute2633 with a value of 'info@example.com'2634 is valid2635 with a value of 'info+test@example.com'2636 is valid2637 with a value of 'o'reilly@example.com'2638 is valid2639 with a value of 'mailto:test@example.com'2640 is valid2641 with a value of 'lol!'+=?><#$%^&*()@gmail.com'2642 is valid2643 with a value of 'foobar'2644 is invalid2645 with a value of 'test@test@example.com'2646 is invalid2647 email2648 when no signup domains whitelisted2649 accepts any email2650 when a signup domain is whitelisted and subdomains are allowed2651 accepts info@example.com2652 accepts info@test.example.com2653 rejects example@test.com2654 when a signup domain is whitelisted and subdomains are not allowed2655 accepts info@example.com2656 rejects info@test.example.com2657 rejects example@test.com2658 accepts example@test.com when added by another user2659 domain blacklist2660 when a signup domain is blacklisted2661 accepts info@test.com2662 rejects info@example.com2663 accepts info@example.com when added by another user2664 when a signup domain is blacklisted but a wildcard subdomain is allowed2665 gives priority to whitelist and allow info@test.example.com2666 with both lists containing a domain2667 accepts info@test.com2668 rejects info@example.com2669 owns_notification_email2670 accepts temp_oauth_email emails2671 non_ldap2672 retuns non-ldap user2673 scopes2674 .with_two_factor2675 returns users with 2fa enabled via OTP2676 returns users with 2fa enabled via U2F2677 returns users with 2fa enabled via OTP and U2F2678 .without_two_factor2679 excludes users with 2fa enabled via OTP2680 excludes users with 2fa enabled via U2F2681 excludes users with 2fa enabled via OTP and U2F2682 .todo_authors2683 filters users2684 Respond to2685 should respond to #admin?2686 should respond to #name2687 should respond to #external?2688 before save hook2689 when saving an external user2690 sets other properties aswell2691 #check_for_verified_email2692 allows a verfied secondary email to be used as the primary without needing reconfirmation2693 after commit hook2694 .update_invalid_gpg_signatures2695 does nothing when the name is updated2696 synchronizes the gpg keys when the email is updated2697 #update_emails_with_primary_email2698 gets called when email updated2699 adds old primary to secondary emails when secondary is a new email2700 adds old primary to secondary emails if secondary is becoming a primary2701 transfers old confirmation values into new secondary2702 #update_tracked_fields!2703 writes trackable attributes2704 does not write trackable attributes when called a second time within the hour2705 writes trackable attributes for a different user2706 does not write if the DB is in read-only mode2707 #keys2708 with key and deploy key stored2709 returns stored key, but not deploy_key2710 #deploy_keys2711 with key and deploy key stored2712 returns stored deploy key, but not normal key2713 #confirm2714 returns unconfirmed2715 confirms a user2716 #to_reference2717 returns a String reference to the object2718 #generate_password2719 does not generate password by default2720 ensure incoming email token2721 has incoming email token2722 #ensure_user_rights_and_limits2723 with external user2724 receives callback when external changes2725 ensures correct rights and limits for user2726 without external user2727 receives callback when external changes2728 ensures correct rights and limits for user2729 rss token2730 ensures an rss token on read2731 #recently_sent_password_reset?2732 is false when reset_password_sent_at is nil2733 is false when sent more than one minute ago2734 is true when sent less than one minute ago2735 #disable_two_factor!2736 clears all 2FA-related fields2737 projects2738 should include #<Project id:225 user393/project223>2739 should include #<Project id:229 group28/project227>2740 should include #<Project id:233 group31/project231>2741 should include #<Project id:234 user408/project232>2742 should not include #<Project id:238 group34/project236>2743 should not include #<Project id:242 group37/project240>2744 should include #<Project id:243 user423/project241>2745 should not include #<Project id:247 group40/project245>2746 should not include #<Project id:251 group43/project249>2747 groups2748 should be truthy2749 should eq [#<Group id:443 @group45>]2750 should eq [#<Group id:445 @group46>]2751 should contain exactly #<Namespace id: 448, name: "user441", path: "user441", owner_id: 401, created_at: "2018-05-02 14:44:5... two_factor_grace_period: 48, cached_markdown_version: 3, plan_id: nil, project_creation_level: nil> and #<Group id:447 @group47>2752 should contain exactly #<Namespace id: 450, name: "user442", path: "user442", owner_id: 402, created_at: "2018-05-02 14:44:5... two_factor_grace_period: 48, cached_markdown_version: 3, plan_id: nil, project_creation_level: nil> and #<Group id:449 @group48>2753 with child groups2754 #manageable_namespaces2755 includes all the namespaces the user can manage2756 #manageable_groups2757 includes all the namespaces the user can manage2758 does not include duplicates if a membership was added for the subgroup2759 group multiple owners2760 should be truthy2761 namespaced2762 should be falsey2763 should eq [#<Namespace id: 464, name: "user449", path: "user449", owner_id: 409, created_at: "2018-05-02 14:44:...two_factor_grace_period: 48, cached_markdown_version: 3, plan_id: nil, project_creation_level: nil>]2764 blocking user2765 blocks user2766 .filter2767 filters by active users by default2768 filters by admins2769 filters by blocked2770 filters by two_factor_disabled2771 filters by two_factor_enabled2772 filters by wop2773 .without_projects2774 should not include #<User id:412 @user452>2775 should include #<User id:418 @user458>2776 should include #<User id:424 @user464>2777 user creation2778 normal user2779 should be falsey2780 should be truthy2781 should be truthy2782 should be truthy2783 should eq "John"2784 should be falsey2785 with defaults2786 applies defaults to user2787 with default overrides2788 applies defaults to user2789 does not undo projects_limit setting if it matches old DB default of 102790 when Gitlab::CurrentSettings.user_default_external is true2791 creates external user by default2792 with default overrides2793 creates a non-external user2794 #require_ssh_key?2795 has correct require_ssh_key?2796 has correct require_ssh_key?2797 has correct require_ssh_key?2798 returns false when the user has 1 or more SSH keys2799 .find_for_database_authentication2800 strips whitespace from login2801 .find_by_any_email2802 finds by primary email2803 finds by secondary email2804 returns nil when nothing found2805 .by_any_email2806 returns an ActiveRecord::Relation2807 returns a relation of users2808 .search2809 returns no matches for an empty string2810 returns no matches for nil2811 name matching2812 returns users with a matching name with exact match first2813 returns users with a partially matching name2814 returns users with a matching name regardless of the casing2815 returns users with a exact matching name shorter than 3 chars2816 returns users with a exact matching name shorter than 3 chars regardless of the casing2817 email matching2818 returns users with a matching Email2819 does not return users with a partially matching Email2820 returns users with a matching Email regardless of the casing2821 username matching2822 returns users with a matching username2823 returns users with a partially matching username2824 returns users with a matching username regardless of the casing2825 returns users with a exact matching username shorter than 3 chars2826 returns users with a exact matching username shorter than 3 chars regardless of the casing2827 .search_with_secondary_emails2828 returns users with a matching name2829 returns users with a partially matching name2830 returns users with a matching name regardless of the casing2831 returns users with a matching email2832 does not return users with a partially matching email2833 returns users with a matching email regardless of the casing2834 returns users with a matching username2835 returns users with a partially matching username2836 returns users with a matching username regardless of the casing2837 returns users with a matching whole secondary email2838 does not return users with a matching part of secondary email2839 returns no matches for an empty string2840 returns no matches for nil2841 .find_by_ssh_key_id2842 using an existing SSH key ID2843 returns the corresponding User2844 using an invalid SSH key ID2845 returns nil2846 .by_login2847 gets the correct user2848 .find_by_username2849 returns nil if not found2850 is case-insensitive2851 .find_by_username!2852 raises RecordNotFound2853 is case-insensitive2854 .find_by_full_path2855 with a route matching the given path2856 returns the user2857 is case-insensitive2858 with a redirect route matching the given path2859 without the follow_redirects option2860 returns nil2861 with the follow_redirects option set to true2862 returns the user2863 is case-insensitive2864 without a route or a redirect route matching the given path2865 without the follow_redirects option2866 returns nil2867 with the follow_redirects option set to true2868 returns nil2869 with a group route matching the given path2870 when the group namespace has an owner_id (legacy data)2871 returns nil2872 when the group namespace does not have an owner_id2873 returns nil2874 all_ssh_keys2875 should have many keys dependent => destroy2876 has all ssh keys2877 #avatar_type2878 is true if avatar is image2879 is false if avatar is html page2880 #avatar_url2881 when avatar file is uploaded2882 shows correct avatar url2883 #all_emails2884 returns all emails2885 #verified_emails2886 returns only confirmed emails2887 #verified_email?2888 returns true when the email is verified/confirmed2889 returns false when the email is not verified/confirmed2890 #requires_ldap_check?2891 is false when LDAP is disabled2892 when LDAP is enabled2893 is false for non-LDAP users2894 and when the user is an LDAP user2895 is true when the user has never had an LDAP check before2896 is true when the last LDAP check happened over 1 hour ago2897 ldap synchronized user2898 #ldap_user?2899 is true if provider name starts with ldap2900 is false for other providers2901 is false if no extern_uid is provided2902 #ldap_identity2903 returns ldap identity2904 #ldap_block2905 blocks user flaging the action caming from ldap2906 #full_website_url2907 begins with http if website url omits it2908 begins with http if website url begins with http2909 begins with https if website url begins with https2910 #short_website_url2911 does not begin with http if website url omits it2912 does not begin with http if website url begins with http2913 does not begin with https if website url begins with https2914 #sanitize_attrs2915 encodes HTML entities in the Skype attribute2916 does not encode HTML entities in the name attribute2917 #starred?2918 determines if user starred a project2919 #toggle_star2920 toggles stars2921 #existing_member?2922 returns true for exisitng user2923 returns false for unknown exisitng user2924 returns true if additional email exists2925 #sort_by_attribute2926 sorts users in descending order by their creation time2927 sorts users in ascending order by their creation time2928 sorts users by id in descending order when nil is passed2929 when sort by recent_sign_in2930 sorts users by recent sign-in time2931 pushes users who never signed in to the end2932 when sort by oldest_sign_in2933 sorts users by the oldest sign-in time2934 pushes users who never signed in to the end2935 #contributed_projects2936 includes IDs for projects the user has pushed to2937 includes IDs for projects the user has had merge requests merged into2938 doesn't include IDs for unrelated projects2939 #fork_of2940 returns a user's fork of a project2941 returns nil if the project does not have a fork network2942 #can_be_removed?2943 no owned groups2944 should be truthy2945 has owned groups2946 should be falsey2947 #recent_push2948 returns the last push event for the user2949 returns the last push event for a project when one is given2950 #authorized_groups2951 should contain exactly #<Group id:656 @group62> and #<Group id:658 @group64>2952 #membership_groups2953 should contain exactly #<Group id:662 @group65> and #<Group id:663 @group65/group66>2954 #authorizations_for_projects2955 includes projects that belong to a user, but no other projects2956 includes projects a user has access to, but no other projects2957 #authorized_projects2958 includes user's personal projects2959 includes personal projects user has been given access to2960 includes projects of groups user has been added to2961 does not include projects of groups user has been removed from2962 includes projects shared with user's group2963 does not include destroyed projects user had access to2964 does not include projects of destroyed groups user had access to2965 with a minimum access level2966 includes projects for which the user is an owner2967 includes projects for which the user is a master2968 #projects_where_can_admin_issues2969 includes projects for which the user access level is above or equal to reporter2970 does not include for which the user access level is below reporter2971 does not include archived projects2972 does not include projects for which issues are disabled2973 #ci_authorized_runners2974 without any projects2975 does not load2976 with personal projects runners2977 loads2978 with groups projects runners2979 behaves like member2980 when the user is a master2981 loads2982 when the user is a developer2983 does not load2984 with other projects runners2985 behaves like member2986 when the user is a master2987 loads2988 when the user is a developer2989 does not load2990 with subgroup with different owner for project runner2991 behaves like member2992 when the user is a master2993 loads2994 when the user is a developer2995 does not load2996 #projects_with_reporter_access_limited_to2997 returns the projects when using a single project ID2998 returns the projects when using an Array of project IDs2999 returns the projects when using an ActiveRecord relation3000 does not return projects you do not have reporter access to3001 #all_expanded_groups3002 user is not a member of any group3003 returns an empty array3004 user is member of all groups3005 returns all groups3006 user is member of the top group3007 returns all groups3008 user is member of the first child (internal node), branch 13009 returns the groups in the hierarchy3010 user is member of the first child (internal node), branch 23011 returns the groups in the hierarchy3012 user is member of the last child (leaf node)3013 returns the groups in the hierarchy3014 #refresh_authorized_projects3015 refreshes the list of authorized projects3016 stores the correct access levels3017 #access_level=3018 does nothing for an invalid access level3019 assigns the 'admin' access level3020 doesn't clear existing access levels when an invalid access level is passed in3021 accepts string values in addition to symbols3022 #full_private_access?3023 returns false for regular user3024 returns true for admin user3025 the GitLab_Auditor_User add-on3026 creating an auditor user3027 does not allow creating an auditor user if the addon isn't enabled3028 does not allow creating an auditor user if no license is present3029 allows creating an auditor user if the addon is enabled3030 allows creating a regular user if the addon isn't enabled3031 #auditor?3032 returns true for an auditor user if the addon is enabled3033 returns false for an auditor user if the addon is not enabled3034 returns false for an auditor user if a license is not present3035 returns false for a non-auditor user even if the addon is present3036 .ghost3037 creates a ghost user if one isn't already present3038 does not create a second ghost user if one is already present3039 when a regular user exists with the username 'ghost'3040 creates a ghost user with a non-conflicting username3041 when a regular user exists with the email 'ghost@example.com'3042 creates a ghost user with a non-conflicting email3043 when a domain whitelist is in place3044 creates a ghost user3045 #update_two_factor_requirement3046 with 2FA requirement on groups3047 requires 2FA3048 uses the shortest grace period3049 with 2FA requirement on nested parent group3050 requires 2FA3051 with 2FA requirement on nested child group3052 requires 2FA3053 without 2FA requirement on groups3054 does not require 2FA3055 falls back to the default grace period3056 .active3057 only counts active and non internal users3058 preferred language3059 is English by default3060 #invalidate_issue_cache_counts3061 invalidates cache for issue counter3062 #invalidate_merge_request_cache_counts3063 invalidates cache for Merge Request counter3064 #invalidate_personal_projects_count3065 invalidates cache for personal projects counter3066 #allow_password_authentication_for_web?3067 returns false for ldap user3068 regular user3069 returns true when password authentication is enabled for the web interface3070 returns false when password authentication is disabled for the web interface3071 #allow_password_authentication_for_git?3072 returns false for ldap user3073 regular user3074 returns true when password authentication is enabled for Git3075 returns false when password authentication is disabled Git3076 #personal_projects_count3077 returns the number of personal projects using a single query3078 #projects_limit_left3079 returns the number of projects that can be created by the user3080 #ensure_namespace_correct3081 for a new user3082 creates the namespace3083 for an existing user3084 when the user is updated3085 when the username is changed3086 changes the namespace (just to compare to when username is not changed)3087 updates the namespace name3088 updates the namespace path3089 when there is a validation error (namespace name taken) while updating namespace3090 causes the user save to fail3091 adds the namespace errors to the user3092 when the username is not changed3093 does not change the namespace3094 #username_changed_hook3095 for a new user3096 does not trigger system hook3097 for an existing user3098 when the username is changed3099 triggers the rename system hook3100 when the username is not changed3101 does not trigger system hook3102 #sync_attribute?3103 oauth user3104 returns true if name can be synced3105 returns true if email can be synced3106 returns true if location can be synced3107 returns false if name can not be synced3108 returns false if email can not be synced3109 returns false if location can not be synced3110 returns true for all syncable attributes if all syncable attributes can be synced3111 returns false for all syncable attributes but email if no syncable attributes are declared3112 ldap user3113 returns true for email if ldap user3114 returns true for email and location if ldap user and location declared as syncable3115 #confirm_deletion_with_password?3116 password_automatically_set: true, ldap_user: true, password_authentication_disabled: true3117 returns false unless all inputs are true3118 password_automatically_set: true, ldap_user: true, password_authentication_disabled: false3119 returns false unless all inputs are true3120 password_automatically_set: true, ldap_user: false, password_authentication_disabled: true3121 returns false unless all inputs are true3122 password_automatically_set: true, ldap_user: false, password_authentication_disabled: false3123 returns false unless all inputs are true3124 password_automatically_set: false, ldap_user: true, password_authentication_disabled: true3125 returns false unless all inputs are true3126 password_automatically_set: false, ldap_user: true, password_authentication_disabled: false3127 returns false unless all inputs are true3128 password_automatically_set: false, ldap_user: false, password_authentication_disabled: true3129 returns false unless all inputs are true3130 password_automatically_set: false, ldap_user: false, password_authentication_disabled: false3131 returns false unless all inputs are true3132 #delete_async3133 blocks the user then schedules them for deletion if a hard delete is specified3134 schedules user for deletion without blocking them3135 #max_member_access_for_project_ids3136 with RequestStore enabled3137 returns correct roles for different projects3138 does not perform extra queries when asked for projects who have already been found3139 only requests the extra projects when uncached projects are passed3140 with RequestStore disabled3141 returns correct roles for different projects3142 #max_member_access_for_group_ids3143 with RequestStore enabled3144 returns correct roles for different groups3145 does not perform extra queries when asked for groups who have already been found3146 only requests the extra groups when uncached groups are passed3147 with RequestStore disabled3148 returns correct roles for different groups3149 changing a username3150 creates a redirect route3151 deletes the redirect when a user with the old username was created3152New/edit issue3153Starting the Capybara driver server...3154 new issue3155 allows user to create new issue3156 correctly updates the dropdown toggle when removing a label3157 clears label search input field when a label is selected3158 correctly updates the selected user when changing assignee3159 description has autocomplete3160 shorten users API pagination limit3161 should display selected users even if they are not part of the original API call3162 single assignee3163 unselects other assignees when unassigned is selected3164 toggles assign to me when current user is selected and unselected3165 milestone3166 escapes milestone3167 edit issue3168 allows user to update issue3169 description has autocomplete3170 inline edit3171 opens inline edit form with shortcut3172 sub-group project3173 creates project label from dropdown3174Project3175 creating from template3176 allows creation from templates3177 shows tip about push to create git command3178 shows the command in a popover3179 description3180 parses Markdown3181 passes through html-pipeline3182 sanitizes unwanted tags3183 permits `rel` attribute on links3184 remove forked relationship3185 removes fork3186 showing information about source of a project fork3187 shows a link to the source project when it is available3188 does not contain fork network information for the root project3189 shows the name of the deleted project when the source was deleted3190 a fork of a fork3191 links to the base project if the source project is removed3192 removal3193 removes a project3194 tree view (default view is set to Files)3195 has working links to files3196 has working links to directories3197 has working links to submodules3198 activity view3199 loads activity3200User creates branch and merge request on issue page3201 when signed out3202 doesn't show 'Create merge request' button3203 when signed in3204 when interacting with the dropdown3205 shows elements3206 when branch name is auto-generated3207 creates a merge request3208 creates a branch3209 when branch name is custom3210 creates a merge request3211 creates a branch3212 when there is a referenced merge request3213 disables the create branch button3214 when merge requests are disabled3215 shows only create branch button3216 when issue is confidential3217 disables the create branch button3218API::Repositories3219 GET /projects/:id/repository/tree3220 when unauthenticated and project is public3221 behaves like repository tree3222 returns the repository tree3223 when ref does not exist3224 behaves like 404 response3225 returns 4043226 when repository is disabled3227 behaves like 403 response3228 returns 4033229 with recursive=13230 returns recursive project paths tree3231 when repository is disabled3232 behaves like 403 response3233 returns 4033234 when ref does not exist3235 behaves like 404 response3236 returns 4043237 when unauthenticated and project is private3238 behaves like 404 response3239 returns 4043240 when authenticated as a developer3241 behaves like repository tree3242 returns the repository tree3243 when ref does not exist3244 behaves like 404 response3245 returns 4043246 when repository is disabled3247 behaves like 403 response3248 returns 4033249 with recursive=13250 returns recursive project paths tree3251 when repository is disabled3252 behaves like 403 response3253 returns 4033254 when ref does not exist3255 behaves like 404 response3256 returns 4043257 when authenticated as a guest3258 behaves like 403 response3259 returns 4033260 GET /projects/:id/repository/blobs/:sha3261 when unauthenticated and project is public3262 behaves like repository blob3263 returns blob attributes as json3264 when sha does not exist3265 behaves like 404 response3266 returns 4043267 when repository is disabled3268 behaves like 403 response3269 returns 4033270 when unauthenticated and project is private3271 behaves like 404 response3272 returns 4043273 when authenticated as a developer3274 behaves like repository blob3275 returns blob attributes as json3276 when sha does not exist3277 behaves like 404 response3278 returns 4043279 when repository is disabled3280 behaves like 403 response3281 returns 4033282 when authenticated as a guest3283 behaves like 403 response3284 returns 4033285 GET /projects/:id/repository/blobs/:sha/raw3286 when unauthenticated and project is public3287 behaves like repository raw blob3288 returns the repository raw blob3289 when sha does not exist3290 behaves like 404 response3291 returns 4043292 when repository is disabled3293 behaves like 403 response3294 returns 4033295 when unauthenticated and project is private3296 behaves like 404 response3297 returns 4043298 when authenticated as a developer3299 behaves like repository raw blob3300 returns the repository raw blob3301 when sha does not exist3302 behaves like 404 response3303 returns 4043304 when repository is disabled3305 behaves like 403 response3306 returns 4033307 when authenticated as a guest3308 behaves like 403 response3309 returns 4033310 GET /projects/:id/repository/archive(.:format)?:sha3311 when unauthenticated and project is public3312 behaves like repository archive3313 returns the repository archive3314 returns the repository archive archive.zip3315 returns the repository archive archive.tar.bz23316 when sha does not exist3317 behaves like 404 response3318 returns 4043319 when unauthenticated and project is private3320 behaves like 404 response3321 returns 4043322 when authenticated as a developer3323 behaves like repository archive3324 returns the repository archive3325 returns the repository archive archive.zip3326 returns the repository archive archive.tar.bz23327 when sha does not exist3328 behaves like 404 response3329 returns 4043330 when authenticated as a guest3331 behaves like 403 response3332 returns 4033333 GET /projects/:id/repository/compare3334 when unauthenticated and project is public3335 behaves like repository compare3336 compares branches3337 compares tags3338 compares commits3339 compares commits in reverse order3340 compares same refs3341 when unauthenticated and project is private3342 behaves like 404 response3343 returns 4043344 when authenticated as a developer3345 behaves like repository compare3346 compares branches3347 compares tags3348 compares commits3349 compares commits in reverse order3350 compares same refs3351 when authenticated as a guest3352 behaves like 403 response3353 returns 4033354 GET /projects/:id/repository/contributors3355 when unauthenticated and project is public3356 behaves like repository contributors3357 returns valid data3358 using sorting3359 by commits desc3360 returns the repository contribuors sorted by commits desc3361 by name desc3362 returns the repository contribuors sorted by name asc case insensitive3363 when unauthenticated and project is private3364 behaves like 404 response3365 returns 4043366 when authenticated as a developer3367 behaves like repository contributors3368 returns valid data3369 using sorting3370 by commits desc3371 returns the repository contribuors sorted by commits desc3372 by name desc3373 returns the repository contribuors sorted by name asc case insensitive3374 when authenticated as a guest3375 behaves like 403 response3376 returns 4033377 Links header contains working URLs when no `order_by` nor `sort` is given3378 returns `Link` header that includes URLs with default value for `order_by` & `sort`3379Gitlab::BackgroundMigration::PrepareUntrackedUploads3380 test bulk insert without ON CONFLICT DO NOTHING or IGNORE3381 behaves like prepares the untracked_files_for_uploads table3382 when files were uploaded before and after hashed storage was enabled3383 has a path field long enough for really long paths3384 adds unhashed files to the untracked_files_for_uploads table3385 adds files with paths relative to CarrierWave.root3386 does not add hashed files to the untracked_files_for_uploads table3387 correctly schedules the follow-up background migration jobs3388 when there is existing data in untracked_files_for_uploads3389 does not error or produce duplicates of existing data3390 when there are files in /uploads/tmp3391 does not add files from /uploads/tmp3392 when the last batch size exactly matches the max batch size3393 does not raise error3394 when no files were ever uploaded3395 deletes the `untracked_files_for_uploads` table (and does not raise error)3396Awards Emoji3397 authorized user3398 visiting an issue with a legacy award emoji that is not valid anymore3399 does not shows a 500 page3400 Click award emoji from issue#show3401 increments the thumbsdown emoji3402 toggles the smiley emoji on a note3403 click the thumbsup emoji3404 increments the thumbsup emoji3405 decrements the thumbsdown emoji3406 click the thumbsdown emoji3407 increments the thumbsdown emoji3408 decrements the thumbsup emoji3409 execute /award quick action3410 toggles the emoji award on noteable3411 unauthorized user3412 has disabled emoji button3413Issuable3414 Associations3415 should belong to project3416 should belong to author3417 should have many notes dependent => destroy3418 should have many todos dependent => destroy3419 Notes3420 indicates if the notes have their authors loaded3421 Included modules3422 should includes the Awardable module3423 Validation3424 should validate that :project cannot be empty/falsy3425 should validate that :iid cannot be empty/falsy3426 should validate that :author cannot be empty/falsy3427 should validate that :title cannot be empty/falsy3428 should validate that the length of :title is at most 2553429 Scope3430 should respond to #opened3431 should respond to #closed3432 should respond to #assigned3433 author_name3434 is delegated to author3435 returns nil when author is nil3436 .search3437 returns issues with a matching title3438 returns issues with a partially matching title3439 returns issues with a matching title regardless of the casing3440 returns issues with a fuzzy matching title3441 returns issues with a matching title for a query shorter than 3 chars3442 .full_search3443 returns issues with a matching title3444 returns issues with a partially matching title3445 returns issues with a matching title regardless of the casing3446 returns issues with a fuzzy matching title3447 returns issues with a matching description3448 returns issues with a partially matching description3449 returns issues with a matching description regardless of the casing3450 returns issues with a fuzzy matching description3451 returns issues with a matching description for a query shorter than 3 chars3452 .to_ability_name3453 should eq "issue"3454 should eq "merge_request"3455 #today?3456 returns true when created today3457 returns false when not created today3458 #new?3459 returns true when created today and record hasn't been updated3460 returns false when not created today3461 returns false when record has been updated3462 #sort_by_attribute3463 by milestone due date3464 sorts desc3465 sorts asc3466 when all of the results are level on the sort key3467 has no duplicates across pages3468 #subscribed?3469 user is not a participant in the issue3470 returns false when no subcription exists3471 returns true when a subcription exists and subscribed is true3472 returns false when a subcription exists and subscribed is false3473 user is a participant in the issue3474 returns false when no subcription exists3475 returns true when a subcription exists and subscribed is true3476 returns false when a subcription exists and subscribed is false3477 #to_hook_data3478 labels are updated3479 delegates to Gitlab::HookData::IssuableBuilder#build3480 total_time_spent is updated3481 delegates to Gitlab::HookData::IssuableBuilder#build3482 issue is assigned3483 delegates to Gitlab::HookData::IssuableBuilder#build3484 merge_request is assigned3485 delegates to Gitlab::HookData::IssuableBuilder#build3486 #labels_array3487 loads the association and returns it as an array3488 .labels_hash3489 maps issue ids to labels titles3490 works on relations filtered by multiple labels3491 #user_notes_count3492 counts the user notes3493 votes3494 returns correct values3495 .order_due_date_and_labels_priority3496 sorts issues in order of milestone due date, then label priority3497 .order_labels_priority3498 should eq 23499 .with_label3500 finds the correct issue containing just enhancement label3501 finds the correct issues containing the same label3502 finds the correct issues containing only both labels3503 #spend_time3504 adding time3505 should update the total time spent3506 substracting time3507 should update the total time spent3508 when time to substract exceeds the total time spent3509 raise a validation error3510 #first_contribution?3511 for merge requests3512 is false for MASTER3513 is false for OWNER3514 is false for REPORTER3515 is true when you don't have any merged MR3516 handles multiple projects separately3517 for issues3518 is false even without merged MR3519Pages3520 when user is the owner3521 when pages deployed3522 renders Access pages3523 when support for external domains is disabled3524 renders message that support is disabled3525 when pages are exposed on external HTTP address3526 allows to add new domain3527 behaves like adds new domain3528 adds new domain3529 when project in group namespace3530 behaves like adds new domain3531 adds new domain3532 when pages domain is added3533 renders certificates is disabled3534 does not adds new domain and renders error message3535 when pages are exposed on external HTTPS address3536 adds new domain with certificate3537 updating the certificate for an existing domain3538 allows the certificate to be updated3539 when the certificate is invalid3540 tells the user what the problem is3541 behaves like no pages deployed3542 does not see anything to destroy3543 project settings page3544 renders "Pages" tab3545 when pages are disabled3546 does not render "Pages" tab3547 when the user is not the owner3548 when pages deployed3549 sees "Only the project owner can remove pages" text3550 behaves like no pages deployed3551 does not see anything to destroy3552 HTTPS settings3553 tries to change the setting3554 setting could not be updated3555 tries to change the setting3556 non-HTTPS domain exists3557 the setting is disabled3558 HTTPS pages are disabled3559 the setting is unavailable3560 Remove page3561 when user is the owner3562 when pages are deployed3563Archive: /builds/gitlab-org/gitlab-ee/tmp/tests/artifacts/2018_05/579/1/pages.zip3564 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-78-1oxsmt9/public/3565 creating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-78-1oxsmt9/public/.hidden/3566 extracting: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-78-1oxsmt9/public/.hidden/file 3567 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-78-1oxsmt9/public/zero 3568 inflating: /builds/gitlab-org/gitlab-ee/tmp/tests/pages/tmp/d20180502-78-1oxsmt9/public/index.html 3569 removes the pages3570ProjectsFinder3571 #execute3572 without a user3573 should eq [#<Project id:582 group139/C>]3574 with a user3575 without private projects3576 should contain exactly #<Project id:586 group140/C> and #<Project id:585 group140/B>3577 with private projects3578 should contain exactly #<Project id:590 group141/C>, #<Project id:589 group141/B>, and #<Project id:588 namespace533/A>3579 with project_ids_relation3580 should eq [#<Project id:593 group142/B>]3581 filter by visibility_level3582 private3583 should eq [#<Project id:596 namespace541/A>]3584 internal3585 should eq [#<Project id:601 group144/B>]3586 public3587 should eq [#<Project id:606 group145/C>]3588 filter by tags3589 should eq [#<Project id:610 group146/C>]3590 filter by personal3591 should eq [#<Project id:616 user1213/project552>]3592 filter by search3593 should eq [#<Project id:619 group148/C>]3594 filter by name for backward compatibility3595 should eq [#<Project id:623 group149/C>]3596 filter by archived3597 non_archived=true3598 should contain exactly #<Project id:627 group150/C> and #<Project id:626 group150/B>3599 non_archived=false3600 should contain exactly #<Project id:632 group151/C>, #<Project id:631 group151/B>, and #<Project id:634 namespace578/E>3601 filter by archived only3602 should eq [#<Project id:639 namespace583/E>]3603 filter by archived for backward compatibility3604 should contain exactly #<Project id:642 group153/C> and #<Project id:641 group153/B>3605 filter by trending3606 should eq [#<Project id:647 group154/C>]3607 filter by owned3608 should eq [#<Project id:653 user1273/project553>]3609 filter by non_public3610 should eq [#<Project id:654 namespace597/A>]3611 filter by starred3612 should eq [#<Project id:660 group157/C>]3613 returns only projects the user has access to3614 sorting3615 should eq [#<Project id:667 group159/B>, #<Project id:668 group159/C>]3616Gitlab::ReferenceExtractor3617 accesses valid user objects3618 ignores user mentions inside specific elements3619 does not include anchors from table of contents in issue references3620 accesses valid issue objects3621 accesses valid merge requests3622 accesses valid labels3623 accesses valid snippets3624 accesses valid epics3625 accesses valid commits3626 accesses valid commit ranges3627 directly addressed users3628 when a user is directly addressed3629 accesses the user object which is mentioned in the beginning of the line3630 doesn't access the user object if it's not mentioned in the beginning of the line3631 when multiple users are addressed3632 accesses the user objects which are mentioned in the beginning of the line3633 doesn't access the user objects if they are not mentioned in the beginning of the line3634 when multiple users are addressed in different paragraphs3635 accesses user objects which are mentioned in the beginning of each paragraph3636 with an external issue tracker3637 when GitLab issues are enabled3638 returns both JIRA and internal issues3639 returns only JIRA issues if the internal one does not exists3640 when GitLab issues are disabled3641 returns only JIRA issues3642 with a project with an underscore3643 handles project issue references3644 #all3645 returns all referables3646 .references_pattern3647 should be a kind of Regexp3648 referables prefixes3649 returns all supported prefixes3650 does not allow one prefix for multiple referables if not allowed specificly3651Group empty states3652 for issues3653 group has a project3654 the project has issues3655 does not display an empty state3656 the project has no issues3657 displays an empty state3658 shows a new issue button3659 the new issue button opens a project dropdown3660 group without a project3661 group has a subgroup3662 the project has issues3663 does not display an empty state3664 the project has no issues3665 displays an empty state3666 group has no subgroups3667 displays an empty state3668 shows a new issue button3669 for merge requests3670 group has a project3671 the project has merge requests3672 does not display an empty state3673 the project has no merge requests3674 displays an empty state3675 shows a new merge request button3676 the new merge request button opens a project dropdown3677 group without a project3678 group has a subgroup3679 the project has merge requests3680 does not display an empty state3681 the project has no merge requests3682 displays an empty state3683 group has no subgroups3684 displays an empty state3685 shows a new merge request button3686API::DeployKeys3687 GET /deploy_keys3688 when unauthenticated3689 returns authentication error3690 when authenticated as non-admin user3691 returns a 403 error3692 when authenticated as admin3693 returns all deploy keys3694 GET /projects/:id/deploy_keys3695 returns array of ssh keys3696 GET /projects/:id/deploy_keys/:key_id3697 returns a single key3698 returns 404 Not Found with invalid ID3699 POST /projects/:id/deploy_keys3700 does not create an invalid ssh key3701 does not create a key without title3702 creates new ssh key3703 returns an existing ssh key when attempting to add a duplicate3704 joins an existing ssh key to a new project3705 accepts can_push parameter3706 PUT /projects/:id/deploy_keys/:key_id3707 updates a public deploy key as admin3708 does not update a public deploy key as non admin3709 does not update a private key with invalid title3710 updates a private ssh key with correct attributes3711 DELETE /projects/:id/deploy_keys/:key_id3712 deletes existing key3713 returns 404 Not Found with invalid ID3714 behaves like 412 response3715 for a modified ressource3716 returns 4123717 for an unmodified ressource3718 returns accepted3719 POST /projects/:id/deploy_keys/:key_id/enable3720 when the user can admin the project3721 enables the key3722 when authenticated as non-admin user3723 returns a 404 error3724Boards::Issues::MoveService3725 #execute3726 when parent is a project3727 behaves like issues move service3728 when moving an issue between lists3729 delegates the label changes to Issues::UpdateService3730 removes the label from the list it came from and adds the label of the list it goes to3731 when moving to closed3732 delegates the close proceedings to Issues::CloseService3733 removes all list-labels from boards and close the issue3734 when moving from closed3735 delegates the re-open proceedings to Issues::ReopenService3736 adds the label of the list it goes to and reopen the issue3737 when moving to same list3738 returns false3739 keeps issues labels3740 sorts issues3741 when parent is a group3742 behaves like issues move service3743 when moving an issue between lists3744 delegates the label changes to Issues::UpdateService3745 removes the label from the list it came from and adds the label of the list it goes to3746 when moving to closed3747 delegates the close proceedings to Issues::CloseService3748 removes all list-labels from boards and close the issue3749 when moving from closed3750 delegates the re-open proceedings to Issues::ReopenService3751 adds the label of the list it goes to and reopen the issue3752 when moving to same list3753 returns false3754 keeps issues labels3755 sorts issues3756 when on a group board3757 sends the board_group_id parameter3758MergeRequests::Conflicts::ResolveService3759 #execute3760 with section params3761 when the source and target project are the same3762 creates a commit with the message3763 creates a commit with the correct parents3764 when some files have trailing newlines3765 preserves trailing newlines from our side of the conflicts3766 when the source project is a fork and does not contain the HEAD of the target branch3767 creates a commit with the message3768 creates a commit with the correct parents3769 when gitaly is disabled3770 gets conflicts from the source project3771 with content and sections params3772 creates a commit with the message3773 creates a commit with the correct parents3774 sets the content to the content given3775 when a resolution section is missing3776 raises a ResolutionError error3777 when the content of a file is unchanged3778 raises a ResolutionError error3779 when a file is missing3780 raises a ResolutionError error3781PushEventPayloadService3782 #execute3783 creates a new PushEventPayload row3784 sets the push_event_payload association of the used event3785 #commit_title3786 returns nil if no commits were pushed3787 returns a String limited to 70 characters3788 does not truncate the commit message if it is shorter than 70 characters3789 includes the first line of a commit message if the message spans multiple lines3790 #commit_from_id3791 returns nil when creating a new ref3792 returns the ID of the first commit when pushing to an existing ref3793 #commit_to_id3794 returns nil when removing an existing ref3795 #commit_count3796 returns the number of commits3797 raises when the push data does not contain the commits count3798 #ref3799 returns the name of the ref3800 raises when the push data does not contain the ref name3801 #revision_before3802 returns the revision from before the push3803 raises when the push data does not contain the before revision3804 #revision_after3805 returns the revision from after the push3806 raises when the push data does not contain the after revision3807 #trimmed_ref3808 returns the ref name without its prefix3809 #create?3810 returns true when creating a new ref3811 returns false when pushing to an existing ref3812 #remove?3813 returns true when removing an existing ref3814 returns false pushing to an existing ref3815 #action3816 returns :created when creating a ref3817 returns :removed when removing an existing ref3818 returns :pushed when pushing to an existing ref3819 #ref_type3820 returns :tag for a tag3821 returns :branch for a branch3822Profile account page3823 when I delete my account3824 should text "Delete account"3825 does not immediately delete the account3826 deletes user3827 shows invalid password flash message3828 does not show delete button when user owns a group3829 when I reset RSS token3830 resets RSS token3831 when I reset incoming email token3832 resets incoming email token3833 when I change my username3834 changes my username3835Gitlab::Checks::ChangeAccess3836 #exec3837 without failed checks3838 doesn't raise an error3839 when the user is not allowed to push to the repo3840 raises an error3841 tags check3842 raises an error if the user is not allowed to update tags3843 with protected tag3844 as master3845 deletion3846 is prevented3847 update3848 is prevented3849 creation3850 prevents creation below access level3851 when user has access3852 allows tag creation3853 branches check3854 trying to delete the default branch3855 raises an error3856 protected branches check3857 raises an error if the user is not allowed to do forced pushes to protected branches3858 raises an error if the user is not allowed to merge to protected branches3859 raises an error if the user is not allowed to push to protected branches3860 branch deletion3861 if the user is not allowed to delete protected branches3862 raises an error3863 if the user is allowed to delete protected branches3864 through the web interface3865 allows branch deletion3866 over SSH or HTTP3867 raises an error3868 LFS integrity check3869 with LFS not enabled3870 skips integrity check3871 with LFS enabled3872 fails if any LFS blobs are missing3873 succeeds if LFS objects have already been uploaded3874 deletion3875 skips integrity check3876 LFS file lock check3877 with LFS not enabled3878 skips the validation3879 with LFS enabled3880 when change is sent by a different user3881 raises an error if the user is not allowed to update the file3882 when change is sent by the author of the lock3883 doesn't raise any error3884 LFS file lock check3885 with LFS not enabled3886 skips the validation3887 with LFS enabled3888 when change is sent by a different user3889 raises an error if the user is not allowed to update the file3890 when change is sent by the author of the lock3891 doesn't raise any error3892Projects::UpdateService#execute3893 returns an error result when record cannot be updated3894 #execute3895 when changing visibility level3896 when visibility_level is INTERNAL3897 updates the project to internal3898 when visibility_level is PUBLIC3899 updates the project to public3900 when visibility levels are restricted to PUBLIC only3901 when visibility_level is INTERNAL3902 updates the project to internal3903 when visibility_level is PUBLIC3904 does not update the project to public3905 when updated by an admin3906 updates the project to public3907 when project visibility is higher than parent group3908 does not update project visibility level3909 when updating project that has forks3910 updates forks visibility level when parent set to more restrictive3911 does not update forks visibility level when parent set to less restrictive3912 when updating a default branch3913 changes a default branch3914 does not change a default branch3915 when we update project but not enabling a wiki3916 does not try to create an empty wiki3917 handles empty project feature attributes3918 when enabling a wiki3919 creates a wiki3920 logs an error and creates a metric when wiki can not be created3921 when updating a project that contains container images3922 does not allow to rename the project3923 allows to update other settings3924 when renaming a project3925 with legacy storage3926 does not allow renaming when new path matches existing repository on disk3927 with hashed storage3928 does not check if new path matches existing repository on disk3929 when passing invalid parameters3930 returns an error result when record cannot be updated3931 when updating #pages_https_only3932 updates the attribute3933 calls Projects::UpdatePagesConfigurationService3934 #run_auto_devops_pipeline?3935 when master contains a .gitlab-ci.yml file3936 should eq false3937 when auto devops is explicitly enabled3938 should eq true3939 when auto devops is explicitly disabled3940 should eq false3941 when auto devops is set to instance setting3942 when auto devops is enabled system-wide3943 should eq true3944 when auto devops is disabled system-wide3945 should eq false3946 repository_storage3947 calls the change repository storage method if the storage changed3948 doesn't call the change repository storage for non-admin users3949 repository_size_limit assignment as Bytes3950 when param present3951 converts from MB to Bytes3952 when param not present3953 assign nil value3954Projects::EnvironmentsController3955 GET index3956 when a request for the HTML is made3957 responds with status code 2003958 expires etag cache to force reload environments list3959 when requesting JSON response for folders3960 when requesting available environments scope3961 responds with matching schema3962 responds with a payload describing available environments3963 contains values describing environment scopes sizes3964 sets the polling interval header3965 when requesting stopped environments scope3966 responds with a payload describing stopped environments3967 contains values describing environment scopes sizes3968 when license does not has the GitLab_DeployBoard add-on3969 does not return the rollout_status_path attribute3970 GET folder3971 when using default format3972 responds with HTML3973 when using JSON format3974 sorts the subfolders lexicographically3975 GET show3976 with valid id3977 responds with a status code 2003978 with invalid id3979 responds with a status code 4043980 GET edit3981 responds with a status code 2003982 PATCH #update3983 responds with a 3023984 PATCH #stop3985 when env not available3986 returns 4043987 when stop action3988 returns action url3989 when no stop action3990 returns env url3991 GET #terminal3992 with valid id3993 responds with a status code 2003994 loads the terminals for the enviroment3995 with invalid id3996 responds with a status code 4043997 GET #terminal_websocket_authorize3998 with valid workhorse signature3999 and valid id4000 returns the first terminal for the environment4001 and invalid id4002 returns 4044003 with invalid workhorse signature4004 aborts with an exception4005 GET #metrics4006 when environment has no metrics4007 returns a metrics page4008 when requesting metrics as JSON4009 returns a metrics JSON document4010 when environment has some metrics4011 returns a metrics JSON document4012 GET #additional_metrics4013 when environment has no metrics4014 when requesting metrics as JSON4015 returns a metrics JSON document4016 when environment has some metrics4017 returns a metrics JSON document4018Import::GiteaController4019 GET new4020 behaves like a GitHub-ish import controller: GET new4021 redirects to status if we already have a token4022 renders the :new page if no token is present in session4023 POST personal_access_token4024 behaves like a GitHub-ish import controller: POST personal_access_token4025 updates access token4026 GET status4027 behaves like a GitHub-ish import controller: GET status4028 assigns variables4029 does not show already added project4030 handles an invalid access token4031 POST create4032 behaves like a GitHub-ish import controller: POST create4033 returns 200 response when the project is imported successfully4034 returns 422 response when the project could not be imported4035 when the repository owner is the provider user4036 when the provider user and GitLab user's usernames match4037 takes the current user's namespace4038 when the provider user and GitLab user's usernames don't match4039 takes the current user's namespace4040 when the repository owner is not the provider user4041 when a namespace with the provider user's username already exists4042 when the namespace is owned by the GitLab user4043 takes the existing namespace4044 when the namespace is not owned by the GitLab user4045 creates a project using user's namespace4046 when a namespace with the provider user's username doesn't exist4047 when current user can create namespaces4048 creates the namespace4049 takes the new namespace4050 when current user can't create namespaces4051 doesn't create the namespace4052 takes the current user's namespace4053 user has chosen a namespace and name for the project4054 takes the selected namespace and name4055 takes the selected name and default namespace4056 user has chosen an existing nested namespace and name for the project4057 takes the selected namespace and name4058 user has chosen a non-existent nested namespaces and name for the project4059 takes the selected namespace and name4060 creates the namespaces4061 new namespace has the right parent4062 user has chosen existent and non-existent nested namespaces and name for the project4063 takes the selected namespace and name4064 creates the namespaces4065 does not create a new namespace under the user namespace4066 user cannot create a subgroup inside a group is not a member of4067 does not take the selected namespace and name4068 does not create the namespaces4069 user can use a group without having permissions to create a group4070 takes the selected namespace and name4071 when user can not create projects in the chosen namespace4072 returns 422 response4073API::ProjectSnippets4074 GET /projects/:project_id/snippets/:id4075 always exposes expires_at as nil4076 GET /projects/:project_id/snippets/4077 returns all snippets available to team member4078 hides private snippets from regular user4079 POST /projects/:project_id/snippets/4080 creates a new snippet4081 returns 400 for missing parameters4082 when the snippet is spam4083 when the snippet is private4084 creates the snippet4085 when the snippet is public4086 rejects the shippet4087 creates a spam log4088 PUT /projects/:project_id/snippets/:id/4089 updates snippet4090 returns 404 for invalid snippet id4091 returns 400 for missing parameters4092 when the snippet is spam4093 when the snippet is private4094 creates the snippet4095 when the snippet is public4096 rejects the snippet4097 creates a spam log4098 when the private snippet is made public4099 rejects the snippet4100 creates a spam log4101 DELETE /projects/:project_id/snippets/:id/4102 deletes snippet4103 returns 404 for invalid snippet id4104 GET /projects/:project_id/snippets/:id/raw4105 returns raw text4106 returns 404 for invalid snippet id4107MigrateKubernetesServiceToNewClustersArchitectures4108 when unique KubernetesService exists4109 when KubernetesService is active4110 behaves like KubernetesService migration4111 migrates the KubernetesService to Platform::Kubernetes4112 when unique KubernetesService spawned from Service Template4113 migrates the KubernetesService to Platform::Kubernetes without template4114 when managed KubernetesService exists4115 does not migrate the KubernetesService and disables the kubernetes_service4116 when production cluster has already been existed4117 migrates the KubernetesService to Platform::Kubernetes4118 when default cluster has already been existed4119 migrates the KubernetesService to Platform::Kubernetes with dedicated environment_scope4120 when default cluster and migrated cluster has already been existed4121 migrates the KubernetesService to Platform::Kubernetes with dedicated environment_scope4122 when KubernetesService has nullified parameters4123 does not migrate the KubernetesService and disables the kubernetes_service4124 when KubernetesService has empty token4125 does not migrate the KubernetesService and disables the kubernetes_service4126 when KubernetesService does not exist4127 does not migrate the KubernetesService4128BuildDetailsEntity4129 inherits from JobEntity4130 #as_json4131 contains the needed key value pairs4132 when the user has access to issues and merge requests4133 when merge request orginates from the same project4134 contains the needed key value pairs4135 exposes correct details of the merge request4136 has a correct merge request path4137 when merge request is from a fork4138 contains the needed key value pairs4139 exposes details of the merge request4140 has a merge request path to a target project4141 when the build has not been erased4142 exposes a build erase path4143 when the build has been erased4144 exposes the user who erased the build4145 when the user can only read the build4146 won't display the paths to issues and merge requests4147Projects tree4148 renders tree table4149 LFS4150 renders LFS badge on blob item4151 web IDE4152 opens folder in IDE4153MigrateProcessCommitWorkerJobs4154 Project4155 find_including_path4156 returns Project instances4157 selects the full path for every Project4158 #repository_storage_path4159 returns the storage path for the repository4160 #repository_path4161 returns the path to the repository4162 #repository4163 returns a Rugged::Repository4164 #up4165 skips jobs using a project that no longer exists4166 skips jobs using commits that no longer exist4167 inserts migrated jobs back into the queue4168 encodes data to UTF-84169 a migrated job4170 includes the project ID4171 includes the user ID4172 includes the commit ID4173 includes the commit message4174 includes the parent IDs4175 includes the author date4176 includes the author name4177 includes the author Email4178 includes the commit date4179 includes the committer name4180 includes the committer Email4181 #down4182 pushes migrated jobs back into the queue4183 a migrated job4184 includes the project ID4185 includes the user ID4186 includes the commit SHA4187Groups > Members > Leave group4188 guest leaves the group4189 guest leaves the group as last member4190 owner leaves the group if they is not the last owner4191 owner can not leave the group if they is a last owner4192Projects > Files > Find file keyboard shortcuts4193 opens file when pressing enter key4194 navigates files with arrow keys4195WebHookService4196 #initialize4197 allow_local_requests is true if hook is a SystemHook4198 allow_local_requests is false if hook is not a SystemHook4199 #execute4200 POSTs to the webhook URL4201 POSTs the data as JSON4202 catches exceptions4203 handles exceptions4204 handles 200 status code4205 handles 2xx status codes4206 when token is defined4207 POSTs to the webhook URL4208 execution logging4209 with success4210 log successful execution4211 with exception4212 log failed execution4213 with unsafe response body4214 log successful execution4215 should not log ServiceHooks4216 should not change #count4217 #async_execute4218 enqueue WebHookWorker4219Project milestone4220 when project has enabled issues4221 shows issues tab4222 shows issues stats4223 shows link to browse and add issues4224 when project has disabled issues4225 hides issues tab4226 hides issues stats4227 hides new issue button4228 does not show an informative message4229 when project has an issue4230 the collapsed sidebar4231 shows the total MR and issue counts4232Gitlab::BackgroundMigration::AddMergeRequestDiffCommitsCount4233 #perform4234 migrates diffs that have no commits4235 skips diffs that have commits_count already set4236 migrates multiple diffs to the correct values4237MigrateGcpClustersToNewClustersArchitectures4238 when cluster is being created4239 correctly migrate to new clusters architectures4240 when cluster has been created4241 correctly migrate to new clusters architectures4242User activates HipChat4243 with standart settings4244 activates service4245 with custom settings4246 activates service4247Merge requests > User merges immediately4248 when there is active pipeline for merge request4249 enables merge immediately4250User toggles subscription4251 unsubscribes from issue4252Groups::VariablesController4253 GET #show4254 renders the variables as json4255 has only one variable4256 PATCH #update4257 with invalid new variable parameters4258 does not update the existing variable4259 does not create the new variable4260 returns a bad request response4261 with duplicate new variable parameters4262 does not update the existing variable4263 does not create the new variable4264 returns a bad request response4265 with valid new variable parameters4266 updates the existing variable4267 creates the new variable4268 returns a successful response4269 has all variables in response4270 with a deleted variable4271 destroys the variable4272 returns a successful response4273 has all variables in response4274Banzai::Filter::RedactorFilter4275 ignores non-GFM links4276 skips when the skip_redaction flag is set4277 with data-project4278 valid projects4279 allows permitted Project references4280 invalid projects4281 removes unpermitted references4282 handles invalid references4283 with data-issue4284 allows references for non confidential issues4285 for confidential issues4286 removes references for non project members4287 removes references for project members with guest role4288 allows references for author4289 allows references for assignee4290 allows references for project members4291 allows references for admin4292 for user references4293 with data-group4294 removes unpermitted Group references4295 allows permitted Group references4296 handles invalid Group references4297 with data-user4298 allows any User reference4299Milestones::PromoteService4300 #execute4301 validations4302 raises error if milestone does not belong to a project4303 raises error if project does not belong to a group4304 does not promote milestone and update issuables if promoted milestone is not valid4305 without duplicated milestone titles across projects4306 promotes project milestone to group milestone4307 does not update issuables without milestone with the new promoted milestone4308 sets issuables with new promoted milestone4309 with duplicated milestone titles across projects4310 deletes project milestones with the same title4311 does not update issuables without milestone with the new promoted milestone4312 sets all issuables with new promoted milestone4313User deletes branch4314 deletes branch4315create_tokens4316 setting secret keys4317 when none of the secrets exist4318 generates different hashes for secret_key_base, otp_key_base, and db_key_base4319 generates an RSA key for openid_connect_signing_key4320 warns about the secrets to add to secrets.yml4321 writes the secrets to secrets.yml4322 does not write a .secret file4323 when the other secrets all exist4324 when secret_key_base exists in the environment and secrets.yml4325 does not issue a warning4326 uses the environment variable4327 does not update secrets.yml4328 when secret_key_base and otp_key_base exist4329 does not write any files4330 sets the the keys to the values from the environment and secrets.yml4331 deletes the .secret file4332 when secret_key_base and otp_key_base do not exist4333 uses the file secret4334 keeps the other secrets as they were4335 warns about the missing secrets4336 deletes the .secret file4337 when db_key_base is blank but exists in secrets.yml4338 warns about updating db_key_base4339 warns about the blank value existing in secrets.yml and exits4340 does not update secrets.yml4341Gitlab::ImportExport::MergeRequestParser4342 has a source branch4343 has a target branch4344 parses a MR that has no source branch4345Projects > Show > User manages notifications4346 changes the notification setting4347Projects > Show > Redirects4348 shows public project page4349 redirects to sign in page when project is private4350 redirects to sign in page when project does not exist4351 redirects to public project page after signing in4352 redirects to private project page after sign in4353 when signed in4354 returns 404 status when project does not exist4355 returns 404 when project is private4356layouts/nav/sidebar/_project4357 issue boards4358 has board tab4359 has board tab when multiple issue boards is not available4360 container registry tab4361 has both Registry and Repository tabs4362 highlights only one tab4363 highlights container registry tab only4364Gitlab::LegacyGithubImport::BranchFormatter4365 #exists?4366 returns true when branch exists and commit is part of the branch4367 returns false when branch exists and commit is not part of the branch4368 returns false when branch does not exist4369 #repo4370 returns raw repo4371 #sha4372 returns raw sha4373 #valid?4374 returns true when raw sha and ref are present4375 returns false when raw sha is blank4376 returns false when raw ref is blank4377Projects > Show > User sees README4378 shows the project README4379Snippet4380 modules4381 should includes the Gitlab::VisibilityLevel module4382 should includes the Participable module4383 should includes the Referable module4384 should includes the Sortable module4385 should includes the Awardable module4386 associations4387 should belong to author class_name => User4388 should belong to project4389 should have many notes dependent => destroy4390 should have many award_emoji dependent => destroy4391 validation4392 should validate that :author cannot be empty/falsy4393 should validate that :title cannot be empty/falsy4394 should validate that the length of :title is at most 2554395 should validate that the length of :file_name is at most 2554396 should validate that :content cannot be empty/falsy4397 should validate that :visibility_level is either ‹0›, ‹10›, or ‹20›4398 #to_reference4399 when snippet belongs to a project4400 returns a String reference to the object4401 supports a cross-project reference4402 when snippet does not belong to a project4403 returns a String reference to the object4404 still returns shortest reference when project arg present4405 #file_name4406 file_name is nil4407 returns an empty string4408 file_name is not nil4409 returns the file_name4410 #content_html_invalidated?4411 invalidates the HTML cache of content when the filename changes4412 .search4413 returns snippets with a matching title4414 returns snippets with a partially matching title4415 returns snippets with a matching title regardless of the casing4416 returns snippets with a matching file name4417 returns snippets with a partially matching file name4418 returns snippets with a matching file name regardless of the casing4419 .search_code4420 returns snippets with matching content4421 returns snippets with partially matching content4422 returns snippets with matching content regardless of the casing4423 #participants4424 includes the snippet author4425 includes the note authors4426 #check_for_spam4427 when public and spammable attributes changed4428 returns true4429 when private4430 returns false4431 returns true when switching to public4432 when spammable attributes have not changed4433 returns false4434 #blob4435 returns a blob representing the snippet data4436User browses jobs4437 shows the coverage4438 shows the "CI Lint" button4439 with a failed job4440 displays a tooltip with the failure reason4441Projects > Show > User sees last commit CI status4442 shows the project README4443forked project import4444 can access the MR4445Gitlab::Ci::Status::Build::FailedAllowed4446 #text4447 does not override status text4448 #icon4449 returns a warning icon4450 #label4451 returns information about failed but allowed to fail status4452 #group4453 returns status failed with warnings status group4454 action details4455 #has_action?4456 does not decorate action details4457 #action_path4458 does not decorate action path4459 #action_icon4460 does not decorate action icon4461 #action_title4462 does not decorate action title4463 #badge_tooltip4464 does override badge_tooltip4465 #status_tooltip4466 does override status_tooltip4467 .matches?4468 when build is failed4469 when build is allowed to fail4470 is a correct match4471 when build is not allowed to fail4472 is not a correct match4473 when build did not fail4474 when build is allowed to fail4475 is not a correct match4476 when build is not allowed to fail4477 is not a correct match4478Gitlab::Email::Handler::UnsubscribeHandler4479 when notification concerns a commit4480 handler does not raise an error4481 user is unsubscribed4482 leaves user unsubscribed4483 user is subscribed4484 unsubscribes user from notable4485 when the noteable could not be found4486 raises a NoteableNotFoundError4487 when no sent notification for the mail key could be found4488 raises a SentNotificationNotFoundError4489ProjectGroupLink4490 Associations4491 should belong to group4492 should belong to project4493 Validation4494 should validate that :project_id cannot be empty/falsy4495 should validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure4496 should validate that :group cannot be empty/falsy4497 should validate that :group_access cannot be empty/falsy4498 doesn't allow a project to be shared with the group it is in4499 doesn't allow a project to be shared with an ancestor of the group it is in4500 destroying a record4501 refreshes group users' authorized projects4502Banzai::ReferenceParser::ExternalIssueParser4503 #nodes_visible_to_user4504 when the link has a data-issue attribute4505 creates reference when the feature is 04506 creates reference when the feature is 104507 creates reference when the feature is 204508 #referenced_by4509 when the link has a data-project attribute4510 when the link has a data-external-issue attribute4511 returns an Array of ExternalIssue instances4512 when the link does not have a data-external-issue attribute4513 returns an empty Array4514 when the link does not have a data-project attribute4515 returns an empty Array4516 #issue_ids_per_project4517 returns a Hash containing range IDs per project4518 does not add a project when the data-external-issue attribute is empty4519PruneOldEventsWorker4520 #perform4521 prunes events older than 12 months4522 leaves fresh events4523 leaves events from exactly 12 months ago4524Notes::ResolveService4525 #execute4526 resolves the note4527 sends notifications if all discussions are resolved4528gitlab:artifacts rake tasks4529 check4530 outputs the integrity check for each batch4531 errors out about missing files on the file system4532 errors out about invalid checksum4533 errors out about missing checksum4534notify/pipeline_success_email.html.haml4535 pipeline with user4536 renders the email correctly4537 pipeline without user4538 renders the email correctly4539Gitlab::JobWaiter4540 .notify4541 pushes the jid to the named queue4542 #wait4543 returns when all jobs have been completed4544 times out if not all jobs complete4545WebHookLog4546 should belong to web_hook4547 should serialize :request_headers class_name => Hash4548 should serialize :request_data class_name => Hash4549 should serialize :response_headers class_name => Hash4550 should validate that :web_hook cannot be empty/falsy4551 #success?4552 2xx4553 should be truthy4554 not 2xx4555 should be falsey4556 internal erorr4557 should be falsey4558Unicorn4559I, [2018-05-02T14:56:13.797353 #8915] INFO -- : Refreshing Gem list4560I, [2018-05-02T14:56:13.805576 #8915] INFO -- : listening on addr=/builds/gitlab-org/gitlab-ee/tmp/tests/unicorn.socket fd=94561I, [2018-05-02T14:56:13.807312 #8915] INFO -- : master process ready4562I, [2018-05-02T14:56:13.808189 #8917] INFO -- : worker=0 ready4563I, [2018-05-02T14:56:14.678649 #8915] INFO -- : reaped #<Process::Status: pid 8917 exit 0> worker=04564I, [2018-05-02T14:56:14.681064 #8920] INFO -- : worker=0 ready4565 has a worker that self-terminates on signal SIGQUIT4566I, [2018-05-02T14:56:15.682498 #8915] INFO -- : reaped #<Process::Status: pid 8920 exit 0> worker=04567 has a worker that self-terminates on signal SIGTERM4568I, [2018-05-02T14:56:15.690082 #8923] INFO -- : worker=0 ready4569E, [2018-05-02T14:56:15.696927 #8915] ERROR -- : reaped #<Process::Status: pid 8923 SIGKILL (signal 9)> worker=04570I, [2018-05-02T14:56:15.699213 #8926] INFO -- : worker=0 ready4571 has a worker that self-terminates on signal SIGKILL4572I, [2018-05-02T14:56:15.801232 #8915] INFO -- : reaped #<Process::Status: pid 8926 exit 0> worker=04573I, [2018-05-02T14:56:15.801414 #8915] INFO -- : master complete4574ButtonHelper4575 http_clone_button4576 with internal auth enabled4577 when user has a password4578 shows no tooltip4579 when user has password automatically set4580 shows the password text on the dropdown4581 with internal auth disabled4582 when user has no personal access tokens4583 has a personal access token text on the dropdown description4584 when user is ldap user4585 shows no tooltip4586 ssh_button4587 without an ssh key on the user4588 shows a warning on the dropdown description4589 with an ssh key on the user4590 there is no warning on the dropdown description4591 ssh and http clone buttons4592 only shows the title of any of the clone buttons when append_link is false4593 clipboard_button4594 with default options4595 when no `text` attribute is not provided4596 shows copy to clipboard button with default configuration and no text set to copy4597 when `text` attribute is provided4598 shows copy to clipboard button with provided `text` to copy4599 when `title` attribute is provided4600 shows copy to clipboard button with provided `title` as tooltip4601 with `button_text` attribute provided4602 shows copy to clipboard button with provided `button_text` as button label4603 with `hide_tooltip` attribute provided4604 shows copy to clipboard button without tooltip support4605 with `hide_button_icon` attribute provided4606 shows copy to clipboard button without tooltip support4607Admin Conversational Development Index4608 when usage ping is disabled4609 shows empty state4610 when there is no data to display4611 shows empty state4612 when there is data to display4613 shows numbers for each metric4614Projects > Snippets > User updates a snippet4615 updates a snippet4616Clusters::Gcp::VerifyProvisionStatusService4617 #execute4618 when operation status is RUNNING4619 behaves like continue_creation4620 schedules a worker for status minitoring4621 when cluster creation time exceeds timeout4622 behaves like error4623 sets an error to provider object4624 when operation status is PENDING4625 behaves like continue_creation4626 schedules a worker for status minitoring4627 when operation status is DONE4628 behaves like finalize_creation4629 schedules a worker for status minitoring4630 when operation status is unexpected4631 behaves like error4632 sets an error to provider object4633 when failed to get operation status4634 behaves like error4635 sets an error to provider object4636Users::CreateService4637 #execute4638 with an admin user4639 when required parameters are provided4640 returns a persisted user4641 persists the given attributes4642 user is not confirmed if skip_confirmation param is not present4643 logs the user creation4644 executes system hooks4645 does not send a notification email4646 when the current_user is not persisted4647 persists the given attributes and sets created_by_id to nil4648 when force_random_password parameter is true4649 generates random password4650 when password_automatically_set parameter is true4651 persists the given attributes4652 when skip_confirmation parameter is true4653 confirms the user4654 when reset_password parameter is true4655 resets password even if a password parameter is given4656 sends a notification email4657 with nil user4658 persists the given attributes4659projects/ci/jobs/_build4660 won't include a column with a link to its pipeline by default4661 can include a column with a link to its pipeline4662Gitlab::RepoPath4663 .parse4664 a repository storage path4665 parses a full repository path4666 parses a full wiki path4667 a relative path4668 parses a relative repository path4669 parses a relative wiki path4670 parses a relative path starting with /4671 of a redirected project4672 parses a relative repository path4673 parses a relative wiki path4674 parses a relative path starting with /4675 .strip_storage_path4676 strips the storage path4677 raises NotFoundError if no storage matches the path4678 .find_project4679 when finding a project by its canonical path4680 when the cases match4681 returns the project and false4682 when the cases do not match4683 returns the project and false4684 when finding a project via a redirect4685 returns the project and true4686AbuseReportsController4687 GET new4688 when the user has already been deleted4689 redirects the reporter to root_path4690 when the user has already been blocked4691 redirects the reporter to the user's profile4692 POST create4693 with valid attributes4694 saves the abuse report4695 calls notify4696 redirects back to the reported user4697 with invalid attributes4698 renders new4699ForkNetworkMember4700 validations4701 should validate that :project cannot be empty/falsy4702 should validate that :fork_network cannot be empty/falsy4703 destroying a ForkNetworkMember4704 removes the fork network if it was the last member4705 does not destroy the fork network if there are members left4706Abuse reports4707 Report abuse4708GoogleApi::AuthorizationsController4709 GET|POST #callback4710 sets token and expires_at in session4711 when redirect uri key is stored in state4712 redirects to the URL stored in state param4713 when redirection url is not stored in state4714 redirects to root_path4715Emails::CreateService4716 #execute4717 creates an email with valid attributes4718 creates an email with additional attributes4719 has the right user association4720 registers a security event4721gitlab:lfs namespace rake task4722 migrate4723 object storage disabled4724I, [2018-05-02T14:56:30.926595 #78] INFO -- : Starting transfer of LFS files to object storage4725E, [2018-05-02T14:56:30.930611 #78] ERROR -- : Failed to transfer LFS object b68143e6463773b1b6c6fd009a76c32aeec041faff32ba2ed42fd7f708a00001 with error: Object Storage is not enabled4726 doesn't migrate files4727 object storage enabled4728I, [2018-05-02T14:56:31.295683 #78] INFO -- : Starting transfer of LFS files to object storage4729I, [2018-05-02T14:56:31.302617 #78] INFO -- : Transferred LFS object b68143e6463773b1b6c6fd009a76c32aeec041faff32ba2ed42fd7f708a00002 of size 499013 to object storage4730 migrates local file to object storage4731Banzai::IssuableExtractor4732 returns instances of issuables for nodes with references4733 caching4734 saves records to cache4735Projects > Members > Group member cannot leave group project4736 user does not see a "Leave project" link4737Gitlab::ImportExport4738 export filename4739 contains the project path4740 contains the namespace path4741 does not go over a certain length4742AnalyticsBuildSerializer4743 when there is a single object provided4744 contains important elements of analyticsBuild4745Gitlab::Git::Compare4746 #commits4747 has 8 elements4748 should include "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"4749 should not include "cfe32cf61b73a0d5e9f13e774abde7ff789b1660"4750 non-existing base ref4751 should be empty4752 non-existing head ref4753 should be empty4754 base ref is equal to head ref4755 should be empty4756 providing nil as base ref or head ref4757 should be empty4758 #diffs4759 has 10 elements4760 should include "files/ruby/popen.rb"4761 should not include "LICENSE"4762 non-existing base ref4763 should be empty4764 non-existing head ref4765 should be empty4766 #same4767 should eq false4768 base ref is equal to head ref4769 should eq true4770 #commits straight compare4771 has 8 elements4772 should include "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"4773 should not include "cfe32cf61b73a0d5e9f13e774abde7ff789b1660"4774 #diffs straight compare4775 has 10 elements4776 should include "files/ruby/popen.rb"4777 should not include "LICENSE"4778API::CircuitBreakers4779 GET circuit_breakers/repository_storage4780 returns a 401 for anonymous users4781 returns a 403 for users4782 returns an Array of storages4783 GET circuit_breakers/repository_storage/failing4784 returns an array of failing storages4785 DELETE circuit_breakers/repository_storage4786 clears all circuit_breakers4787FileMover4788 #execute4789 when move and field update successful4790 updates the description correctly4791 creates a new update record4792 schedules a background migration4793 when update_markdown fails4794 does not update the description4795 does not create a new update record4796CleanupNonexistingNamespacePendingDeleteProjects4797 #up4798 only cleans up when namespace does not exist4799 does nothing when no pending delete projects without namespace found4800UserCalloutsController4801 POST #create4802 with valid feature name4803 when callout entry does not exist4804 should create a callout entry with dismissed state4805 should return success4806 when callout entry already exists4807 should return success4808 with invalid feature name4809 should return bad request4810RecordsUploads4811 callbacks4812 #record_upload after `store`4813 #destroy_upload after `remove`4814 #record_upload callback4815 creates an Upload record after store4816 creates a new record and assigns size, path, model, and uploader4817 does not create an Upload record when the file doesn't exist4818 does not create an Upload record if model is missing4819 it destroys Upload records at the same path before recording4820 #destroy_upload callback4821 it destroys Upload records at the same path after removal4822projects/issues/_related_branches4823 shows the related branches with their build status4824Gitlab::GithubImport::Stage::ImportNotesWorker4825 #import4826 imports all the notes4827Gitlab::Ci::Pipeline::Chain::Skip4828 when pipeline has been skipped by a user4829 should break the chain4830 skips the pipeline4831 when pipeline has not been skipped4832 should not break the chain4833 should not skip a pipeline chain4834 when [ci skip] should be ignored4835 does not break the chain4836 when pipeline should be skipped but not persisted4837 breaks the chain4838 does not skip pipeline4839RedmineService4840 Associations4841 should belong to project4842 should have one service_hook4843 Validations4844 when service is active4845 should validate that :project_url cannot be empty/falsy4846 should validate that :issues_url cannot be empty/falsy4847 should validate that :new_issue_url cannot be empty/falsy4848 behaves like issue tracker service URL attribute4849 should allow :project_url to be ‹"https://example.com"›4850 should not allow :project_url to be ‹"example.com"›4851 should not allow :project_url to be ‹"ftp://example.com"›4852 should not allow :project_url to be ‹"herp-and-derp"›4853 behaves like issue tracker service URL attribute4854 should allow :issues_url to be ‹"https://example.com"›4855 should not allow :issues_url to be ‹"example.com"›4856 should not allow :issues_url to be ‹"ftp://example.com"›4857 should not allow :issues_url to be ‹"herp-and-derp"›4858 behaves like issue tracker service URL attribute4859 should allow :new_issue_url to be ‹"https://example.com"›4860 should not allow :new_issue_url to be ‹"example.com"›4861 should not allow :new_issue_url to be ‹"ftp://example.com"›4862 should not allow :new_issue_url to be ‹"herp-and-derp"›4863 when service is inactive4864 should not validate that :project_url cannot be empty/falsy4865 should not validate that :issues_url cannot be empty/falsy4866 should not validate that :new_issue_url cannot be empty/falsy4867 .reference_pattern4868 does allow # on the reference4869 behaves like allows project key on reference pattern4870 allows underscores in the project name4871 allows numbers in the project name4872 requires the project name to begin with A-Z4873Identity4874 relations4875 should belong to user4876 fields4877 should respond to #provider4878 should respond to #extern_uid4879 #is_ldap?4880 returns true if it is a ldap identity4881 returns false if it is not a ldap identity4882 .with_extern_uid4883 LDAP identity4884 finds the identity when the DN is formatted differently4885 any other provider4886 the extern_uid lookup is case insensitive4887 callbacks4888 before_save4889 normalizes extern uid4890 if extern_uid changes4891 if current_uid is nil4892 if extern_uid changed and not nil4893 after_destroy4894 if user synced attributes metadada provider4895 matches the identity provider4896 removes the user synced attributes4897 does not matche the identity provider4898 does not remove the user synced attributes4899BroadcastMessage4900 should be valid4901 validations4902 should allow :color to be ‹nil›4903 should allow :color to be ‹"#000"›4904 should allow :color to be ‹"#AABBCC"›4905 should not allow :color to be ‹"000"›4906 should allow :font to be ‹nil›4907 should allow :font to be ‹"#000"›4908 should allow :font to be ‹"#AABBCC"›4909 should not allow :font to be ‹"000"›4910 .current4911 returns message if time match4912 returns multiple messages if time match4913 returns empty list if time not come4914 returns empty list if time has passed4915 caches the output of the query4916 includes messages that need to be displayed in the future4917 does not clear the cache if only a future message should be displayed4918 #active?4919 is truthy when started and not ended4920 is falsey when ended4921 is falsey when not started4922 #started?4923 is truthy when starts_at has passed4924 is falsey when starts_at is in the future4925 #ended?4926 is truthy when ends_at has passed4927 is falsey when ends_at is in the future4928 #flush_redis_cache4929 flushes the Redis cache4930Gitlab::GithubImport::Stage::ImportPullRequestsWorker4931 #import4932 imports all the pull requests4933Banzai::Renderer4934 #render_field4935 without cache4936 returns cacheless render field4937 with cache4938 with a stale cache4939 caches and returns the result4940 skips database caching on a GitLab read-only instance4941 with an up-to-date cache4942 uses the cache4943BlobViewer::PackageJson4944 #package_name4945 returns the package name4946 #package_url4947 returns the package URL4948 #package_type4949 returns "package"4950 when package.json has "private": true4951 #package_url4952 returns homepage if any4953 #package_type4954 returns "private package"4955Gitlab::BareRepositoryImport::Repository4956 legacy storage4957 stores the repo path4958 stores the group path4959 stores the project name4960 stores the wiki path4961 #processable?4962 returns false if it is a wiki4963 returns true if group path is missing4964 returns true when group path and project name are present4965 #project_full_path4966 returns the project full path with trailing slash in the root path4967 returns the project full path with no trailing slash in the root path4968 hashed storage4969 stores the repo path4970 stores the wiki path4971 reads the group path from .git/config4972 reads the project name from .git/config4973 #processable?4974 returns false if it is a wiki4975 returns false when group and project name are missing4976 returns true when group path and project name are present4977 #project_full_path4978 returns the project full path with trailing slash in the root path4979 returns the project full path with no trailing slash in the root path4980Gitlab::Redis::Wrapper4981 .params4982 withstands mutation4983 when url contains unix socket reference4984 with old format4985 returns path key instead4986 with new format4987 returns path key instead4988 when url is host based4989 with old format4990 returns hash with host, port, db, and password4991 with new format4992 returns hash with host, port, db, and password4993 .url4994 withstands mutation4995 when yml file with env variable4996 reads redis url from env variable4997 ._raw_config4998 should be frozen4999 returns false when the file does not exist5000 returns false when the filename can't be determined5001 .with5002 when running not on sidekiq workers5003 instantiates a connection pool with size 55004 when running on sidekiq workers5005 instantiates a connection pool with a size based on the concurrency of the worker5006 #sentinels5007 when sentinels are defined5008 returns an array of hashes with host and port keys5009 when sentinels are not defined5010 returns nil5011 #sentinels?5012 when sentinels are defined5013 returns true5014 when sentinels are not defined5015 returns false5016 #raw_config_hash5017 returns default redis url when no config file is present5018 returns old-style single url config in a hash5019 #fetch_config5020 returns false when no config file is present5021 returns false when config file is present but has invalid YAML5022 .config_file_path5023 returns the absolute path to the configuration file5024RuboCop::Cop::Migration::AddConcurrentIndex5025 in migration5026 registers an offense when add_concurrent_index is used inside a change method5027 registers no offense when add_concurrent_index is used inside an up method5028 outside of migration5029 registers no offense5030Gitlab::I18n5031 .locale=5032 sets the locale based on current user preferred language5033 .use_default_locale5034 resets the locale to the default language5035RspecFlaky::Config5036 .generate_report?5037 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is not set5038 returns false5039 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is set5040 env_value: "1", result: true5041 returns false5042 env_value: "true", result: true5043 returns false5044 env_value: "foo", result: false5045 returns false5046 env_value: "0", result: false5047 returns false5048 env_value: "false", result: false5049 returns false5050 .suite_flaky_examples_report_path5051 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is not set5052 returns the default path5053 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is set5054 returns the value of the env variable5055 .flaky_examples_report_path5056 when ENV['FLAKY_RSPEC_REPORT_PATH'] is not set5057 returns the default path5058 when ENV['FLAKY_RSPEC_REPORT_PATH'] is set5059 returns the value of the env variable5060 .new_flaky_examples_report_path5061 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is not set5062 returns the default path5063 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is set5064 returns the value of the env variable5065Gitlab::GithubImport::Representation::Note5066 .from_api_response5067 does not set the user if the response did not include a user5068 behaves like a Note5069 returns an instance of Note5070 the returned Note5071 includes the noteable ID5072 includes the noteable type5073 includes the author details5074 includes the note body5075 includes the created timestamp5076 includes the updated timestamp5077 includes the GitHub ID5078 .from_json_hash5079 does not convert the author if it was not specified5080 behaves like a Note5081 returns an instance of Note5082 the returned Note5083 includes the noteable ID5084 includes the noteable type5085 includes the author details5086 includes the note body5087 includes the created timestamp5088 includes the updated timestamp5089 includes the GitHub ID5090Gitlab::HealthChecks::Redis::CacheCheck5091 #metrics5092 Check is passing5093 should include (have attributes {:name => "redis_cache_ping_success", :value => 1})5094 should include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})5095 should include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})5096 Check is misbehaving5097 should include (have attributes {:name => "redis_cache_ping_success", :value => 0})5098 should include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})5099 should include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})5100 Check is timeouting5101 should include (have attributes {:name => "redis_cache_ping_success", :value => 0})5102 should include (have attributes {:name => "redis_cache_ping_timeout", :value => 1})5103 should include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})5104 #readiness5105 Check returns ok5106 should have attributes {:success => true}5107 Check is misbehaving5108 should have attributes {:success => false, :message => "unexpected Cache check result: error!"}5109 Check is timeouting5110 should have attributes {:success => false, :message => "Cache check timed out"}5111 #liveness5112 should eq #<struct Gitlab::HealthChecks::Result success=true, message=nil, labels=nil>5113Gitlab::Metrics::Samplers::InfluxSampler5114 #start5115 runs once and gathers a sample at a given interval5116 #sample5117 samples various statistics5118 clears any GC profiles5119 #flush5120 schedules the metrics using Sidekiq5121 #sample_memory_usage5122 adds a metric containing the memory usage5123 #sample_file_descriptors5124 adds a metric containing the amount of open file descriptors5125 #sample_gc5126 adds a metric containing garbage collection statistics5127 #add_metric5128 prefixes the series name for a Rails process5129 prefixes the series name for a Sidekiq process5130 #sleep_interval5131 returns a Numeric5132 does not return the same interval twice in a row5133Gitlab::ImportExport::Reader5134 generates hash from project tree config5135 individual scenarios5136 generates the correct hash for a single project relation5137 generates the correct hash for a single project feature relation5138 generates the correct hash for a multiple project relation5139 generates the correct hash for a single sub-relation5140 generates the correct hash for a multiple sub-relation5141 generates the correct hash for a sub-relation with another sub-relation5142 generates the correct hash for a relation with included attributes5143 generates the correct hash for a relation with excluded attributes5144 generates the correct hash for a relation with both excluded and included attributes5145 generates the correct hash for a relation with custom methods5146 generates the correct hash for group members5147Gitlab::Ci::Config::Entry::Image5148 when configuration is a string5149 #value5150 returns image hash5151 #errors5152 does not append errors5153 #valid?5154 is valid5155 #image5156 returns image's name5157 #entrypoint5158 returns image's entrypoint5159 when configuration is a hash5160 #value5161 returns image hash5162 #errors5163 does not append errors5164 #valid?5165 is valid5166 #image5167 returns image's name5168 #entrypoint5169 returns image's entrypoint5170 when entry value is not correct5171 #errors5172 saves errors5173 #valid?5174 is not valid5175 when unexpected key is specified5176 #errors5177 saves errors5178 #valid?5179 is not valid5180GitlabUploader5181 #file_storage?5182 when file storage is used5183 should be file storage5184 when is remote storage5185 should not be file storage5186 #file_cache_storage?5187 when file storage is used5188 should be file cache storage5189 when is remote storage5190 should not be file cache storage5191 #move_to_cache5192 is true5193 #move_to_store5194 is true5195 #cache!5196 moves the file from the working directory to the cache directory5197Gitlab::Sherlock::Collection5198 #add5199 adds a new transaction5200 is aliased as <<5201 #each5202 iterates over every transaction5203 #clear5204 removes all transactions5205 #empty?5206 returns true for an empty collection5207 returns false for a collection with a transaction5208 #find_transaction5209 returns the transaction for the given ID5210 returns nil when no transaction could be found5211 #newest_first5212 returns transactions sorted from new to old5213Artifacts direct upload support5214 when object storage is enabled5215 when direct upload is enabled5216 when provider is Google5217 succeeds5218 when connection is empty5219 raises an error5220 when other provider is used5221 raises an error5222 when direct upload is disabled5223 succeeds5224 when object storage is disabled5225 succeeds5226Gitlab::DependencyLinker::RequirementsTxtLinker5227 .support?5228 supports requirements.txt5229 supports doc-requirements.txt5230 does not support other files5231 #link5232 links dependencies5233 links URLs5234 does not contain link with a newline as package name5235ChatMessage::WikiPageMessage5236 without markdown5237 #pretext5238 when :action == "create"5239 returns a message that a new wiki page was created5240 when :action == "update"5241 returns a message that a wiki page was updated5242 #attachments5243 when :action == "create"5244 returns the attachment for a new wiki page5245 when :action == "update"5246 returns the attachment for an updated wiki page5247 with markdown5248 #pretext5249 when :action == "create"5250 returns a message that a new wiki page was created5251 when :action == "update"5252 returns a message that a wiki page was updated5253 #attachments5254 when :action == "create"5255 returns the attachment for a new wiki page5256 when :action == "update"5257 returns the attachment for an updated wiki page5258 #activity5259 when :action == "create"5260 returns the attachment for a new wiki page5261 when :action == "update"5262 returns the attachment for an updated wiki page5263Gitlab::Ci::Trace::SectionParser5264 #sections5265 empty trace5266 should be empty5267 with a sectionless trace5268 should be empty5269 with trace markers5270 should eq 25271 should eq "b"5272 should eq 2017-10-05 00:00:00.000000000 +00005273 should eq 2017-10-05 00:00:01.000000000 +00005274 #parse!5275 multiple "section_" but no complete markers5276 must find 3 possible section start but no complete sections5277 trace with UTF-8 chars5278 must handle correctly byte positioning5279CaseSensitivity5280 .iwhere5281 using PostgreSQL5282 with a single column/value pair5283 returns the criteria for a column and a value5284 returns the criteria for a column with a table, and a value5285 with multiple column/value pairs5286 returns the criteria for a column and a value5287 returns the criteria for a column with a table, and a value5288 using MySQL5289 with a single column/value pair5290 returns the criteria for a column and a value5291 returns the criteria for a column with a table, and a value5292 with multiple column/value pairs5293 returns the criteria for a column and a value5294 returns the criteria for a column with a table, and a value5295Gitlab::Ci::Pipeline::Expression::Lexeme::Variable5296 .build5297 creates a new instance of the token5298 .type5299 is a value lexeme5300 #evaluate5301 returns variable value if it is defined5302 allows to use a string as a variable key too5303 returns nil if it is not defined5304 returns an empty string if it is empty5305Gitlab::SQL::Glob5306 .to_like5307 matches * as %5308 matches % literally5309 matches _ literally5310Gitlab::Ci::Config::Entry::Validator5311 delegated validator5312 when node is valid5313 validates attribute in node5314 returns no errors5315 when node is invalid5316 validates attribute in node5317 returns errors5318ShaAttribute5319 #sha_attribute5320 when the table exists5321 defines a SHA attribute for a binary column5322 raises ArgumentError when the column type is not :binary5323 when the table does not exist5324 does nothing5325BlocksJsonSerialization5326 blocks as_json5327 blocks to_json5328Gitlab::Auth::OAuth::Provider5329 #config_for5330 for an LDAP provider5331 when the provider exists5332 returns the config5333 when the provider does not exist5334 returns nil5335 for an OmniAuth provider5336 when the provider exists5337 returns the config5338 when the provider does not exist5339 returns nil5340Gitlab::StringPlaceholderReplacer5341 .render_url5342 returns the nil if the string is blank5343 returns the string if the placeholder regex5344 returns the string if no block given5345 when all params are valid5346 replaces each placeholders with the block result5347 does not replace the placeholder if the block result is nil5348Gitlab::Upgrader5349 current_version_raw5350 should eq "10.8.0-pre"5351 latest_version?5352 is true if newest version5353 latest_version_raw5354 gets the latest version from tags5355Gitlab::TcpChecker5356 #check5357 can connect to an open port5358 fails to connect to a closed port5359Presentable5360 #present5361 returns a presenter5362 takes optional attributes5363SystemCheck::BaseCheck5364 helpers on instance level5365 responds to SystemCheck::Helpers methods5366 responds to Gitlab::TaskHelpers methods5367Gitlab::SidekiqStatus::ServerMiddleware5368 #call5369 stops tracking of a job upon completion5370Knapsack report was generated. Preview:5371{5372 "spec/lib/gitlab/git_access_spec.rb": 126.5365378856659,5373 "spec/requests/api/services_spec.rb": 96.25882697105408,5374 "spec/models/user_spec.rb": 70.9655442237854,5375 "spec/features/issues/form_spec.rb": 45.92321753501892,5376 "spec/features/projects_spec.rb": 33.2333083152771,5377 "spec/features/issues/user_creates_branch_and_merge_request_spec.rb": 43.05224585533142,5378 "spec/requests/api/repositories_spec.rb": 29.98387908935547,5379 "spec/lib/gitlab/background_migration/prepare_untracked_uploads_spec.rb": 35.33336162567139,5380 "spec/features/issues/award_emoji_spec.rb": 28.45809769630432,5381 "spec/models/concerns/issuable_spec.rb": 29.037951707839966,5382 "spec/features/projects/pages_spec.rb": 20.804051876068115,5383 "spec/finders/projects_finder_spec.rb": 19.226400136947632,5384 "spec/lib/gitlab/reference_extractor_spec.rb": 13.067154884338379,5385 "spec/features/groups/empty_states_spec.rb": 14.383669137954712,5386 "spec/requests/api/deploy_keys_spec.rb": 15.233978748321533,5387 "spec/services/boards/issues/move_service_spec.rb": 12.805572986602783,5388 "spec/services/merge_requests/conflicts/resolve_service_spec.rb": 8.902777433395386,5389 "spec/services/push_event_payload_service_spec.rb": 7.678541660308838,5390 "spec/features/profile_spec.rb": 12.631381034851074,5391 "spec/lib/gitlab/checks/change_access_spec.rb": 10.878546953201294,5392 "spec/services/projects/update_service_spec.rb": 9.419795751571655,5393 "spec/controllers/projects/environments_controller_spec.rb": 8.41084361076355,5394 "spec/controllers/import/gitea_controller_spec.rb": 8.383553504943848,5395 "spec/requests/api/v3/project_snippets_spec.rb": 6.741360902786255,5396 "spec/migrations/migrate_kubernetes_service_to_new_clusters_architectures_spec.rb": 16.277944803237915,5397 "spec/serializers/build_details_entity_spec.rb": 11.047034502029419,5398 "spec/features/projects/tree/tree_show_spec.rb": 6.120168924331665,5399 "spec/migrations/migrate_process_commit_worker_jobs_spec.rb": 6.943778038024902,5400 "spec/features/groups/members/leave_group_spec.rb": 4.575529098510742,5401 "spec/features/projects/files/find_file_keyboard_spec.rb": 4.9522786140441895,5402 "spec/services/web_hook_service_spec.rb": 5.706964015960693,5403 "spec/features/projects/milestones/milestone_spec.rb": 4.105879068374634,5404 "spec/lib/gitlab/background_migration/add_merge_request_diff_commits_count_spec.rb": 8.268758296966553,5405 "spec/migrations/migrate_gcp_clusters_to_new_clusters_architectures_spec.rb": 5.131009340286255,5406 "spec/features/projects/services/user_activates_hipchat_spec.rb": 4.971243143081665,5407 "spec/features/merge_request/user_merges_immediately_spec.rb": 3.1520442962646484,5408 "spec/features/projects/issues/user_toggles_subscription_spec.rb": 2.3059887886047363,5409 "spec/controllers/groups/variables_controller_spec.rb": 3.2602336406707764,5410 "spec/lib/banzai/filter/redactor_filter_spec.rb": 3.304513692855835,5411 "spec/services/milestones/promote_service_spec.rb": 4.271663665771484,5412 "spec/features/projects/branches/user_deletes_branch_spec.rb": 2.436403274536133,5413 "spec/initializers/secret_token_spec.rb": 3.5553669929504395,5414 "spec/lib/gitlab/import_export/merge_request_parser_spec.rb": 2.649294853210449,5415 "spec/features/projects/show/user_manages_notifications_spec.rb": 2.667844295501709,5416 "spec/features/projects/show/redirects_spec.rb": 2.4323532581329346,5417 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 2.1334571838378906,5418 "spec/lib/gitlab/legacy_github_import/branch_formatter_spec.rb": 1.875736951828003,5419 "spec/features/projects/show/user_sees_readme_spec.rb": 1.8279578685760498,5420 "spec/models/snippet_spec.rb": 2.567755937576294,5421 "spec/features/projects/jobs/user_browses_jobs_spec.rb": 2.491703987121582,5422 "spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb": 1.6416163444519043,5423 "spec/lib/gitlab/import_export/fork_spec.rb": 2.7162675857543945,5424 "spec/lib/gitlab/ci/status/build/failed_allowed_spec.rb": 1.9221234321594238,5425 "spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb": 1.7433078289031982,5426 "spec/models/project_group_link_spec.rb": 1.9938092231750488,5427 "spec/lib/banzai/reference_parser/external_issue_parser_spec.rb": 2.7467660903930664,5428 "spec/workers/prune_old_events_worker_spec.rb": 1.7374181747436523,5429 "spec/services/notes/resolve_service_spec.rb": 1.4473075866699219,5430 "spec/tasks/gitlab/artifacts/check_rake_spec.rb": 1.6712687015533447,5431 "spec/views/notify/pipeline_success_email.html.haml_spec.rb": 1.2347311973571777,5432 "spec/lib/gitlab/job_waiter_spec.rb": 1.091078281402588,5433 "spec/models/hooks/web_hook_log_spec.rb": 0.6854043006896973,5434 "spec/unicorn/unicorn_spec.rb": 1.0365290641784668,5435 "spec/helpers/button_helper_spec.rb": 1.186060905456543,5436 "spec/features/admin/admin_conversational_development_index_spec.rb": 1.1642117500305176,5437 "spec/features/projects/snippets/user_updates_snippet_spec.rb": 1.424473524093628,5438 "spec/services/clusters/gcp/verify_provision_status_service_spec.rb": 0.980823278427124,5439 "spec/services/users/create_service_spec.rb": 1.2963180541992188,5440 "spec/views/projects/jobs/_build.html.haml_spec.rb": 0.9656689167022705,5441 "spec/lib/gitlab/repo_path_spec.rb": 0.685126543045044,5442 "spec/controllers/abuse_reports_controller_spec.rb": 0.8194432258605957,5443 "spec/models/fork_network_member_spec.rb": 0.8316650390625,5444 "spec/features/abuse_report_spec.rb": 0.6550543308258057,5445 "spec/controllers/google_api/authorizations_controller_spec.rb": 0.3194248676300049,5446 "spec/services/emails/create_service_spec.rb": 0.49332308769226074,5447 "spec/tasks/gitlab/lfs/migrate_rake_spec.rb": 0.8879997730255127,5448 "spec/lib/banzai/issuable_extractor_spec.rb": 0.6926629543304443,5449 "spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb": 0.4745481014251709,5450 "spec/lib/gitlab/import_export/import_export_spec.rb": 0.4844624996185303,5451 "spec/serializers/analytics_build_serializer_spec.rb": 0.2520487308502197,5452 "spec/lib/gitlab/git/compare_spec.rb": 0.5016522407531738,5453 "spec/requests/api/circuit_breakers_spec.rb": 0.4269731044769287,5454 "spec/uploaders/file_mover_spec.rb": 0.5093026161193848,5455 "spec/migrations/cleanup_nonexisting_namespace_pending_delete_projects_spec.rb": 0.29651641845703125,5456 "spec/controllers/user_callouts_controller_spec.rb": 0.28479981422424316,5457 "spec/uploaders/records_uploads_spec.rb": 0.4490349292755127,5458 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.3172330856323242,5459 "spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb": 0.29488301277160645,5460 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 0.22123384475708008,5461 "spec/models/project_services/redmine_service_spec.rb": 0.25165510177612305,5462 "spec/models/identity_spec.rb": 0.23495697975158691,5463 "spec/models/broadcast_message_spec.rb": 0.23346829414367676,5464 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.1943960189819336,5465 "spec/lib/banzai/renderer_spec.rb": 0.25227952003479004,5466 "spec/models/blob_viewer/package_json_spec.rb": 0.11781811714172363,5467 "spec/lib/gitlab/bare_repository_import/repository_spec.rb": 0.1630716323852539,5468 "spec/lib/gitlab/redis/wrapper_spec.rb": 0.12328386306762695,5469 "spec/rubocop/cop/migration/add_concurrent_index_spec.rb": 0.0958554744720459,5470 "spec/lib/gitlab/i18n_spec.rb": 0.0906980037689209,5471 "spec/lib/rspec_flaky/config_spec.rb": 0.07194113731384277,5472 "spec/lib/gitlab/github_import/representation/note_spec.rb": 0.08089303970336914,5473 "spec/lib/gitlab/health_checks/redis/cache_check_spec.rb": 0.07435321807861328,5474 "spec/lib/gitlab/metrics/samplers/influx_sampler_spec.rb": 0.11111569404602051,5475 "spec/lib/gitlab/import_export/reader_spec.rb": 0.05469536781311035,5476 "spec/lib/gitlab/ci/config/entry/image_spec.rb": 0.06429433822631836,5477 "spec/uploaders/gitlab_uploader_spec.rb": 0.03393149375915527,5478 "spec/lib/gitlab/sherlock/collection_spec.rb": 0.04122185707092285,5479 "spec/initializers/artifacts_direct_upload_support_spec.rb": 0.03155040740966797,5480 "spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb": 0.0417933464050293,5481 "spec/models/project_services/chat_message/wiki_page_message_spec.rb": 0.03893136978149414,5482 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.036425113677978516,5483 "spec/models/concerns/case_sensitivity_spec.rb": 0.04231905937194824,5484 "spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb": 0.023926973342895508,5485 "spec/lib/gitlab/sql/glob_spec.rb": 0.01806044578552246,5486 "spec/lib/gitlab/ci/config/entry/validator_spec.rb": 0.021231889724731445,5487 "spec/models/concerns/sha_attribute_spec.rb": 0.016617774963378906,5488 "spec/models/concerns/blocks_json_serialization_spec.rb": 0.019069671630859375,5489 "spec/lib/gitlab/auth/o_auth/provider_spec.rb": 0.015694618225097656,5490 "spec/lib/gitlab/string_placeholder_replacer_spec.rb": 0.020265579223632812,5491 "spec/lib/gitlab/upgrader_spec.rb": 0.015526533126831055,5492 "spec/lib/gitlab/tcp_checker_spec.rb": 0.01027226448059082,5493 "spec/models/concerns/presentable_spec.rb": 0.009764671325683594,5494 "spec/lib/system_check/base_check_spec.rb": 0.008410930633544922,5495 "spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb": 0.0049867630004882815496}5497Knapsack global time execution for tests: 14m 27s5498Finished in 16 minutes 10 seconds (files took 35.77 seconds to load)54992007 examples, 0 failures5501$ date5502Wed May 2 14:57:15 UTC 20185505coverage/: found 5 matching files 5506knapsack/: found 6 matching files 5507rspec_flaky/: found 4 matching files 5508WARNING: tmp/capybara/: no matching files 5509Uploading artifacts to coordinator... ok id=66066892 responseStatus=201 Created token=U87MWEWi5510Job succeeded