rspec-mysql 24 30
Passed Started
by
@gtsiolis
George Tsiolis
1Running with gitlab-runner 11.4.0-rc1 (1ff344e1)2 on docker-auto-scale-com 9538b0ab3Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...4Starting service mysql:5.7 ...5Pulling docker image mysql:5.7 ...6Using docker image sha256:563a026a1511f4e288304f1f325fc2a0769bbc9151f297519534b971b4d2160c for mysql:5.7 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:05097a3a0549ad993281c2d1f7bbfa807e13217a7afa119f9111d8fd804f420c for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...12Using docker image sha256:3506f1c033d455846e9905735c846ef55a728e3b04e3eee8825e62e8299c6631 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ... 13 Running on runner-9538b0ab-project-4581232-concurrent-0 via runner-9538b0ab-gsrm-1539325819-ffbf9689...
00:02
15Removing .gitlab_shell_secret16Removing .gitlab_workhorse_secret17Removing .yarn-cache/18Removing app/assets/javascripts/locale/ar_SA/19Removing app/assets/javascripts/locale/bg/20Removing app/assets/javascripts/locale/ca_ES/21Removing app/assets/javascripts/locale/cs_CZ/22Removing app/assets/javascripts/locale/da_DK/23Removing app/assets/javascripts/locale/de/24Removing app/assets/javascripts/locale/en/25Removing app/assets/javascripts/locale/eo/26Removing app/assets/javascripts/locale/es/27Removing app/assets/javascripts/locale/et_EE/28Removing app/assets/javascripts/locale/fil_PH/29Removing app/assets/javascripts/locale/fr/30Removing app/assets/javascripts/locale/gl_ES/31Removing app/assets/javascripts/locale/he_IL/32Removing app/assets/javascripts/locale/id_ID/33Removing app/assets/javascripts/locale/it/34Removing app/assets/javascripts/locale/ja/35Removing app/assets/javascripts/locale/ko/36Removing app/assets/javascripts/locale/mn_MN/37Removing app/assets/javascripts/locale/nb_NO/38Removing app/assets/javascripts/locale/nl_NL/39Removing app/assets/javascripts/locale/pl_PL/40Removing app/assets/javascripts/locale/pt_BR/41Removing app/assets/javascripts/locale/ro_RO/42Removing app/assets/javascripts/locale/ru/43Removing app/assets/javascripts/locale/sq_AL/44Removing app/assets/javascripts/locale/tr_TR/45Removing app/assets/javascripts/locale/uk/46Removing app/assets/javascripts/locale/zh_CN/47Removing app/assets/javascripts/locale/zh_HK/48Removing app/assets/javascripts/locale/zh_TW/49Removing config/database.yml50Removing config/gitlab.yml51Removing config/redis.cache.yml52Removing config/redis.queues.yml53Removing config/redis.shared_state.yml54Removing config/resque.yml55Removing config/secrets.yml56Removing log/api_json.log57Removing log/grpc.log58Removing log/test_json.log59Removing node_modules/60Removing public/assets/61Removing tmp/cache/62Removing vendor/gitaly-ruby/63Removing vendor/ruby/64HEAD is now at 0eb7e029 Update environments empty state65Checking out 0eb7e029 as gt-update-environments-empty-state...66Skipping Git submodules setup68Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/4581232/ruby-2.4.4-debian-stretch-with-yarn-7 69Successfully extracted cache71Downloading artifacts from coordinator... ok id=107387993 responseStatus=200 OK token=GcK8aUsr72Downloading artifacts for compile-assets (107387994)...73Downloading artifacts from coordinator... ok id=107387994 responseStatus=200 OK token=gvyaPn9974Downloading artifacts for setup-test-env (107387995)...75Downloading artifacts from coordinator... ok id=107387995 responseStatus=200 OK token=c2FqqGjr76WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 78Bundler version 1.16.679$ date80Fri Oct 12 07:48:09 UTC 201881$ source scripts/utils.sh82$ date83Fri Oct 12 07:48:09 UTC 201884$ source scripts/prepare_build.sh85The Gemfile's dependencies are satisfied86Successfully installed knapsack-1.16.0871 gem installed88Database 'gitlabhq_test' does not exist89-- enable_extension("plpgsql")90 -> 0.0014s91-- enable_extension("pg_trgm")92 -> 0.0000s93-- create_table("abuse_reports", {:force=>:cascade})94 -> 0.0776s95-- create_table("appearances", {:force=>:cascade})96 -> 0.0413s97-- create_table("application_setting_terms", {:force=>:cascade})98 -> 0.0605s99-- create_table("application_settings", {:force=>:cascade})100 -> 0.0455s101-- create_table("audit_events", {:force=>:cascade})102 -> 0.0425s103-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})104 -> 0.0309s105-- create_table("award_emoji", {:force=>:cascade})106 -> 0.0413s107-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})108 -> 0.0254s109-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})110 -> 0.0248s111-- create_table("badges", {:force=>:cascade})112 -> 0.0501s113-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})114 -> 0.0247s115-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})116 -> 0.0248s117-- create_table("boards", {:force=>:cascade})118 -> 0.0415s119-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})120 -> 0.0257s121-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})122 -> 0.0248s123-- create_table("broadcast_messages", {:force=>:cascade})124 -> 0.0414s125-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})126 -> 0.0269s127-- create_table("chat_names", {:force=>:cascade})128 -> 0.0420s129-- 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})130 -> 0.0270s131-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})132 -> 0.0260s133-- create_table("chat_teams", {:force=>:cascade})134 -> 0.0419s135-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})136 -> 0.0262s137-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})138 -> 0.0420s139-- add_index("ci_build_trace_chunks", ["build_id", "chunk_index"], {:name=>"index_ci_build_trace_chunks_on_build_id_and_chunk_index", :unique=>true, :using=>:btree})140 -> 0.0255s141-- create_table("ci_build_trace_section_names", {:force=>:cascade})142 -> 0.0417s143-- 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})144 -> 0.0264s145-- create_table("ci_build_trace_sections", {:force=>:cascade})146 -> 0.0416s147-- 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})148 -> 0.0255s149-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})150 -> 0.0248s151-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})152 -> 0.0401s153-- create_table("ci_builds", {:force=>:cascade})154 -> 0.0432s155-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})156 -> 0.0258s157-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})158 -> 0.0256s159-- 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})160 -> 0.0288s161-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})162 -> 0.0285s163-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})164 -> 0.0301s165-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})166 -> 0.0283s167-- add_index("ci_builds", ["id"], {:name=>"partial_index_ci_builds_on_id_with_legacy_artifacts", :where=>"(artifacts_file <> ''::text)", :using=>:btree})168 -> 0.0261s169-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})170 -> 0.0270s171-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})172 -> 0.0270s173-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})174 -> 0.0260s175-- add_index("ci_builds", ["scheduled_at"], {:name=>"partial_index_ci_builds_on_scheduled_at_with_scheduled_jobs", :where=>"((scheduled_at IS NOT NULL) AND ((type)::text = 'Ci::Build'::text) AND ((status)::text = 'scheduled'::text))", :using=>:btree})176 -> 0.0439s177-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})178 -> 0.0375s179-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})180 -> 0.0361s181-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})182 -> 0.0297s183-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})184 -> 0.0356s185-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})186 -> 0.0267s187-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})188 -> 0.0262s189-- create_table("ci_builds_metadata", {:force=>:cascade})190 -> 0.0417s191-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})192 -> 0.0246s193-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})194 -> 0.0244s195-- create_table("ci_builds_runner_session", {:id=>:bigserial, :force=>:cascade})196 -> 0.0431s197-- add_index("ci_builds_runner_session", ["build_id"], {:name=>"index_ci_builds_runner_session_on_build_id", :unique=>true, :using=>:btree})198 -> 0.0255s199-- create_table("ci_group_variables", {:force=>:cascade})200 -> 0.0415s201-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})202 -> 0.0258s203-- create_table("ci_job_artifacts", {:force=>:cascade})204 -> 0.0416s205-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})206 -> 0.0262s207-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})208 -> 0.0250s209-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})210 -> 0.0253s211-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})212 -> 0.0259s213-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})214 -> 0.0412s215-- 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})216 -> 0.0264s217-- create_table("ci_pipeline_schedules", {:force=>:cascade})218 -> 0.0421s219-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})220 -> 0.0257s221-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})222 -> 0.0246s223-- create_table("ci_pipeline_variables", {:force=>:cascade})224 -> 0.0470s225-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})226 -> 0.0263s227-- create_table("ci_pipelines", {:force=>:cascade})228 -> 0.0438s229-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})230 -> 0.0253s231-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})232 -> 0.0250s233-- add_index("ci_pipelines", ["project_id", "iid"], {:name=>"index_ci_pipelines_on_project_id_and_iid", :unique=>true, :where=>"(iid IS NOT NULL)", :using=>:btree})234 -> 0.0260s235-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})236 -> 0.0280s237-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})238 -> 0.0262s239-- add_index("ci_pipelines", ["project_id", "source"], {:name=>"index_ci_pipelines_on_project_id_and_source", :using=>:btree})240 -> 0.0371s241-- add_index("ci_pipelines", ["project_id", "status", "config_source"], {:name=>"index_ci_pipelines_on_project_id_and_status_and_config_source", :using=>:btree})242 -> 0.0278s243-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})244 -> 0.0342s245-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})246 -> 0.0255s247-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})248 -> 0.0255s249-- create_table("ci_runner_namespaces", {:force=>:cascade})250 -> 0.0413s251-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})252 -> 0.0251s253-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})254 -> 0.0248s255-- create_table("ci_runner_projects", {:force=>:cascade})256 -> 0.0413s257-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})258 -> 0.0250s259-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})260 -> 0.0248s261-- create_table("ci_runners", {:force=>:cascade})262 -> 0.0420s263-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})264 -> 0.0260s265-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})266 -> 0.0250s267-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})268 -> 0.0246s269-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})270 -> 0.0247s271-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})272 -> 0.0256s273-- create_table("ci_stages", {:force=>:cascade})274 -> 0.0417s275-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})276 -> 0.0257s277-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})278 -> 0.0256s279-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})280 -> 0.0260s281-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})282 -> 0.0247s283-- create_table("ci_trigger_requests", {:force=>:cascade})284 -> 0.0415s285-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})286 -> 0.0251s287-- create_table("ci_triggers", {:force=>:cascade})288 -> 0.0416s289-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})290 -> 0.0251s291-- create_table("ci_variables", {:force=>:cascade})292 -> 0.0417s293-- 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})294 -> 0.0360s295-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})296 -> 0.0421s297-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})298 -> 0.0252s299-- create_table("cluster_projects", {:force=>:cascade})300 -> 0.0413s301-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})302 -> 0.0327s303-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})304 -> 0.0333s305-- create_table("cluster_providers_gcp", {:force=>:cascade})306 -> 0.0420s307-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})308 -> 0.0251s309-- create_table("clusters", {:force=>:cascade})310 -> 0.0412s311-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})312 -> 0.0251s313-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})314 -> 0.0248s315-- create_table("clusters_applications_helm", {:force=>:cascade})316 -> 0.0419s317-- create_table("clusters_applications_ingress", {:force=>:cascade})318 -> 0.0416s319-- create_table("clusters_applications_jupyter", {:force=>:cascade})320 -> 0.0426s321-- create_table("clusters_applications_prometheus", {:force=>:cascade})322 -> 0.0416s323-- create_table("clusters_applications_runners", {:force=>:cascade})324 -> 0.0418s325-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})326 -> 0.0253s327-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})328 -> 0.0249s329-- create_table("container_repositories", {:force=>:cascade})330 -> 0.0415s331-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})332 -> 0.0255s333-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})334 -> 0.0248s335-- create_table("conversational_development_index_metrics", {:force=>:cascade})336 -> 0.0426s337-- create_table("deploy_keys_projects", {:force=>:cascade})338 -> 0.0417s339-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})340 -> 0.0252s341-- create_table("deploy_tokens", {:force=>:cascade})342 -> 0.0427s343-- 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})344 -> 0.0268s345-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})346 -> 0.0254s347-- create_table("deployments", {:force=>:cascade})348 -> 0.0415s349-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})350 -> 0.0251s351-- add_index("deployments", ["deployable_type", "deployable_id"], {:name=>"index_deployments_on_deployable_type_and_deployable_id", :using=>:btree})352 -> 0.0260s353-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})354 -> 0.0259s355-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})356 -> 0.0359s357-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})358 -> 0.0255s359-- create_table("emails", {:force=>:cascade})360 -> 0.0415s361-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})362 -> 0.0250s363-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})364 -> 0.0329s365-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})366 -> 0.0243s367-- create_table("environments", {:force=>:cascade})368 -> 0.0422s369-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})370 -> 0.0259s371-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})372 -> 0.0148s373-- create_table("events", {:force=>:cascade})374 -> 0.0417s375-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})376 -> 0.0249s377-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})378 -> 0.0253s379-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})380 -> 0.0259s381-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})382 -> 0.0260s383-- create_table("feature_gates", {:force=>:cascade})384 -> 0.0431s385-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})386 -> 0.0266s387-- create_table("features", {:force=>:cascade})388 -> 0.0415s389-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})390 -> 0.0247s391-- create_table("fork_network_members", {:force=>:cascade})392 -> 0.0415s393-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})394 -> 0.0250s395-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})396 -> 0.0245s397-- create_table("fork_networks", {:force=>:cascade})398 -> 0.0415s399-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})400 -> 0.0250s401-- create_table("forked_project_links", {:force=>:cascade})402 -> 0.0412s403-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})404 -> 0.0252s405-- create_table("gcp_clusters", {:force=>:cascade})406 -> 0.0419s407-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})408 -> 0.0252s409-- create_table("gpg_key_subkeys", {:force=>:cascade})410 -> 0.0413s411-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})412 -> 0.0249s413-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})414 -> 0.0246s415-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})416 -> 0.0248s417-- create_table("gpg_keys", {:force=>:cascade})418 -> 0.0414s419-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})420 -> 0.0253s421-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})422 -> 0.0247s423-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})424 -> 0.0247s425-- create_table("gpg_signatures", {:force=>:cascade})426 -> 0.0429s427-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})428 -> 0.0435s429-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})430 -> 0.0262s431-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})432 -> 0.0254s433-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})434 -> 0.0257s435-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})436 -> 0.0256s437-- create_table("group_custom_attributes", {:force=>:cascade})438 -> 0.0419s439-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})440 -> 0.0257s441-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})442 -> 0.0254s443-- create_table("identities", {:force=>:cascade})444 -> 0.0417s445-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})446 -> 0.0263s447-- create_table("import_export_uploads", {:force=>:cascade})448 -> 0.0433s449-- add_index("import_export_uploads", ["project_id"], {:name=>"index_import_export_uploads_on_project_id", :using=>:btree})450 -> 0.0257s451-- add_index("import_export_uploads", ["updated_at"], {:name=>"index_import_export_uploads_on_updated_at", :using=>:btree})452 -> 0.0246s453-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})454 -> 0.0413s455-- 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})456 -> 0.0265s457-- 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})458 -> 0.0257s459-- create_table("issue_assignees", {:id=>false, :force=>:cascade})460 -> 0.0419s461-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})462 -> 0.0483s463-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})464 -> 0.0247s465-- create_table("issue_metrics", {:force=>:cascade})466 -> 0.0414s467-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})468 -> 0.0248s469-- create_table("issues", {:force=>:cascade})470 -> 0.0421s471-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})472 -> 0.0258s473-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})474 -> 0.0249s475-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})476 -> 0.0012s477-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})478 -> 0.0251s479-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})480 -> 0.0255s481-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})482 -> 0.0280s483-- 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})484 -> 0.0284s485-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})486 -> 0.0267s487-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})488 -> 0.0424s489-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})490 -> 0.0282s491-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})492 -> 0.0278s493-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})494 -> 0.0034s495-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})496 -> 0.0361s497-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})498 -> 0.0278s499-- create_table("keys", {:force=>:cascade})500 -> 0.0426s501-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})502 -> 0.0273s503-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})504 -> 0.0275s505-- create_table("label_links", {:force=>:cascade})506 -> 0.0406s507-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})508 -> 0.0272s509-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})510 -> 0.0273s511-- create_table("label_priorities", {:force=>:cascade})512 -> 0.0411s513-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})514 -> 0.0253s515-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})516 -> 0.0263s517-- create_table("labels", {:force=>:cascade})518 -> 0.0428s519-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})520 -> 0.0296s521-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})522 -> 0.0260s523-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})524 -> 0.0255s525-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})526 -> 0.0265s527-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})528 -> 0.0293s529-- create_table("lfs_file_locks", {:force=>:cascade})530 -> 0.0428s531-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})532 -> 0.0273s533-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})534 -> 0.0259s535-- create_table("lfs_objects", {:force=>:cascade})536 -> 0.0502s537-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})538 -> 0.0262s539-- create_table("lfs_objects_projects", {:force=>:cascade})540 -> 0.0417s541-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})542 -> 0.0255s543-- create_table("lists", {:force=>:cascade})544 -> 0.0428s545-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})546 -> 0.0280s547-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})548 -> 0.0253s549-- add_index("lists", ["list_type"], {:name=>"index_lists_on_list_type", :using=>:btree})550 -> 0.0260s551-- create_table("members", {:force=>:cascade})552 -> 0.0426s553-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})554 -> 0.0267s555-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})556 -> 0.0278s557-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})558 -> 0.0458s559-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})560 -> 0.0275s561-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})562 -> 0.0281s563-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})564 -> 0.0423s565-- 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})566 -> 0.0507s567-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})568 -> 0.0292s569-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})570 -> 0.0419s571-- 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})572 -> 0.0487s573-- create_table("merge_request_diffs", {:force=>:cascade})574 -> 0.0427s575-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})576 -> 0.0271s577-- create_table("merge_request_metrics", {:force=>:cascade})578 -> 0.0431s579-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})580 -> 0.0264s581-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})582 -> 0.0257s583-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})584 -> 0.0275s585-- create_table("merge_requests", {:force=>:cascade})586 -> 0.0450s587-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})588 -> 0.0287s589-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})590 -> 0.0284s591-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})592 -> 0.0263s593-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})594 -> 0.0021s595-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})596 -> 0.0262s597-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})598 -> 0.0275s599-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})600 -> 0.0272s601-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})602 -> 0.0270s603-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})604 -> 0.0287s605-- 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})606 -> 0.0358s607-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})608 -> 0.0457s609-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})610 -> 0.0413s611-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})612 -> 0.0408s613-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid_opened", :where=>"((state)::text = 'opened'::text)", :using=>:btree})614 -> 0.0329s615-- 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})616 -> 0.0351s617-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})618 -> 0.0355s619-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})620 -> 0.0021s621-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})622 -> 0.0278s623-- create_table("merge_requests_closing_issues", {:force=>:cascade})624 -> 0.0437s625-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})626 -> 0.0254s627-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})628 -> 0.0251s629-- create_table("milestones", {:force=>:cascade})630 -> 0.0417s631-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})632 -> 0.0021s633-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})634 -> 0.0279s635-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})636 -> 0.0255s637-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})638 -> 0.0277s639-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})640 -> 0.0269s641-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})642 -> 0.0022s643-- create_table("namespaces", {:force=>:cascade})644 -> 0.0435s645-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})646 -> 0.0277s647-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})648 -> 0.0296s649-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})650 -> 0.0023s651-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})652 -> 0.0277s653-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})654 -> 0.0286s655-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})656 -> 0.0263s657-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})658 -> 0.0015s659-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})660 -> 0.0335s661-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})662 -> 0.0274s663-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})664 -> 0.0269s665-- create_table("note_diff_files", {:force=>:cascade})666 -> 0.0434s667-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})668 -> 0.0266s669-- create_table("notes", {:force=>:cascade})670 -> 0.0444s671-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})672 -> 0.0271s673-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})674 -> 0.0265s675-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})676 -> 0.0277s677-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})678 -> 0.0266s679-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})680 -> 0.0269s681-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})682 -> 0.0019s683-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})684 -> 0.0299s685-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})686 -> 0.0272s687-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})688 -> 0.0365s689-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})690 -> 0.0259s691-- create_table("notification_settings", {:force=>:cascade})692 -> 0.0425s693-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})694 -> 0.0366s695-- 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})696 -> 0.0295s697-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})698 -> 0.0313s699-- create_table("oauth_access_grants", {:force=>:cascade})700 -> 0.0418s701-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})702 -> 0.0259s703-- create_table("oauth_access_tokens", {:force=>:cascade})704 -> 0.0428s705-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})706 -> 0.0253s707-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})708 -> 0.0193s709-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})710 -> 0.0252s711-- create_table("oauth_applications", {:force=>:cascade})712 -> 0.0427s713-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})714 -> 0.0281s715-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})716 -> 0.0253s717-- create_table("oauth_openid_requests", {:force=>:cascade})718 -> 0.0418s719-- create_table("pages_domains", {:force=>:cascade})720 -> 0.0420s721-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})722 -> 0.0256s723-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})724 -> 0.0269s725-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})726 -> 0.0256s727-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})728 -> 0.0273s729-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})730 -> 0.0261s731-- create_table("personal_access_tokens", {:force=>:cascade})732 -> 0.0427s733-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})734 -> 0.0270s735-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})736 -> 0.0263s737-- create_table("programming_languages", {:force=>:cascade})738 -> 0.0417s739-- add_index("programming_languages", ["name"], {:name=>"index_programming_languages_on_name", :unique=>true, :using=>:btree})740 -> 0.0256s741-- create_table("project_authorizations", {:id=>false, :force=>:cascade})742 -> 0.0459s743-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})744 -> 0.0263s745-- 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})746 -> 0.0600s747-- create_table("project_auto_devops", {:force=>:cascade})748 -> 0.0431s749-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})750 -> 0.0349s751-- create_table("project_ci_cd_settings", {:force=>:cascade})752 -> 0.0515s753-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})754 -> 0.0261s755-- create_table("project_custom_attributes", {:force=>:cascade})756 -> 0.0431s757-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})758 -> 0.0271s759-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})760 -> 0.0283s761-- create_table("project_deploy_tokens", {:force=>:cascade})762 -> 0.0432s763-- 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})764 -> 0.0274s765-- create_table("project_features", {:force=>:cascade})766 -> 0.0427s767-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})768 -> 0.0260s769-- create_table("project_group_links", {:force=>:cascade})770 -> 0.0440s771-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})772 -> 0.0274s773-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})774 -> 0.0266s775-- create_table("project_import_data", {:force=>:cascade})776 -> 0.0427s777-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})778 -> 0.0263s779-- create_table("project_mirror_data", {:force=>:cascade})780 -> 0.0435s781-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})782 -> 0.0261s783-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})784 -> 0.0249s785-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})786 -> 0.0263s787-- create_table("project_statistics", {:force=>:cascade})788 -> 0.0426s789-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})790 -> 0.0263s791-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})792 -> 0.0261s793-- create_table("projects", {:force=>:cascade})794 -> 0.0458s795-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})796 -> 0.0308s797-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})798 -> 0.0300s799-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})800 -> 0.0311s801-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})802 -> 0.0067s803-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})804 -> 0.0306s805-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})806 -> 0.0310s807-- add_index("projects", ["last_repository_check_at"], {:name=>"index_projects_on_last_repository_check_at", :where=>"(last_repository_check_at IS NOT NULL)", :using=>:btree})808 -> 0.0300s809-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})810 -> 0.0295s811-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})812 -> 0.0295s813-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})814 -> 0.0041s815-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})816 -> 0.0298s817-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})818 -> 0.0452s819-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})820 -> 0.0045s821-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})822 -> 0.0300s823-- add_index("projects", ["repository_storage", "created_at"], {:name=>"idx_project_repository_check_partial", :where=>"(last_repository_check_at IS NULL)", :using=>:btree})824 -> 0.0744s825-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})826 -> 0.0267s827-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})828 -> 0.0264s829-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})830 -> 0.0270s831-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})832 -> 0.0265s833-- create_table("prometheus_metrics", {:force=>:cascade})834 -> 0.0424s835-- add_index("prometheus_metrics", ["common"], {:name=>"index_prometheus_metrics_on_common", :using=>:btree})836 -> 0.0261s837-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})838 -> 0.0256s839-- add_index("prometheus_metrics", ["identifier"], {:name=>"index_prometheus_metrics_on_identifier", :unique=>true, :using=>:btree})840 -> 0.0255s841-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})842 -> 0.0256s843-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})844 -> 0.0424s845-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})846 -> 0.0251s847-- create_table("protected_branch_push_access_levels", {:force=>:cascade})848 -> 0.0422s849-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})850 -> 0.0257s851-- create_table("protected_branches", {:force=>:cascade})852 -> 0.0418s853-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})854 -> 0.0259s855-- create_table("protected_tag_create_access_levels", {:force=>:cascade})856 -> 0.0424s857-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})858 -> 0.0256s859-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})860 -> 0.0249s861-- create_table("protected_tags", {:force=>:cascade})862 -> 0.0423s863-- add_index("protected_tags", ["project_id", "name"], {:name=>"index_protected_tags_on_project_id_and_name", :unique=>true, :using=>:btree})864 -> 0.0261s865-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})866 -> 0.0251s867-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})868 -> 0.0416s869-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})870 -> 0.0483s871-- create_table("redirect_routes", {:force=>:cascade})872 -> 0.0421s873-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})874 -> 0.0250s875-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})876 -> 0.0262s877-- create_table("releases", {:force=>:cascade})878 -> 0.0505s879-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})880 -> 0.0260s881-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})882 -> 0.0246s883-- create_table("remote_mirrors", {:force=>:cascade})884 -> 0.0430s885-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})886 -> 0.0363s887-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})888 -> 0.0260s889-- create_table("repository_languages", {:id=>false, :force=>:cascade})890 -> 0.0420s891-- add_index("repository_languages", ["project_id", "programming_language_id"], {:name=>"index_repository_languages_on_project_and_languages_id", :unique=>true, :using=>:btree})892 -> 0.0507s893-- create_table("resource_label_events", {:id=>:bigserial, :force=>:cascade})894 -> 0.0472s895-- add_index("resource_label_events", ["issue_id"], {:name=>"index_resource_label_events_on_issue_id", :using=>:btree})896 -> 0.0256s897-- add_index("resource_label_events", ["label_id"], {:name=>"index_resource_label_events_on_label_id", :using=>:btree})898 -> 0.0260s899-- add_index("resource_label_events", ["merge_request_id"], {:name=>"index_resource_label_events_on_merge_request_id", :using=>:btree})900 -> 0.0261s901-- add_index("resource_label_events", ["user_id"], {:name=>"index_resource_label_events_on_user_id", :using=>:btree})902 -> 0.0248s903-- create_table("routes", {:force=>:cascade})904 -> 0.0419s905-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})906 -> 0.0258s907-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})908 -> 0.0009s909-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})910 -> 0.0255s911-- create_table("sent_notifications", {:force=>:cascade})912 -> 0.0427s913-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})914 -> 0.0261s915-- create_table("services", {:force=>:cascade})916 -> 0.0429s917-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})918 -> 0.0265s919-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})920 -> 0.0260s921-- create_table("site_statistics", {:force=>:cascade})922 -> 0.0427s923-- create_table("snippets", {:force=>:cascade})924 -> 0.0427s925-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})926 -> 0.0260s927-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})928 -> 0.0010s929-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})930 -> 0.0252s931-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})932 -> 0.0009s933-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})934 -> 0.0249s935-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})936 -> 0.0257s937-- create_table("spam_logs", {:force=>:cascade})938 -> 0.0423s939-- create_table("subscriptions", {:force=>:cascade})940 -> 0.0422s941-- 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})942 -> 0.0275s943-- create_table("system_note_metadata", {:force=>:cascade})944 -> 0.0514s945-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})946 -> 0.0260s947-- create_table("taggings", {:force=>:cascade})948 -> 0.0423s949-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})950 -> 0.0286s951-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})952 -> 0.0259s953-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})954 -> 0.0265s955-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})956 -> 0.0264s957-- create_table("tags", {:force=>:cascade})958 -> 0.0422s959-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})960 -> 0.0251s961-- create_table("term_agreements", {:force=>:cascade})962 -> 0.0423s963-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})964 -> 0.0258s965-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})966 -> 0.0258s967-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})968 -> 0.0254s969-- create_table("timelogs", {:force=>:cascade})970 -> 0.0426s971-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})972 -> 0.0262s973-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})974 -> 0.0259s975-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})976 -> 0.0254s977-- create_table("todos", {:force=>:cascade})978 -> 0.0418s979-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})980 -> 0.0257s981-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})982 -> 0.0257s983-- add_index("todos", ["group_id"], {:name=>"index_todos_on_group_id", :using=>:btree})984 -> 0.0256s985-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})986 -> 0.0265s987-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})988 -> 0.0251s989-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})990 -> 0.0340s991-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})992 -> 0.0252s993-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})994 -> 0.0258s995-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})996 -> 0.0249s997-- create_table("trending_projects", {:force=>:cascade})998 -> 0.0423s999-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1000 -> 0.0252s1001-- create_table("u2f_registrations", {:force=>:cascade})1002 -> 0.0428s1003-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1004 -> 0.0256s1005-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1006 -> 0.0255s1007-- create_table("uploads", {:force=>:cascade})1008 -> 0.0506s1009-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1010 -> 0.0253s1011-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1012 -> 0.0250s1013-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1014 -> 0.0260s1015-- create_table("user_agent_details", {:force=>:cascade})1016 -> 0.0422s1017-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1018 -> 0.0263s1019-- create_table("user_callouts", {:force=>:cascade})1020 -> 0.0516s1021-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1022 -> 0.0264s1023-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1024 -> 0.0251s1025-- create_table("user_custom_attributes", {:force=>:cascade})1026 -> 0.0423s1027-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1028 -> 0.0260s1029-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1030 -> 0.0265s1031-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1032 -> 0.3009s1033-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1034 -> 0.0513s1035-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1036 -> 0.0298s1037-- create_table("user_statuses", {:primary_key=>"user_id", :force=>:cascade})1038 -> 0.0428s1039-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1040 -> 0.0436s1041-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1042 -> 0.0258s1043-- create_table("users", {:force=>:cascade})1044 -> 0.0441s1045-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1046 -> 0.0271s1047-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1048 -> 0.0275s1049-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1050 -> 0.0277s1051-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1052 -> 0.0360s1053-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1054 -> 0.0018s1055-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1056 -> 0.0272s1057-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1058 -> 0.0271s1059-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1060 -> 0.0280s1061-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1062 -> 0.0273s1063-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1064 -> 0.0018s1065-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1066 -> 0.0272s1067-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1068 -> 0.0278s1069-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1070 -> 0.0267s1071-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1072 -> 0.0017s1073-- create_table("users_star_projects", {:force=>:cascade})1074 -> 0.0418s1075-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1076 -> 0.0258s1077-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1078 -> 0.0258s1079-- create_table("web_hook_logs", {:force=>:cascade})1080 -> 0.0430s1081-- add_index("web_hook_logs", ["created_at", "web_hook_id"], {:name=>"index_web_hook_logs_on_created_at_and_web_hook_id", :using=>:btree})1082 -> 0.0265s1083-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1084 -> 0.0253s1085-- create_table("web_hooks", {:force=>:cascade})1086 -> 0.0430s1087-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1088 -> 0.0273s1089-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1090 -> 0.0259s1091-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})1092 -> 0.0633s1093-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1094 -> 0.0695s1095-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1096 -> 0.0696s1097-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1098 -> 0.0695s1099-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1100 -> 0.0696s1101-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1102 -> 0.0611s1103-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1104 -> 0.0601s1105-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1106 -> 0.0695s1107-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1108 -> 0.0802s1109-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1110 -> 0.0834s1111-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1112 -> 0.0790s1113-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1114 -> 0.2361s1115-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1116 -> 0.2164s1117-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1118 -> 0.2518s1119-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1120 -> 0.2284s1121-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1122 -> 0.0713s1123-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1124 -> 0.0690s1125-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1126 -> 0.0621s1127-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1128 -> 0.0631s1129-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1130 -> 0.0902s1131-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1132 -> 0.0912s1133-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1134 -> 0.0618s1135-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1136 -> 0.0716s1137-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1138 -> 0.0821s1139-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1140 -> 0.0642s1141-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1142 -> 0.1567s1143-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1144 -> 0.1475s1145-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1146 -> 0.1466s1147-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1148 -> 0.0708s1149-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1150 -> 0.0726s1151-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1152 -> 0.0709s1153-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1154 -> 0.0904s1155-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1156 -> 0.0888s1157-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1158 -> 0.0689s1159-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1160 -> 0.0589s1161-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1162 -> 0.0691s1163-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1164 -> 0.0688s1165-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1166 -> 0.0616s1167-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1168 -> 0.0708s1169-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1170 -> 0.0719s1171-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1172 -> 0.0613s1173-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1174 -> 0.0709s1175-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1176 -> 0.0613s1177-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1178 -> 0.0625s1179-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1180 -> 0.0611s1181-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1182 -> 0.0694s1183-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1184 -> 0.0623s1185-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1186 -> 0.0707s1187-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1188 -> 0.0726s1189-- add_foreign_key("container_repositories", "projects")1190 -> 0.0695s1191-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1192 -> 0.0599s1193-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1194 -> 0.5511s1195-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1196 -> 0.0723s1197-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1198 -> 0.0878s1199-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1200 -> 0.0912s1201-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1202 -> 0.0703s1203-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1204 -> 0.0789s1205-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1206 -> 0.1073s1207-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1208 -> 0.0717s1209-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1210 -> 0.0611s1211-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1212 -> 0.0641s1213-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1214 -> 0.0698s1215-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1216 -> 0.0797s1217-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1218 -> 0.0801s1219-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1220 -> 0.0815s1221-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1222 -> 0.0992s1223-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1224 -> 0.1016s1225-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1226 -> 0.1191s1227-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1228 -> 0.0894s1229-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})1230 -> 0.0894s1231-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1232 -> 0.0786s1233-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1234 -> 0.0894s1235-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1236 -> 0.0596s1237-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1238 -> 0.0626s1239-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1240 -> 0.0616s1241-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1242 -> 0.1690s1243-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1244 -> 0.1701s1245-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1246 -> 0.1695s1247-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1248 -> 0.1757s1249-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1250 -> 0.1892s1251-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1252 -> 0.2011s1253-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1254 -> 0.0712s1255-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1256 -> 0.0810s1257-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1258 -> 0.0901s1259-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1260 -> 0.0993s1261-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1262 -> 0.0993s1263-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1264 -> 0.0713s1265-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1266 -> 0.0774s1267-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1268 -> 0.0796s1269-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1270 -> 0.0790s1271-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1272 -> 0.0984s1273-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1274 -> 0.0605s1275-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1276 -> 0.0556s1277-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1278 -> 0.0608s1279-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1280 -> 0.0804s1281-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1282 -> 0.0780s1283-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1284 -> 0.0901s1285-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1286 -> 0.1012s1287-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1288 -> 0.2289s1289-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1290 -> 0.2033s1291-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1292 -> 0.2066s1293-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1294 -> 0.2009s1295-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1296 -> 0.2181s1297-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1298 -> 0.2409s1299-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1300 -> 0.2190s1301-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1302 -> 0.2217s1303-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1304 -> 0.2168s1305-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1306 -> 0.0720s1307-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1308 -> 0.0706s1309-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1310 -> 0.0998s1311-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1312 -> 0.0901s1313-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1314 -> 0.0598s1315-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1316 -> 0.1375s1317-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1318 -> 0.0798s1319-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1320 -> 0.0596s1321-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1322 -> 0.1002s1323-- add_foreign_key("personal_access_tokens", "users")1324 -> 0.0704s1325-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1326 -> 0.0616s1327-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1328 -> 0.0604s1329-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1330 -> 0.0609s1331-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1332 -> 0.0606s1333-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1334 -> 0.0722s1335-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1336 -> 0.1022s1337-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1338 -> 0.0714s1339-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1340 -> 0.0600s1341-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1342 -> 0.0713s1343-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1344 -> 0.0613s1345-- add_foreign_key("project_mirror_data", "projects", {:on_delete=>:cascade})1346 -> 0.0817s1347-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1348 -> 0.0711s1349-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1350 -> 0.0904s1351-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1352 -> 0.0617s1353-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1354 -> 0.0619s1355-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1356 -> 0.0587s1357-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id"})1358 -> 0.0788s1359-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1360 -> 0.0797s1361-- add_foreign_key("protected_tag_create_access_levels", "users")1362 -> 0.0783s1363-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1364 -> 0.1016s1365-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1366 -> 0.0512s1367-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1368 -> 0.0710s1369-- add_foreign_key("remote_mirrors", "projects", {:on_delete=>:cascade})1370 -> 0.0720s1371-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1372 -> 0.0526s1373-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1374 -> 0.0899s1375-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1376 -> 0.0819s1377-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1378 -> 0.0908s1379-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1380 -> 0.0913s1381-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1382 -> 0.0696s1383-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1384 -> 0.0908s1385-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1386 -> 0.0745s1387-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1388 -> 0.0614s1389-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1390 -> 0.0964s1391-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1392 -> 0.0804s1393-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1394 -> 0.0796s1395-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1396 -> 0.0798s1397-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1398 -> 0.1387s1399-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1400 -> 0.1366s1401-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1402 -> 0.1373s1403-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1404 -> 0.2950s1405-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1406 -> 0.1401s1407-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1408 -> 0.0620s1409-- add_foreign_key("u2f_registrations", "users")1410 -> 0.0700s1411-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1412 -> 0.0696s1413-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1414 -> 0.0733s1415-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1416 -> 0.0547s1417-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1418 -> 0.0632s1419-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1420 -> 0.0527s1421-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1422 -> 0.0648s1423-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1424 -> 0.1697s1425-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1426 -> 0.0725s1427-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1428 -> 0.2296s1429-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1430 -> 0.0721s1431-- initialize_schema_migrations_table()1432 -> 0.0983s1433Adding limits to schema.rb for mysql1434-- column_exists?(:merge_request_diffs, :st_commits)1435 -> 0.0012s1436-- column_exists?(:merge_request_diffs, :st_diffs)1437 -> 0.0007s1438-- change_column(:snippets, :content, :text, {:limit=>2147483647})1439 -> 0.0845s1440-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1441 -> 0.1422s1442-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1443 -> 0.0916s1444-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647, :default=>nil})1445 -> 0.0527s1446-- change_column(:ci_build_trace_chunks, :raw_data, :binary, {:limit=>16777215})1447 -> 0.0591s1448-- change_column(:gpg_keys, :key, :text, {:limit=>16777215})1449 -> 0.1172s1450-- change_column(:prometheus_metrics, :query, :text, {:limit=>4096, :default=>nil})1451 -> 0.0900s1452$ date1453Fri Oct 12 07:49:16 UTC 20181454$ JOB_NAME=( $CI_JOB_NAME )1455$ export CI_NODE_INDEX=${JOB_NAME[-2]}1456$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1457$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1458$ export KNAPSACK_GENERATE_REPORT=true1459$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1460$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1461$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1462$ export FLAKY_RSPEC_GENERATE_REPORT=true1463$ export CACHE_CLASSES=true1464$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1465$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1466$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1467$ scripts/gitaly-test-spawn1468Checking gitaly-ruby bundle...1469The Gemfile's dependencies are satisfied1470Trying to connect to gitaly: .... OK1471$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml"1472Report specs:1473spec/models/merge_request_spec.rb1474spec/requests/api/groups_spec.rb1475spec/requests/lfs_http_spec.rb1476spec/models/cycle_analytics/staging_spec.rb1477spec/features/issues/filtered_search/dropdown_author_spec.rb1478spec/features/project_variables_spec.rb1479spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb1480spec/services/todos/destroy/entity_leave_service_spec.rb1481spec/features/merge_request/user_views_diffs_spec.rb1482spec/requests/api/deployments_spec.rb1483spec/services/ci/retry_pipeline_service_spec.rb1484spec/features/projects/settings/repository_settings_spec.rb1485spec/services/boards/lists/move_service_spec.rb1486spec/features/explore/groups_spec.rb1487spec/features/markdown/gitlab_flavored_markdown_spec.rb1488spec/features/projects/commit/diff_notes_spec.rb1489spec/lib/gitlab/bare_repository_import/importer_spec.rb1490spec/workers/invalid_gpg_signature_update_worker_spec.rb1491spec/controllers/uploads_controller_spec.rb1492spec/finders/pipelines_finder_spec.rb1493spec/features/issues/spam_issues_spec.rb1494spec/services/members/approve_access_request_service_spec.rb1495spec/features/tags/master_views_tags_spec.rb1496spec/models/concerns/avatarable_spec.rb1497spec/services/merge_requests/conflicts/resolve_service_spec.rb1498spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb1499spec/controllers/projects/commit_controller_spec.rb1500spec/finders/todos_finder_spec.rb1501spec/requests/api/pages_domains_spec.rb1502spec/services/ci/stop_environments_service_spec.rb1503spec/requests/api/graphql/mutations/merge_requests/set_wip_spec.rb1504spec/controllers/projects/boards_controller_spec.rb1505spec/models/protected_branch_spec.rb1506spec/lib/gitlab/verify/job_artifacts_spec.rb1507spec/features/boards/sub_group_project_spec.rb1508spec/controllers/projects/wikis_controller_spec.rb1509spec/lib/extracts_path_spec.rb1510spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb1511spec/finders/concerns/finder_methods_spec.rb1512spec/lib/gitlab/checks/lfs_integrity_spec.rb1513spec/models/discussion_spec.rb1514spec/workers/prune_old_events_worker_spec.rb1515spec/serializers/pipeline_entity_spec.rb1516spec/finders/milestones_finder_spec.rb1517spec/models/ci/build_trace_chunks/redis_spec.rb1518spec/finders/fork_projects_finder_spec.rb1519spec/lib/gitlab/ci/trace/chunked_io_spec.rb1520spec/models/concerns/manual_inverse_association_spec.rb1521spec/finders/events_finder_spec.rb1522spec/helpers/namespaces_helper_spec.rb1523spec/features/ics/group_issues_spec.rb1524spec/controllers/admin/projects_controller_spec.rb1525spec/lib/gitlab/background_migration/populate_merge_requests_latest_merge_request_diff_id_spec.rb1526spec/workers/repository_update_remote_mirror_worker_spec.rb1527spec/models/ci/build_runner_session_spec.rb1528spec/finders/joined_groups_finder_spec.rb1529spec/migrations/remove_orphaned_label_links_spec.rb1530spec/controllers/projects/runners_controller_spec.rb1531spec/features/dashboard/issuables_counter_spec.rb1532spec/finders/tags_finder_spec.rb1533spec/models/notification_setting_spec.rb1534spec/requests/api/templates_spec.rb1535spec/services/clusters/update_service_spec.rb1536spec/services/projects/enable_deploy_key_service_spec.rb1537spec/views/notify/pipeline_failed_email.html.haml_spec.rb1538spec/migrations/add_pipeline_build_foreign_key_spec.rb1539spec/lib/banzai/reference_parser/project_parser_spec.rb1540spec/workers/expire_pipeline_cache_worker_spec.rb1541spec/validators/branch_filter_validator_spec.rb1542spec/features/projects/branches/download_buttons_spec.rb1543spec/features/users/show_spec.rb1544spec/controllers/health_controller_spec.rb1545spec/finders/users_with_pending_todos_finder_spec.rb1546spec/services/wiki_pages/create_service_spec.rb1547spec/features/projects/activity/rss_spec.rb1548spec/migrations/schedule_to_archive_legacy_traces_spec.rb1549spec/lib/gitlab/import_export/avatar_restorer_spec.rb1550spec/lib/gitlab/import_export/uploads_restorer_spec.rb1551spec/services/users/keys_count_service_spec.rb1552spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb1553spec/lib/gitlab/bitbucket_import/project_creator_spec.rb1554spec/lib/gitlab/gitaly_client/health_check_service_spec.rb1555spec/features/groups/labels/edit_spec.rb1556spec/views/projects/tree/_blob_item.html.haml_spec.rb1557spec/controllers/import/fogbugz_controller_spec.rb1558spec/features/projects/members/anonymous_user_sees_members_spec.rb1559spec/lib/gitlab/cleanup/remote_uploads_spec.rb1560spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb1561spec/models/project_services/assembla_service_spec.rb1562spec/lib/gitlab/cycle_analytics/review_event_fetcher_spec.rb1563spec/controllers/import/gitlab_projects_controller_spec.rb1564spec/lib/gitlab/import/database_helpers_spec.rb1565spec/lib/gitlab/background_migration/move_personal_snippet_files_spec.rb1566spec/lib/gitlab/gitlab_import/project_creator_spec.rb1567spec/migrations/track_untracked_uploads_spec.rb1568spec/services/after_branch_delete_service_spec.rb1569spec/lib/gitlab/ci/build/policy/refs_spec.rb1570spec/models/user_callout_spec.rb1571spec/serializers/blob_entity_spec.rb1572spec/workers/pipeline_notification_worker_spec.rb1573spec/routing/api_routing_spec.rb1574spec/models/hooks/service_hook_spec.rb1575spec/controllers/admin/health_check_controller_spec.rb1576spec/lib/gitlab/auth/ldap/authentication_spec.rb1577spec/rubocop/code_reuse_helpers_spec.rb1578spec/lib/gitlab/encoding_helper_spec.rb1579spec/helpers/icons_helper_spec.rb1580spec/lib/gitlab/redis/queues_spec.rb1581spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb1582spec/lib/gitlab/sql/pattern_spec.rb1583spec/lib/gitlab/sql/cte_spec.rb1584spec/workers/concerns/gitlab/github_import/notify_upon_death_spec.rb1585spec/lib/gitlab/middleware/multipart_spec.rb1586spec/models/diff_viewer/server_side_spec.rb1587spec/lib/bitbucket/representation/issue_spec.rb1588spec/lib/uploaded_file_spec.rb1589spec/lib/gitlab/sidekiq_status_spec.rb1590spec/lib/gitlab/github_import/importer/notes_importer_spec.rb1591spec/lib/gitlab/git_spec.rb1592spec/lib/gitlab/background_migration_spec.rb1593spec/lib/gitlab/route_map_spec.rb1594spec/lib/gitlab/ci/status/success_warning_spec.rb1595spec/lib/gitlab/etag_caching/router_spec.rb1596spec/lib/gitlab/cycle_analytics/plan_stage_spec.rb1597spec/lib/expand_variables_spec.rb1598spec/lib/omni_auth/strategies/jwt_spec.rb1599spec/lib/gitlab/ci/status/running_spec.rb1600spec/lib/gitlab/sidekiq_versioning_spec.rb1601spec/lib/gitlab/themes_spec.rb1602spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1603spec/lib/gitlab/ci/status/skipped_spec.rb1604spec/lib/gitlab/diff/inline_diff_spec.rb1605spec/lib/gitlab/fogbugz_import/client_spec.rb1606spec/serializers/test_case_entity_spec.rb1607spec/lib/bitbucket_server/paginator_spec.rb1608spec/lib/gitlab/database/sha_attribute_spec.rb1609spec/lib/gitlab/ci/status/group/factory_spec.rb1610spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb1611spec/workers/todos_destroyer/entity_leave_worker_spec.rb1612Leftover specs:1613Knapsack report generator started!1614==> Setting up GitLab Shell...1615 GitLab Shell set up in 0.073158893 seconds...1616==> Setting up Gitaly...1617 Gitaly set up in 0.000165044 seconds...1618MergeRequest1619 associations1620 should belong to target_project class_name => Project1621 should belong to source_project class_name => Project1622 should belong to merge_user class_name => User1623 should belong to assignee1624 should have many merge_request_diffs1625 #squash_in_progress?1626 when Gitaly squash_in_progress is enabled1627 behaves like checking whether a squash is in progress1628Preparing worktree (detached HEAD b83d6e3)1629HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1630 returns true when there is a current squash directory1631Preparing worktree (detached HEAD b83d6e3)1632HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1633 returns false when there is no squash directory1634Preparing worktree (detached HEAD b83d6e3)1635HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1636 returns false when the squash directory has expired1637Preparing worktree (detached HEAD b83d6e3)1638HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1639 returns false when the source project has been removed1640 when Gitaly squash_in_progress is disabled1641 behaves like checking whether a squash is in progress1642Preparing worktree (detached HEAD b83d6e3)1643HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1644 returns true when there is a current squash directory1645Preparing worktree (detached HEAD b83d6e3)1646HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1647 returns false when there is no squash directory1648Preparing worktree (detached HEAD b83d6e3)1649HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1650 returns false when the squash directory has expired1651Preparing worktree (detached HEAD b83d6e3)1652HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1653 returns false when the source project has been removed1654 #squash?1655 disabled in database1656 should be falsy1657 enabled in database1658 should be truthy1659 modules1660 should includes the Issuable module1661 should includes the Referable module1662 should includes the Sortable module1663 should includes the Taskable module1664 behaves like AtomicInternalId1665 .has_internal_id1666 Module inclusion1667 should includes the AtomicInternalId module1668 Validation1669 when presence validation is required1670 validates presence1671 when presence validation is not required1672 does not validate presence (PENDING: No reason given)1673 Creating an instance1674 saves a new instance properly1675 internal id generation1676 calls InternalId.generate_next and sets internal id attribute1677 does not overwrite an existing internal id1678 when the instance has an internal ID set1679 calls InternalId.update_last_value and sets the `last_value` to that of the instance1680 validation1681 should validate that :target_branch cannot be empty/falsy1682 should validate that :source_branch cannot be empty/falsy1683 Validation of merge user with Merge When Pipeline Succeeds1684 allows user to be nil when the feature is disabled1685 is invalid without merge user1686 is valid with merge user1687 for forks1688 allows merge requests for sibling-forks1689 callbacks1690 #ensure_merge_request_metrics1691 creates metrics after saving1692 does not duplicate metrics for a merge request1693 respond to1694 should respond to #unchecked?1695 should respond to #can_be_merged?1696 should respond to #cannot_be_merged?1697 should respond to #merge_params1698 should respond to #merge_when_pipeline_succeeds1699 .by_commit_sha1700 with sha contained in latest merge request diff1701 returns merge requests1702 with sha contained not in latest merge request diff1703 returns empty requests1704 with sha not contained in1705 returns empty result1706 .in_projects1707 returns the merge requests for a set of projects1708 .set_latest_merge_request_diff_ids!1709 sets IDs for merge requests, whether they are already set or not1710 #target_branch_sha1711 returns memoized value1712 when the target branch does not exist1713 returns nil1714 #card_attributes1715 includes the author name1716 includes the assignee name1717 #assignee_ids1718 returns an array of the assigned user id1719 #assignee_ids=1720 sets assignee_id to the last id in the array1721 #assignee_or_author?1722 returns true for a user that is assigned to a merge request1723 returns true for a user that is the author of a merge request1724 returns false for a user that is not the assignee or author1725 #visible_closing_issues_for1726 shows only allowed issues to guest1727 shows only allowed issues to developer1728 when external issue tracker is enabled1729 calls non #closes_issues to retrieve data1730 #cache_merge_request_closes_issues!1731 caches closed issues1732 does not cache closed issues when merge request is closed1733 does not cache closed issues when merge request is merged1734 when both internal and external issue trackers are enabled1735 does not cache issues from external trackers1736 caches an internal issue1737 when only external issue tracker enabled1738 does not cache issues from external trackers1739 does not cache an internal issue1740 #source_branch_sha1741 returns memoized value1742 with diffs1743 returns the sha of the source branch last commit1744 without diffs1745 returns the sha of the source branch last commit1746 when there is a tag name matching the branch name1747 returns the sha of the source branch last commit1748 when the merge request is being created1749 returns nil1750 #to_reference1751 returns a String reference to the object1752 supports a cross-project reference1753 returns a String reference with the full path1754 #raw_diffs1755 when there are MR diffs1756 delegates to the MR diffs1757 when there are no MR diffs1758 delegates to the compare object1759 #diffs1760 when there are MR diffs1761 delegates to the MR diffs1762 when there are no MR diffs1763 delegates to the compare object, setting expanded: true1764 #diff_size1765 when there are MR diffs1766 returns the correct count1767 returns the correct overflow count1768 does not perform highlighting1769 when there are no MR diffs1770 returns the correct count1771 returns the correct overflow count1772 does not perform highlighting1773 #related_notes1774 includes notes for commits1775 includes notes for commits from target project as well1776 #for_fork?1777 returns true if the merge request is for a fork1778 returns false if is not for a fork1779 #closes_issues1780 accesses the set of issues that will be closed on acceptance1781 only lists issues as to be closed if it targets the default branch1782 #issues_mentioned_but_not_closing1783 detects issues mentioned in description but not closed1784 when the project has an external issue tracker1785 detects issues mentioned in description but not closed1786 #work_in_progress?1787 detects the 'WIP ' prefix1788 detects the 'WIP:' prefix1789 detects the 'WIP: ' prefix1790 detects the '[WIP]' prefix1791 detects the '[WIP] ' prefix1792 detects the ' [WIP] WIP [WIP] WIP: WIP ' prefix1793 doesn't detect WIP for words starting with WIP1794 doesn't detect WIP for words containing with WIP1795 doesn't detect WIP by default1796 #wipless_title1797 removes the 'WIP ' prefix1798 is satisfies the #work_in_progress? method1799 removes the 'WIP:' prefix1800 is satisfies the #work_in_progress? method1801 removes the 'WIP: ' prefix1802 is satisfies the #work_in_progress? method1803 removes the '[WIP]' prefix1804 is satisfies the #work_in_progress? method1805 removes the '[WIP] ' prefix1806 is satisfies the #work_in_progress? method1807 removes the '[WIP] WIP [WIP] WIP: WIP ' prefix1808 is satisfies the #work_in_progress? method1809 #wip_title1810 adds the WIP: prefix to the title1811 does not add the WIP: prefix multiple times1812 is satisfies the #work_in_progress? method1813 #can_remove_source_branch?1814 can't be removed when its a protected branch1815 can't remove a root ref1816 is unable to remove the source branch for a project the user cannot push to1817 can be removed if the last commit is the head of the source branch1818 cannot be removed if the last commit is not also the head of the source branch1819 #merge_commit_message1820 includes merge information as the title1821 includes its title in the body1822 includes its closed issues in the body1823 includes its reference in the body1824 excludes multiple linebreak runs when description is blank1825 includes its description in the body1826 does not includes its description in the body1827 #reset_merge_when_pipeline_succeeds1828 sets the item to false1829 #hook_attrs1830 delegates to Gitlab::HookData::MergeRequestBuilder#build1831 #diverged_commits_count1832 when the target branch does not exist anymore1833 does not crash1834 returns 01835 diverged on same repository1836 counts commits that are on target branch but not on source branch1837 diverged on fork1838 counts commits that are on target branch but not on source branch1839 rebased on fork1840 counts commits that are on target branch but not on source branch1841 caching1842 caches the output1843 invalidates the cache when the source sha changes1844 invalidates the cache when the target sha changes1845 behaves like an editable mentionable1846 creates new cross-reference notes when the mentionable text is edited1847 behaves like a mentionable1848 generates a descriptive back-reference1849 extracts references from its reference property1850 creates cross-reference notes1851 behaves like a Taskable1852 with multiple tasks1853 returns the correct task status1854 #tasks?1855 returns true when object has tasks1856 returns false when object has no tasks1857 with nested tasks1858 returns the correct task status1859 with an incomplete task1860 returns the correct task status1861 with tasks that are not formatted correctly1862 returns the correct task status1863 with a complete task1864 returns the correct task status1865 #commit_shas1866 delegates to merge request diff1867 head pipeline1868 #head_pipeline1869 returns nil for MR without head_pipeline_id1870 when the source project does not exist1871 returns nil1872 #actual_head_pipeline1873 returns nil for MR with old pipeline1874 returns the pipeline for MR with recent pipeline1875 returns nil when source project does not exist1876 #has_ci?1877 has ci1878 returns true if MR has head_pipeline_id and commits1879 returns true if MR has any pipeline and commits1880 returns true if MR has CI service and commits1881 has no ci1882 returns false if MR has no CI service nor pipeline, and no commits1883 #all_pipelines1884 with single merge_request_diffs1885 behaves like returning pipelines with proper ordering1886 returns all pipelines1887 with multiple irrelevant merge_request_diffs1888 behaves like returning pipelines with proper ordering1889 returns all pipelines1890 with unsaved merge request1891 returns pipelines from diff_head_sha1892 #has_test_reports?1893 when head pipeline has test reports1894 should be truthy1895 when head pipeline does not have test reports1896 should be falsey1897 #compare_test_reports1898 when head pipeline has test reports1899 when reactive cache worker is parsing asynchronously1900 returns status1901 when reactive cache worker is inline1902 returns status and data1903 when cached results is not latest1904 raises and InvalidateReactiveCache error1905 when head pipeline does not have test reports1906 returns status and error message1907 #all_commit_shas1908 when merge request is persisted1909 with a completely different branch1910 behaves like returning all SHA1911 returns all SHAs from all merge_request_diffs1912 with a branch having no difference1913 behaves like returning all SHA1914 returns all SHAs from all merge_request_diffs1915 when merge request is not persisted1916 when compare commits are set in the service1917 returns commits from compare commits temporary data1918 when compare commits are not set in the service1919 returns array with diff head sha element only1920 #short_merge_commit_sha1921 returns short id when there is a merge_commit_sha1922 returns nil when there is no merge_commit_sha1923 #can_be_reverted?1924 when there is no merge_commit for the MR1925 returns false1926 when the MR has been merged1927 when there is no revert commit1928 returns true1929 when there is no merged_at for the MR1930 returns true1931 when there is a revert commit1932 but merged at timestamp cannot be found1933 returns false1934 when the revert commit is mentioned in a note after the MR was merged1935 returns false1936 when there is no merged_at for the MR1937 returns false1938 when the revert commit is mentioned in a note just before the MR was merged1939 returns false1940 when the revert commit is mentioned in a note long before the MR was merged1941 returns true1942 #merged_at1943 when MR is not merged1944 returns nil1945 when metrics has merged_at data1946 returns metrics merged_at1947 when merged event is persisted, but no metrics merged_at is persisted1948 returns merged event creation date1949 when merging note is persisted, but no metrics or merge event exists1950 returns merging note creation date1951 #participants1952 includes the merge request author1953 includes the authors of the notes1954 cached counts1955 updates when assignees change1956 #merge_async1957 enqueues MergeWorker job and updates merge_jid1958 #check_if_can_be_merged1959 when merge_status is unchecked1960 behaves like checking if can be merged1961 when it is not broken and has no conflicts1962 is marked as mergeable1963 when broken1964 becomes unmergeable1965 when it has conflicts1966 becomes unmergeable1967 when merge_status is unchecked1968 behaves like checking if can be merged1969 when it is not broken and has no conflicts1970 is marked as mergeable1971 when broken1972 becomes unmergeable1973 when it has conflicts1974 becomes unmergeable1975 #mergeable?1976 returns false if #mergeable_state? is false1977 return true if #mergeable_state? is true and the MR #can_be_merged? is true1978 #mergeable_state?1979 checks if merge request can be merged1980 when not open1981 returns false1982 when working in progress1983 returns false1984 when broken1985 returns false1986 when failed1987 when #mergeable_ci_state? is false1988 returns false1989 when #mergeable_discussions_state? is false1990 returns false1991 returns true when skipping discussions check1992 #mergeable_ci_state?1993 when it is only allowed to merge when build is green1994 and a failed pipeline is associated1995 should be falsey1996 and a successful pipeline is associated1997 should be truthy1998 and a skipped pipeline is associated1999 should be truthy2000 when no pipeline is associated2001 should be truthy2002 when merges are not restricted to green builds2003 and a failed pipeline is associated2004 should be truthy2005 when no pipeline is associated2006 should be truthy2007 #mergeable_discussions_state?2008 when project.only_allow_merge_if_all_discussions_are_resolved == true2009 with all discussions resolved2010 returns true2011 with unresolved discussions2012 returns false2013 with no discussions2014 returns true2015 when project.only_allow_merge_if_all_discussions_are_resolved == false2016 with unresolved discussions2017 returns true2018 #environments_for2019 with multiple environments2020 selects deployed environments2021 with environments on source project2022 selects deployed environments2023 with environments on target project2024 selects deployed environments2025 without a diff_head_commit2026 returns an empty array2027 #reload_diff2028 calls MergeRequests::ReloadDiffsService#execute with correct params2029 when using the after_update hook to update2030 when the branches are updated2031 uses the new heads to generate the diff2032 #update_diff_discussion_positions2033 updates diff discussion positions2034 when resolve_outdated_diff_discussions is set2035 calls MergeRequests::ResolvedDiscussionNotificationService2036 #branch_merge_base_commit2037 source and target branch exist2038 should eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2039 should be a kind of Commit2040 when the target branch does not exist2041 returns nil2042 #diff_refs2043 with diffs2044 does not touch the repository2045 returns expected diff_refs2046 #source_project_missing?2047 when the fork exists2048 should be falsey2049 when the source project is the same as the target project2050 should be falsey2051 when the fork does not exist2052 returns true2053 #merge_ongoing?2054 returns true when the merge request is locked2055 returns true when merge_id, MR is not merged and it has no running job2056 returns false when merge_jid is nil2057 returns false if MR is merged2058 returns false if there is no merge job running2059 #closed_without_fork?2060 when the merge request is closed2061 returns false if the fork exist2062 returns true if the fork does not exist2063 when the merge request is open2064 returns false2065 #reopenable?2066 when the merge request is closed2067 returns true2068 forked project2069 returns false if unforked2070 returns false if the source project is deleted2071 returns false if the merge request is merged2072 when the merge request is opened2073 returns false2074 #mergeable_with_quick_action?2075 when autocomplete_precheck is set to true2076 is mergeable by developer2077 is not mergeable by normal user2078 when autocomplete_precheck is set to false2079 is mergeable by developer2080 is not mergeable by normal user2081 closed MR2082 is not mergeable2083 MR with WIP2084 is not mergeable2085 sha differs from the MR diff_head_sha2086 is not mergeable2087 sha is not provided2088 is not mergeable2089 with pipeline ok2090 is mergeable2091 with failing pipeline2092 is not mergeable2093 with running pipeline2094 is mergeable2095 #base_pipeline2096 returns latest pipeline2097 #has_commits?2098 returns true when merge request diff has commits2099 #has_no_commits?2100 returns true when merge request diff has 0 commits2101 #merge_request_diff_for2102 runs a single query on the initial call, and none afterwards2103 with diff refs2104 returns the diffs2105 with a commit SHA2106 returns the diffs2107 #version_params_for2108 when the diff refs are for an older merge request version2109 returns the diff ID for the version to show2110 when the diff refs are for a comparison between merge request versions2111 returns the diff ID and start sha of the versions to compare2112 when the diff refs are not for a merge request version2113 returns nil2114 #fetch_ref!2115 fetches the ref correctly2116 removing a merge request2117 refreshes the number of open merge requests of the target project2118 behaves like throttled touch2119 #touch2120 updates the updated_at timestamp2121 updates the object at most once per minute2122 state machine transitions2123 #unlock_mr2124 updates merge request head pipeline and sets merge_jid to nil2125 transition to cannot_be_merged2126 opened2127 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2128 notifies conflict, whenever newly unmergeable2129 does not notify whenever merge request is newly unmergeable due to other reasons2130 locked2131 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2132 notifies conflict, whenever newly unmergeable2133 does not notify whenever merge request is newly unmergeable due to other reasons2134 closed2135 does not notify2136 merged2137 does not notify2138 source branch is missing2139 does not raise error2140 check_state?2141 indicates whether MR is still checking for mergeability2142 #should_be_rebased?2143 returns false for the same source and target branches2144 #rebase_in_progress?2145 when Gitaly rebase_in_progress is enabled2146 behaves like checking whether a rebase is in progress2147Preparing worktree (detached HEAD b83d6e3)2148HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2149 returns true when there is a current rebase directory2150Preparing worktree (detached HEAD b83d6e3)2151HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2152 returns false when there is no rebase directory2153Preparing worktree (detached HEAD b83d6e3)2154HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2155 returns false when the rebase directory has expired2156Preparing worktree (detached HEAD b83d6e3)2157HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2158 returns false when the source project has been removed2159 when Gitaly rebase_in_progress is enabled2160 behaves like checking whether a rebase is in progress2161Preparing worktree (detached HEAD b83d6e3)2162HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2163 returns true when there is a current rebase directory2164Preparing worktree (detached HEAD b83d6e3)2165HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2166 returns false when there is no rebase directory2167Preparing worktree (detached HEAD b83d6e3)2168HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2169 returns false when the rebase directory has expired2170Preparing worktree (detached HEAD b83d6e3)2171HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2172 returns false when the source project has been removed2173 #allow_collaboration2174 is false when pushing by a maintainer is not possible2175 is true when pushing by a maintainer is possible2176 #collaborative_push_possible?2177 does not allow maintainer to push if the source project is the same as the target2178 allows maintainer to push when both source and target are public2179 is not available for protected branches2180 #can_allow_collaboration?2181 is false if the user does not have push access to the source project2182 is true when the user has push access to the source project2183 #merge_participants2184 contains author2185 when merge_when_pipeline_succeeds? is true2186 when merge user is author2187 contains author only2188 when merge user and author are different users2189 contains author and merge user2190API::Groups2191 GET /groups2192 when unauthenticated2193 returns public groups2194 avoids N+1 queries2195 when authenticated as user2196 normal user: returns an array of groups of user12197 does not include statistics2198 when authenticated as admin2199 admin: returns an array of all groups2200 does not include statistics by default2201 includes statistics if requested2202 when using skip_groups in request2203 returns all groups excluding skipped groups2204 when using all_available in request2205 returns all groups you have access to2206 when using sorting2207 sorts by name ascending by default2208 sorts in descending order when passed2209 sorts by path in order_by param2210 sorts by id in the order_by param2211 sorts also by descending id with pagination fix2212 sorts identical keys by id for good pagination2213 sorts descending identical keys by id for good pagination2214 when using owned in the request2215 returns an array of groups the user owns2216 when using min_access_level in the request2217 returns an array of groups the user has at least master access2218 GET /groups/:id2219 when unauthenticated2220 returns 404 for a private group2221 returns 200 for a public group2222 returns only public projects in the group2223 returns only public projects shared with the group2224 when authenticated as user2225 returns one of user1's groups2226 returns one of user1's groups without projects when with_projects option is set to false2227 does not return a non existing group2228 does not return a group not attached to user12229 returns only public and internal projects in the group2230 returns only public and internal projects shared with the group2231 when authenticated as admin2232 returns any existing group2233 does not return a non existing group2234 when using group path in URL2235 returns any existing group2236 does not return a non existing group2237 does not return a group not attached to user12238 PUT /groups/:id2239 when authenticated as the group owner2240 updates the group2241 returns 404 for a non existing group2242 when authenticated as the admin2243 updates the group2244 when authenticated as an user that can see the group2245 does not updates the group2246 when authenticated as an user that cannot see the group2247 returns 404 when trying to update the group2248 GET /groups/:id/projects2249 when authenticated as user2250 returns the group's projects2251 returns the group's projects with simple representation2252 filters the groups projects2253 does not return a non existing group2254 does not return a group not attached to user12255 only returns projects to which user has access2256 only returns the projects owned by user2257 only returns the projects starred by user2258 when authenticated as admin2259 returns any existing group2260 does not return a non existing group2261 avoids N+1 queries2262 when using group path in URL2263 returns any existing group2264 does not return a non existing group2265 does not return a group not attached to user12266 GET /groups/:id/subgroups2267 when unauthenticated2268 returns only public subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2269 returns 404 for a private group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2270 when authenticated as user2271 when user is not member of a public group2272 returns no subgroups for the public group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2273 when using all_available in request2274 returns public subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2275 when user is not member of a private group2276 returns 404 for the private group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2277 when user is member of public group2278 returns private subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2279 when using statistics in request2280 does not include statistics (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2281 when user is member of private group2282 returns subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2283 when authenticated as admin2284 returns private subgroups of a public group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2285 returns subgroups of a private group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2286 does not include statistics by default (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2287 includes statistics if requested (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2288 POST /groups2289 when authenticated as user without group permissions2290 does not create group2291 as owner2292 can create subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2293 as maintainer2294 cannot create subgroups (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2295 when authenticated as user with group permissions2296 creates group2297 creates a nested group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2298 does not create group, duplicate2299 returns 400 bad request error if name not given2300 returns 400 bad request error if path not given2301 DELETE /groups/:id2302 when authenticated as user2303 removes group2304 does not remove a group if not an owner2305 does not remove a non existing group2306 does not remove a group not attached to user12307 behaves like 412 response2308 for a modified ressource2309 returns 4122310 for an unmodified ressource2311 returns accepted2312 when authenticated as admin2313 removes any existing group2314 does not remove a non existing group2315 POST /groups/:id/projects/:project_id2316 when authenticated as user2317 does not transfer project to group2318 when authenticated as admin2319 transfers project to group2320 when using project path in URL2321 with a valid project path2322 transfers project to group2323 with a non-existent project path2324 does not transfer project to group2325 when using a group path in URL2326 with a valid group path2327 transfers project to group2328 with a non-existent group path2329 does not transfer project to group2330 behaves like custom attributes endpoints2331 GET /groups with custom attributes filter2332 with an unauthorized user2333 does not filter by custom attributes2334 with an authorized user2335 filters by custom attributes2336 GET /groups with custom attributes2337 with an unauthorized user2338 does not include custom attributes2339 with an authorized user2340 does not include custom attributes by default2341 includes custom attributes if requested2342 GET /groups/:id with custom attributes2343 with an unauthorized user2344 does not include custom attributes2345 with an authorized user2346 does not include custom attributes by default2347 includes custom attributes if requested2348 GET /groups/:id/custom_attributes2349 with an unauthorized user2350 behaves like an unauthorized API user2351 should eq 4032352 with an authorized user2353 returns all custom attributes2354 GET /groups/:id/custom_attributes/:key2355 with an unauthorized user2356 behaves like an unauthorized API user2357 should eq 4032358 with an authorized user2359 returns a single custom attribute2360 PUT /groups/:id/custom_attributes/:key2361 with an unauthorized user2362 behaves like an unauthorized API user2363 should eq 4032364 with an authorized user2365 creates a new custom attribute2366 updates an existing custom attribute2367 DELETE /groups/:id/custom_attributes/:key2368 with an unauthorized user2369 behaves like an unauthorized API user2370 should eq 4032371 with an authorized user2372 deletes an existing custom attribute2373Git LFS API and storage2374 when lfs is disabled2375 responds with 5012376 project specific LFS settings2377 with LFS disabled globally2378 LFS disabled in project2379 responds with a 501 message on upload2380 responds with a 501 message on download2381 LFS enabled in project2382 responds with a 501 message on upload2383 responds with a 501 message on download2384 with LFS enabled globally2385 LFS disabled in project2386 responds with a 403 message on upload2387 responds with a 403 message on download2388 LFS enabled in project2389 responds with a 200 message on upload2390 responds with a 200 message on download2391 deprecated API2392 when fetching lfs object using deprecated API2393 behaves like a deprecated2394 responds with 5012395 returns deprecated message2396 when handling lfs request using deprecated API2397 behaves like a deprecated2398 responds with 5012399 returns deprecated message2400 when fetching lfs object2401 and request comes from gitlab-workhorse2402 without user being authorized2403 responds with status 4012404 with required headers2405 with user is authorized2406 and does not have project access2407 responds with status 4042408 and does have project access2409 behaves like responds with a file2410 responds with status 2002411 responds with the file location2412 when LFS uses object storage2413 when proxy download is enabled2414 responds with redirect2415 responds with the workhorse send-url2416 when proxy download is disabled2417 responds with redirect2418 responds with the file location2419 when deploy key is authorized2420 behaves like responds with a file2421 responds with status 2002422 responds with the file location2423 when using a user key2424 when user allowed2425 behaves like responds with a file2426 responds with status 2002427 responds with the file location2428 when user not allowed2429 responds with status 4042430 when build is authorized as2431 administrator2432 behaves like can download LFS only from own projects2433 for owned project2434 behaves like responds with a file2435 responds with status 2002436 responds with the file location2437 for member of project2438 behaves like responds with a file2439 responds with status 2002440 responds with the file location2441 for other project2442 rejects downloading code2443 regular user2444 behaves like can download LFS only from own projects2445 for owned project2446 behaves like responds with a file2447 responds with status 2002448 responds with the file location2449 for member of project2450 behaves like responds with a file2451 responds with status 2002452 responds with the file location2453 for other project2454 rejects downloading code2455 does not have user2456 behaves like can download LFS only from own projects2457 for owned project2458 behaves like responds with a file2459 responds with status 2002460 responds with the file location2461 for member of project2462 behaves like responds with a file2463 responds with status 2002464 responds with the file location2465 for other project2466 rejects downloading code2467 without required headers2468 responds with status 4042469 when handling lfs batch request2470 download2471 when user is authenticated2472 behaves like an authorized requests2473 when downloading an lfs object that is assigned to our project2474 responds with status 2002475 with href to download2476 when downloading an lfs object that is assigned to other project2477 responds with status 2002478 with href to download2479 when downloading a lfs object that does not exist2480 responds with status 2002481 with an 404 for specific object2482 when downloading one new and one existing lfs object2483 responds with status 2002484 responds with upload hypermedia link for the new object2485 when user does is not member of the project2486 responds with 4042487 when user does not have download access2488 responds with 4032489 when using Deploy Tokens2490 when Deploy Token is valid2491 behaves like an authorized requests2492 when downloading an lfs object that is assigned to our project2493 responds with status 2002494 with href to download2495 when downloading an lfs object that is assigned to other project2496 responds with status 2002497 with href to download2498 when downloading a lfs object that does not exist2499 responds with status 2002500 with an 404 for specific object2501 when downloading one new and one existing lfs object2502 responds with status 2002503 responds with upload hypermedia link for the new object2504 when Deploy Token is not valid2505 responds with access denied2506 when Deploy Token is not related to the project2507 responds with access forbidden2508 when build is authorized as2509 administrator2510 behaves like can download LFS only from own projects2511 for own project2512 behaves like an authorized requests2513 when downloading an lfs object that is assigned to our project2514 responds with status 2002515 with href to download2516 when downloading an lfs object that is assigned to other project2517 responds with status 2002518 with href to download2519 when downloading a lfs object that does not exist2520 responds with status 2002521 with an 404 for specific object2522 when downloading one new and one existing lfs object2523 responds with status 2002524 responds with upload hypermedia link for the new object2525 for other project2526 rejects downloading code2527 regular user2528 behaves like can download LFS only from own projects2529 for own project2530 behaves like an authorized requests2531 when downloading an lfs object that is assigned to our project2532 responds with status 2002533 with href to download2534 when downloading an lfs object that is assigned to other project2535 responds with status 2002536 with href to download2537 when downloading a lfs object that does not exist2538 responds with status 2002539 with an 404 for specific object2540 when downloading one new and one existing lfs object2541 responds with status 2002542 responds with upload hypermedia link for the new object2543 for other project2544 rejects downloading code2545 does not have user2546 behaves like can download LFS only from own projects2547 for own project2548 behaves like an authorized requests2549 when downloading an lfs object that is assigned to our project2550 responds with status 2002551 with href to download2552 when downloading an lfs object that is assigned to other project2553 responds with status 2002554 with href to download2555 when downloading a lfs object that does not exist2556 responds with status 2002557 with an 404 for specific object2558 when downloading one new and one existing lfs object2559 responds with status 2002560 responds with upload hypermedia link for the new object2561 for other project2562 rejects downloading code2563 when user is not authenticated2564 is accessing public project2565 responds with status 200 and href to download2566 responds with status 200 and href to download2567 is accessing non-public project2568 responds with authorization required2569 upload2570 when request is authenticated2571 when user has project push access2572 when pushing an lfs object that already exists2573 responds with status 2002574 responds with links the object to the project2575 when pushing a lfs object that does not exist2576 behaves like pushes new LFS objects2577 responds with upload hypermedia link2578 when pushing one new and one existing lfs object2579 responds with status 2002580 responds with upload hypermedia link for the new object2581 when user does not have push access2582 responds with 4032583 when build is authorized2584 build has an user2585 tries to push to own project2586 responds with 403 (not 404 because project is public)2587 tries to push to other project2588 responds with 403 (not 404 because project is public)2589 does not have user2590 responds with 403 (not 404 because project is public)2591 when deploy key has project push access2592 behaves like pushes new LFS objects2593 responds with upload hypermedia link2594 when user is not authenticated2595 when user has push access2596 responds with status 4012597 when user does not have push access2598 responds with status 4012599 unsupported2600 responds with status 4042601 when handling lfs batch request on a read-only GitLab instance2602 responds with a 200 message on download2603 responds with a 403 message on upload2604 when pushing a lfs object2605 to one project2606 when user is authenticated2607 when user has push access to the project2608 and the request bypassed workhorse2609 raises an exception2610 and request is sent by gitlab-workhorse to authorize the request2611 when using local storage2612 behaves like a local file2613 behaves like a valid response2614 responds with status 2002615 uses the gitlab-workhorse content type2616 responds with status 200, location of lfs store and object details2617 when using remote storage2618 when direct upload is enabled2619 behaves like a valid response2620 responds with status 2002621 uses the gitlab-workhorse content type2622 responds with status 200, location of lfs remote store and object details2623 when direct upload is disabled2624 behaves like a local file2625 behaves like a valid response2626 responds with status 2002627 uses the gitlab-workhorse content type2628 responds with status 200, location of lfs store and object details2629 and request is sent by gitlab-workhorse to finalize the upload2630 responds with status 2002631 lfs object is linked to the project2632 and workhorse requests upload finalize for a new lfs object2633 with object storage disabled2634 doesn't attempt to migrate file to object storage2635 with object storage enabled2636 and direct upload enabled2637 with invalid remote_id: 1231232638 responds with status 4032639 with invalid remote_id: ../../1231232640 responds with status 4032641 with valid remote_id2642 responds with status 2002643 schedules migration of file to object storage2644 have valid file2645 and background upload enabled2646 schedules migration of file to object storage2647 invalid tempfiles2648 rejects slashes in the tempfile name (path traversal)2649 and user does not have push access2650 behaves like forbidden2651 and request is sent by gitlab-workhorse to authorize the request2652 responds with 4032653 and request is sent by gitlab-workhorse to finalize the upload2654 responds with 4032655 and request is sent with a malformed headers2656 does not recognize it as a valid lfs command2657 when build is authorized2658 build has an user2659 tries to push to own project2660 responds with 403 (not 404 because the build user can read the project)2661 tries to push to other project2662 responds with 404 (do not leak non-public project existence)2663 does not have user2664 responds with 404 (do not leak non-public project existence)2665 for unauthenticated2666 behaves like unauthorized2667 and request is sent by gitlab-workhorse to authorize the request2668 responds with status 4012669 and request is sent by gitlab-workhorse to finalize the upload2670 responds with status 4012671 and request is sent with a malformed headers2672 does not recognize it as a valid lfs command2673 to a forked project2674 when user is authenticated2675 when user has push access to the project2676 and request is sent by gitlab-workhorse to authorize the request2677 responds with status 2002678 with location of lfs store and object details2679 and request is sent by gitlab-workhorse to finalize the upload2680 responds with status 2002681 lfs object is linked to the source project2682 and user does not have push access2683 behaves like forbidden2684 and request is sent by gitlab-workhorse to authorize the request2685 responds with 4032686 and request is sent by gitlab-workhorse to finalize the upload2687 responds with 4032688 and request is sent with a malformed headers2689 does not recognize it as a valid lfs command2690 when build is authorized2691 build has an user2692 tries to push to own project2693 responds with 403 (not 404 because project is public)2694 tries to push to other project2695 responds with 403 (not 404 because project is public)2696 does not have user2697 responds with 403 (not 404 because project is public)2698 for unauthenticated2699 behaves like unauthorized2700 and request is sent by gitlab-workhorse to authorize the request2701 responds with status 4012702 and request is sent by gitlab-workhorse to finalize the upload2703 responds with status 4012704 and request is sent with a malformed headers2705 does not recognize it as a valid lfs command2706 and second project not related to fork or a source project2707 when pushing the same lfs object to the second project2708 responds with status 2002709 links the lfs object to the project2710CycleAnalytics#staging2711 start condition: merge request that closes issue is merged2712 end condition: merge request that closes issue is deployed to production2713 finds the median of available durations between the two conditions2714 when the data belongs to another project2715 returns nil2716 when the end condition happens before the start condition2717 returns nil2718 start condition NOT PRESENT: merge request that closes issue is merged2719 end condition: merge request that closes issue is deployed to production2720 returns nil2721 start condition: merge request that closes issue is merged2722 end condition NOT PRESENT: merge request that closes issue is deployed to production2723 returns nil2724 start condition: merge request that closes issue is merged2725 end condition: production deploy happens after merge request is merged (along with other changes)2726 finds the median of available durations between the two conditions2727 when the data belongs to another project2728 returns nil2729 when the end condition happens before the start condition2730 returns nil2731 start condition NOT PRESENT: merge request that closes issue is merged2732 end condition: production deploy happens after merge request is merged (along with other changes)2733 returns nil2734 start condition: merge request that closes issue is merged2735 end condition NOT PRESENT: production deploy happens after merge request is merged (along with other changes)2736 returns nil2737 start condition: merge request that closes issue is merged2738 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2739 finds the median of available durations between the two conditions2740 when the data belongs to another project2741 returns nil2742 when the end condition happens before the start condition2743 returns nil2744 start condition NOT PRESENT: merge request that closes issue is merged2745 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2746 returns nil2747 start condition: merge request that closes issue is merged2748 end condition NOT PRESENT: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2749 returns nil2750 when none of the start / end conditions are matched2751 returns nil2752 when a regular merge request (that doesn't close the issue) is merged and deployed2753 returns nil2754 when the deployment happens to a non-production environment2755 returns nil2756Dropdown author2757Starting the Capybara driver server...2758 behavior2759 opens when the search bar has author:2760 closes when the search bar is unfocused2761 should show loading indicator when opened2762 should hide loading indicator when loaded2763 should load all the authors when opened2764 shows current user at top of dropdown2765 filtering2766 filters by name2767 filters by case insensitive name2768 filters by username with symbol2769 filters by username without symbol2770 filters by case insensitive username without symbol2771 selecting from dropdown2772 fills in the author username when the author has not been filtered2773 fills in the author username when the author has been filtered2774 selecting from dropdown without Ajax call2775 selects current user2776 input has existing content2777 opens author dropdown with existing search term2778 opens author dropdown with existing assignee2779 opens author dropdown with existing label2780 opens author dropdown with existing milestone2781 caching requests2782 caches requests after the first load2783Project variables2784 behaves like variable list2785 shows list of variables2786 adds new secret variable2787 adds empty variable2788 adds new protected variable2789 reveals and hides variables2790 deletes variable2791 edits variable2792 edits variable with empty value2793 edits variable to be protected2794 edits variable to be unprotected2795 handles multiple edits and deletion in the middle2796 shows validation error box about duplicate keys2797Projects > Show > User sees setup shortcut buttons2798 empty project2799 as a normal user2800 no Auto DevOps button if can not manage pipelines2801 "Auto DevOps enabled" button not linked2802 as a maintainer2803 "New file" button linked to new file page2804 "Add Readme" button linked to new file populated for a readme2805 "Add license" button linked to new file populated for a license2806 Auto DevOps button2807 when Auto DevOps is enabled2808 "Auto DevOps enabled" anchor linked to settings page2809 when Auto DevOps is not enabled2810 "Enable Auto DevOps" button linked to settings page2811 Kubernetes cluster button2812 "Add Kubernetes cluster" button linked to clusters page2813 "Kubernetes cluster" anchor linked to cluster page2814 populated project2815 as a normal user2816 when Auto DevOps is enabled2817 "Auto DevOps enabled" button not linked2818 when Auto DevOps is not enabled2819 no Auto DevOps button if can not manage pipelines2820 no Kubernetes cluster button if can not manage clusters2821 as a maintainer2822 no "Add Changelog" button if the project already has a changelog2823 no "Add license" button if the project already has a license2824 no "Add Contribution guide" button if the project already has a contribution guide2825 Readme button2826 when the project has a populated Readme2827 show the "Readme" anchor2828 when the project has an empty Readme2829 show the "Readme" anchor2830 when the project does not have a Readme2831 shows the "Add Readme" button2832 GitLab CI configuration button2833 when Auto DevOps is enabled2834 no "Set up CI/CD" button if the project has Auto DevOps enabled2835 when Auto DevOps is not enabled2836 "Set up CI/CD" button linked to new file populated for a .gitlab-ci.yml2837 no "Set up CI/CD" button if the project already has a .gitlab-ci.yml2838 Auto DevOps button2839 when Auto DevOps is enabled2840 "Auto DevOps enabled" anchor linked to settings page2841 when Auto DevOps is not enabled2842 "Enable Auto DevOps" button linked to settings page2843 no Auto DevOps button if Auto DevOps callout is shown2844 no "Enable Auto DevOps" button when .gitlab-ci.yml already exists2845 Kubernetes cluster button2846 "Add Kubernetes cluster" button linked to clusters page2847 "Kubernetes cluster" button linked to cluster page2848 "Set up Koding" button2849 no "Set up Koding" button if Koding disabled2850 no "Set up Koding" button if the project already has a .koding.yml2851 "Set up Koding" button linked to new file populated for a .koding.yml2852Todos::Destroy::EntityLeaveService2853 #execute2854 when a user leaves a project2855 when project is private2856 removes project todos for the provided user2857 when the user is member of the project2858 does not remove any todos2859 when the user is a project guest2860 removes only confidential issues todos2861 when the user is member of a parent group2862 does not remove any todos2863 when the user is guest of a parent group2864 removes only confidential issues todos2865 when project is not private2866 confidential issues2867 when a user is not an author of confidential issue2868 removes only confidential issues todos2869 when a user is an author of confidential issue2870 does not remove any todos2871 when a user is an assignee of confidential issue2872 does not remove any todos2873 when a user is a project guest2874 removes only confidential issues todos2875 when a user is a project guest but group developer2876 does not remove any todos2877 feature visibility check2878 when issues are visible only to project members2879 removes only users issue todos2880 when a user leaves a group2881 when group is private2882 removes group and subproject todos for the user2883 when the user is member of the group2884 does not remove any todos2885 when the user is member of the group project but not the group2886 does not remove any todos2887 with nested groups2888 when the user is not a member of any groups/projects2889 removes todos for the user including subprojects todos (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2890 when the user is member of a parent group2891 does not remove any todos (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2892 when the user is member of a subgroup2893 does not remove group and subproject todos (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2894 when the user is member of a child project2895 does not remove subproject and group todos (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)2896 when group is not private2897 when user is not member2898 removes only confidential issues todos2899 when user is a project guest2900 removes only confidential issues todos2901 when user is a project guest & group developer2902 does not remove any todos2903 when entity type is not valid2904 raises an exception2905 when entity was not found2906 does not remove any todos2907User views diffs2908 shows diffs2909 hides loading spinner after load2910 when in the inline view2911 unfolds diffs2912 when in the side-by-side view2913 shows diffs in parallel2914 toggles container class2915 unfolds diffs2916API::Deployments2917 GET /projects/:id/deployments2918 as member of the project2919 returns projects deployments sorted by id asc2920 ordering2921 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]2922 returns the deployments ordered2923 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2924 returns the deployments ordered2925 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2926 returns the deployments ordered2927 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]2928 returns the deployments ordered2929 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]2930 returns the deployments ordered2931 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]2932 returns the deployments ordered2933 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_3, :deployment_1]2934 returns the deployments ordered2935 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2936 returns the deployments ordered2937 as non member2938 returns a 404 status code2939 GET /projects/:id/deployments/:deployment_id2940 as a member of the project2941 returns the projects deployment2942 as non member2943 returns a 404 status code2944Ci::RetryPipelineService#execute2945 when user has full ability to modify pipeline2946 closes all todos about failed jobs for pipeline2947 reprocesses the pipeline2948 when there are already retried jobs present2949 does not retry jobs that has already been retried2950 when there are failed builds in the last stage2951 enqueues all builds in the last stage2952 when there are failed or canceled builds in the first stage2953 retries builds failed builds and marks subsequent for processing2954 when there is failed build present which was run on failure2955 retries builds only in the first stage2956 creates a new job for report job in this case2957 when the last stage was skipepd2958 retries builds only in the first stage2959 when pipeline contains manual actions2960 when there are optional manual actions only2961 when there is a canceled manual action in first stage2962 retries failed builds and marks subsequent for processing2963 when pipeline has blocking manual actions defined2964 when pipeline retry should enqueue builds2965 retries failed builds2966 when pipeline retry should block pipeline immediately2967 reprocesses blocking manual action and blocks pipeline2968 when there is a skipped manual action in last stage2969 retries canceled job and reprocesses manual actions2970 when there is a created manual action in the last stage2971 retries canceled job and does not update the manual action2972 when there is a created manual action in the first stage2973 retries canceled job and processes the manual action2974 when user is not allowed to retry pipeline2975 raises an error2976 when user is not allowed to trigger manual action2977 when there is a failed manual action present2978 raises an error2979 when there is a failed manual action in later stage2980 raises an error2981 when maintainer is allowed to push to forked project2982 allows to retry failed pipeline2983Projects > Settings > Repository settings2984 for developer2985 is not allowed to view2986 for maintainer2987 Deploy Keys2988 get list of keys2989 add a new deploy key2990 edit an existing deploy key2991 edit a deploy key from projects user has access to2992 remove an existing deploy key2993 Deploy tokens2994 view deploy tokens2995 add a new deploy token2996 remote mirror settings2997 shows push mirror settings2998Boards::Lists::MoveService2999 #execute3000 when board parent is a project3001 behaves like lists move service3002 keeps position of lists when list type is closed3003 when list type is set to label3004 keeps position of lists when new position is nil3005 keeps position of lists when new positon is equal to old position3006 keeps position of lists when new positon is negative3007 keeps position of lists when new positon is equal to number of labels lists3008 keeps position of lists when new positon is greater than number of labels lists3009 increments position of intermediate lists when new positon is equal to first position3010 decrements position of intermediate lists when new positon is equal to last position3011 decrements position of intermediate lists when new position is greater than old position3012 increments position of intermediate lists when new position is lower than old position3013 when board parent is a group3014 behaves like lists move service3015 keeps position of lists when list type is closed3016 when list type is set to label3017 keeps position of lists when new position is nil3018 keeps position of lists when new positon is equal to old position3019 keeps position of lists when new positon is negative3020 keeps position of lists when new positon is equal to number of labels lists3021 keeps position of lists when new positon is greater than number of labels lists3022 increments position of intermediate lists when new positon is equal to first position3023 decrements position of intermediate lists when new positon is equal to last position3024 decrements position of intermediate lists when new position is greater than old position3025 increments position of intermediate lists when new position is lower than old position3026Explore Groups3027 when signed in3028 behaves like renders public and internal projects3029 should not text "project1165"3030 behaves like renders public and internal projects3031 should not text "project1168"3032 behaves like renders public and internal projects3033 should not text "project1171"3034 behaves like renders group in public groups area3035 should text "group250"3036 when signed out3037 behaves like renders only public project3038 should not text "project1177"3039 behaves like renders only public project3040 should not text "project1180"3041 behaves like renders only public project3042 should not text "project1183"3043 behaves like renders group in public groups area3044 should text "group254"3045GitLab Flavored Markdown3046 for commits3047 renders title in commits#index3048 renders title in commits#show3049 renders description in commits#show3050 renders title in repositories#branches3051 for issues3052 renders subject in issues#index3053 renders subject in issues#show3054 renders details in issues#show3055 for merge requests3056 renders title in merge_requests#index3057 renders title in merge_requests#show3058 for milestones3059 renders title in milestones#index3060 renders title in milestones#show3061 renders description in milestones#show3062Commit diff3063 inline view3064 adds comment to diff3065 parallel view3066 adds comment to diff3067Gitlab::BareRepositoryImport::Importer3068 with subgroups3069 behaves like importing a repository3070 .execute3071 creates a project for a repository in storage (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3072 skips wiki repos (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3073 without admin users3074 raises an error (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3075 #create_project_if_needed3076 starts an import for a project that did not exist (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3077 skips importing when the project already exists (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3078 creates a project with the correct path in the database (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3079 does not schedule an import (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3080 creates the Git repo on disk (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3081 hashed storage enabled3082 creates a project with the correct path in the database (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3083 without subgroups3084 behaves like importing a repository3085 .execute3086 creates a project for a repository in storage3087 skips wiki repos3088 without admin users3089 raises an error3090 #create_project_if_needed3091 starts an import for a project that did not exist3092 skips importing when the project already exists3093 creates a project with the correct path in the database3094 does not schedule an import3095 creates the Git repo on disk3096 hashed storage enabled3097 creates a project with the correct path in the database3098 without groups3099 starts an import for a project that did not exist3100 creates a project with the correct path in the database3101 creates the Git repo in disk3102 with a repository already on disk3103 moves an existing project to the correct path3104 with Wiki3105 creates the Wiki git repo in disk3106 behaves like importing a repository3107 .execute3108 creates a project for a repository in storage3109 skips wiki repos3110 without admin users3111 raises an error3112 #create_project_if_needed3113 starts an import for a project that did not exist3114 skips importing when the project already exists3115 creates a project with the correct path in the database3116 does not schedule an import3117 creates the Git repo on disk3118 hashed storage enabled3119 creates a project with the correct path in the database3120 when subgroups are not available3121 #create_project_if_needed3122 raises an error3123InvalidGpgSignatureUpdateWorker3124 when GpgKey is found3125 calls NotificationService.new.run3126 when GpgKey is not found3127 does not raise errors3128 does not call NotificationService.new.run3129UploadsController3130 POST create3131 when a user does not have permissions to upload a file3132 returns 401 when the user is not logged in3133 returns 404 when user can't comment on a snippet3134 when a user is logged in3135 returns an error without file3136 returns an error with invalid model3137 returns 404 status when object not found3138 with valid image3139 returns a content with original filename, new link, and correct type.3140 creates a corresponding Upload record3141 with valid non-image file3142 returns a content with original filename, new link, and correct type.3143 creates a corresponding Upload record3144 temporal with valid image3145 returns a content with original filename, new link, and correct type.3146 does not create an Upload record3147 temporal with valid non-image file3148 returns a content with original filename, new link, and correct type.3149 does not create an Upload record3150 GET show3151 Content-Disposition security measures3152 for PNG files3153 returns Content-Disposition: inline3154 for SVG files3155 returns Content-Disposition: attachment3156 when viewing a user avatar3157 when signed in3158 when the user is blocked3159 redirects to the sign in page3160 when the user isn't blocked3161 responds with status 2003162 behaves like content not cached without revalidation3163 ensures content will not be cached without revalidation3164 when not signed in3165 responds with status 2003166 behaves like content not cached without revalidation3167 ensures content will not be cached without revalidation3168 when viewing a project avatar3169 when the project is public3170 when not signed in3171 responds with status 2003172 behaves like content not cached without revalidation3173 ensures content will not be cached without revalidation3174 when signed in3175 responds with status 2003176 behaves like content not cached without revalidation3177 ensures content will not be cached without revalidation3178 when the project is private3179 when not signed in3180 redirects to the sign in page3181 when signed in3182 when the user has access to the project3183 when the user is blocked3184 redirects to the sign in page3185 when the user isn't blocked3186 responds with status 2003187 behaves like content not cached without revalidation3188 ensures content will not be cached without revalidation3189 when the user doesn't have access to the project3190 responds with status 4043191 when viewing a group avatar3192 when the group is public3193 when not signed in3194 responds with status 2003195 behaves like content not cached without revalidation3196 ensures content will not be cached without revalidation3197 when signed in3198 responds with status 2003199 behaves like content not cached without revalidation3200 ensures content will not be cached without revalidation3201 when the group is private3202 when signed in3203 when the user has access to the project3204 when the user is blocked3205 redirects to the sign in page3206 when the user isn't blocked3207 responds with status 2003208 behaves like content not cached without revalidation3209 ensures content will not be cached without revalidation3210 when the user doesn't have access to the project3211 responds with status 4043212 when viewing a note attachment3213 when the project is public3214 when not signed in3215 responds with status 2003216 behaves like content not cached without revalidation3217 ensures content will not be cached without revalidation3218 when signed in3219 responds with status 2003220 behaves like content not cached without revalidation3221 ensures content will not be cached without revalidation3222 when the project is private3223 when not signed in3224 redirects to the sign in page3225 when signed in3226 when the user has access to the project3227 when the user is blocked3228 redirects to the sign in page3229 when the user isn't blocked3230 responds with status 2003231 behaves like content not cached without revalidation3232 ensures content will not be cached without revalidation3233 when the user doesn't have access to the project3234 responds with status 4043235 Appearance3236 when viewing a custom header logo3237 when not signed in3238 responds with status 2003239 behaves like content not cached without revalidation3240 ensures content will not be cached without revalidation3241 when viewing a custom logo3242 when not signed in3243 responds with status 2003244 behaves like content not cached without revalidation3245 ensures content will not be cached without revalidation3246 original filename or a version filename must match3247 has a valid filename on the original file3248 successfully returns the file3249 has an invalid filename on the original file3250 returns a 4043251PipelinesFinder3252 #execute3253 when params is empty3254 returns all pipelines3255 when scope is running3256 returns matched pipelines3257 when scope is pending3258 returns matched pipelines3259 when scope is finished3260 returns matched pipelines3261 when scope is branches or tags3262 when scope is branches3263 returns matched pipelines3264 when scope is tags3265 returns matched pipelines3266 when status is created3267 returns matched pipelines3268 when status is pending3269 returns matched pipelines3270 when status is running3271 returns matched pipelines3272 when status is success3273 returns matched pipelines3274 when status is failed3275 returns matched pipelines3276 when status is canceled3277 returns matched pipelines3278 when status is skipped3279 returns matched pipelines3280 when status is manual3281 returns matched pipelines3282 when status is scheduled3283 returns matched pipelines3284 when ref is specified3285 when ref exists3286 returns matched pipelines3287 when ref does not exist3288 returns empty3289 when name is specified3290 when name exists3291 returns matched pipelines3292 when name does not exist3293 returns empty3294 when username is specified3295 when username exists3296 returns matched pipelines3297 when username does not exist3298 returns empty3299 when yaml_errors is specified3300 when yaml_errors is true3301 returns matched pipelines3302 when yaml_errors is false3303 returns matched pipelines3304 when yaml_errors is invalid3305 returns all pipelines3306 when order_by and sort are specified3307 when order_by user_id3308 sorts as user_id: :asc3309 when sort is invalid3310 sorts as user_id: :desc3311 when order_by is invalid3312 sorts as id: :asc3313 when both are nil3314 sorts as id: :desc3315 when sha is specified3316 when sha exists3317 returns matched pipelines3318 when sha does not exist3319 returns empty3320 when the project has limited access to piplines3321 when the user has access3322 is expected to return pipelines3323 the user is not allowed to read pipelines3324 returns empty3325New issue3326 when identified as a spam3327 creates an issue after solving reCaptcha3328 when not identified as a spam3329 creates an issue3330Members::ApproveAccessRequestService3331 when an access requester is found3332 when current user is nil3333 and :ldap option is not given3334 behaves like a service raising Gitlab::Access::AccessDeniedError3335 raises Gitlab::Access::AccessDeniedError3336 behaves like a service raising Gitlab::Access::AccessDeniedError3337 raises Gitlab::Access::AccessDeniedError3338 and :skip_authorization option is false3339 behaves like a service raising Gitlab::Access::AccessDeniedError3340 raises Gitlab::Access::AccessDeniedError3341 behaves like a service raising Gitlab::Access::AccessDeniedError3342 raises Gitlab::Access::AccessDeniedError3343 and :skip_authorization option is true3344 behaves like a service approving an access request3345 succeeds3346 returns a <Source>Member3347 with a custom access level3348 returns a ProjectMember with the custom access level3349 behaves like a service approving an access request3350 succeeds3351 returns a <Source>Member3352 with a custom access level3353 returns a ProjectMember with the custom access level3354 when current user cannot approve access request to the project3355 behaves like a service raising Gitlab::Access::AccessDeniedError3356 raises Gitlab::Access::AccessDeniedError3357 behaves like a service raising Gitlab::Access::AccessDeniedError3358 raises Gitlab::Access::AccessDeniedError3359 when current user can approve access request to the project3360 behaves like a service approving an access request3361 succeeds3362 returns a <Source>Member3363 with a custom access level3364 returns a ProjectMember with the custom access level3365 behaves like a service approving an access request3366 succeeds3367 returns a <Source>Member3368 with a custom access level3369 returns a ProjectMember with the custom access level3370Maintainer views tags3371 when project has no tags3372 displays a specific message3373 when project has tags3374 avoids a N+1 query in branches index3375 views the tags list page3376 views a specific tag page3377 links on the tag page3378 has a button to browse files3379 has a button to browse commits3380Avatarable3381 #update3382 when avatar changed3383 validates the file size3384 when avatar was not changed3385 skips validation of file size3386 #avatar_path3387 has_asset_host: true, visibility_level: 0, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3388 returns the expected avatar path3389 returns the expected avatar path with width parameter3390 when avatar is stored remotely3391 returns the expected avatar path3392 has_asset_host: true, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3393 returns the expected avatar path3394 returns the expected avatar path with width parameter3395 when avatar is stored remotely3396 returns the expected avatar path3397 has_asset_host: true, visibility_level: 10, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3398 returns the expected avatar path3399 returns the expected avatar path with width parameter3400 when avatar is stored remotely3401 returns the expected avatar path3402 has_asset_host: true, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3403 returns the expected avatar path3404 returns the expected avatar path with width parameter3405 when avatar is stored remotely3406 returns the expected avatar path3407 has_asset_host: true, visibility_level: 20, only_path: true, avatar_path_prefix: []3408 returns the expected avatar path3409 returns the expected avatar path with width parameter3410 when avatar is stored remotely3411 returns the expected avatar path3412 has_asset_host: true, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab-assets.example.com"]3413 returns the expected avatar path3414 returns the expected avatar path with width parameter3415 when avatar is stored remotely3416 returns the expected avatar path3417 has_asset_host: false, visibility_level: 0, only_path: true, avatar_path_prefix: ["/gitlab"]3418 returns the expected avatar path3419 returns the expected avatar path with width parameter3420 when avatar is stored remotely3421 returns the expected avatar path3422 has_asset_host: false, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3423 returns the expected avatar path3424 returns the expected avatar path with width parameter3425 when avatar is stored remotely3426 returns the expected avatar path3427 has_asset_host: false, visibility_level: 10, only_path: true, avatar_path_prefix: ["/gitlab"]3428 returns the expected avatar path3429 returns the expected avatar path with width parameter3430 when avatar is stored remotely3431 returns the expected avatar path3432 has_asset_host: false, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3433 returns the expected avatar path3434 returns the expected avatar path with width parameter3435 when avatar is stored remotely3436 returns the expected avatar path3437 has_asset_host: false, visibility_level: 20, only_path: true, avatar_path_prefix: ["/gitlab"]3438 returns the expected avatar path3439 returns the expected avatar path with width parameter3440 when avatar is stored remotely3441 returns the expected avatar path3442 has_asset_host: false, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3443 returns the expected avatar path3444 returns the expected avatar path with width parameter3445 when avatar is stored remotely3446 returns the expected avatar path3447MergeRequests::Conflicts::ResolveService3448 #execute3449 with section params3450 when the source and target project are the same3451 creates a commit with the message3452 creates a commit with the correct parents3453 when some files have trailing newlines3454 preserves trailing newlines from our side of the conflicts3455 when the source project is a fork and does not contain the HEAD of the target branch3456 creates a commit with the message3457 creates a commit with the correct parents3458 with content and sections params3459 creates a commit with the message3460 creates a commit with the correct parents3461 sets the content to the content given3462 when a resolution section is missing3463 raises a ResolutionError error3464 when the content of a file is unchanged3465 raises a ResolutionError error3466 when a file is missing3467 raises a ResolutionError error3468Merge request > User scrolls to note on load3469 scrolls note into view3470 renders un-collapsed notes with diff3471 expands collapsed notes (PENDING: Temporarily skipped with xit)3472Projects::CommitController3473 GET show3474 handles binary files3475 with valid id3476 responds with 2003477 with invalid id3478 responds with 4043479 as diff3480 triggers workhorse to serve the request3481 as patch3482 contains a git diff3483 commit that removes a submodule3484 renders it3485 in the context of a merge_request3486 prepare diff notes in the context of the merge request3487 GET branches3488 contains branch and tags information3489 returns :limit_exceeded when number of branches/tags reach a threshhold3490 POST revert3491 when target branch is not provided3492 renders the 404 page3493 when the revert was successful3494 redirects to the commits page3495 when the revert failed3496 redirects to the commit page3497 POST cherry_pick3498 when target branch is not provided3499 renders the 404 page3500 when the cherry-pick was successful3501 redirects to the commits page3502 when the cherry_pick failed3503 redirects to the commit page3504 GET diff_for_path3505 when the commit exists3506 when the user has access to the project3507 when the path exists in the diff3508 enables diff notes3509 only renders the diffs for the path given3510 when the path does not exist in the diff3511 returns a 4043512 when the user does not have access to the project3513 returns a 4043514 when the commit does not exist3515 returns a 4043516 GET pipelines3517 when the commit exists3518 when the commit has pipelines3519 when rendering a HTML format3520 shows pipelines3521 when rendering a JSON format3522 responds with serialized pipelines3523 when the commit does not exist3524 returns a 4043525TodosFinder3526 #execute3527 #execute3528 filtering3529 returns correct todos when filtered by a project3530 returns correct todos when filtered by a group3531 returns correct todos when filtered by a type3532 with subgroups3533 returns todos from subgroups when filtered by a group (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)3534 #sort3535 sorts by priority3536 by date3537 sorts with oldest created first3538 sorts with newest created first3539 #any_for_target?3540 returns true if there are any todos for the given target3541 returns false if there are no todos for the given target3542API::PagesDomains3543 GET /pages/domains3544 when pages is disabled3545 behaves like 404 response3546 returns 4043547 when pages is enabled3548 when authenticated as an admin3549 returns paginated all pages domains3550 when authenticated as a non-member3551 behaves like 403 response3552 returns 4033553 GET /projects/:project_id/pages/domains3554 when pages is disabled3555 behaves like 404 response3556 returns 4043557 when user is a maintainer3558 behaves like get pages domains3559 returns paginated pages domains3560 when user is a developer3561 behaves like 403 response3562 returns 4033563 when user is a reporter3564 behaves like 403 response3565 returns 4033566 when user is a guest3567 behaves like 403 response3568 returns 4033569 when user is not a member3570 behaves like 404 response3571 returns 4043572 GET /projects/:project_id/pages/domains/:domain3573 when domain is vacant3574 behaves like 404 response3575 returns 4043576 when user is a maintainer3577 behaves like get pages domain3578 returns pages domain3579 returns pages domain with project path3580 returns pages domain with a certificate3581 returns pages domain with an expired certificate3582 when user is a developer3583 behaves like 403 response3584 returns 4033585 when user is a reporter3586 behaves like 403 response3587 returns 4033588 when user is a guest3589 behaves like 403 response3590 returns 4033591 when user is not a member3592 behaves like 404 response3593 returns 4043594 POST /projects/:project_id/pages/domains3595 when user is a maintainer3596 behaves like post pages domains3597 creates a new pages domain3598 creates a new secure pages domain3599 fails to create pages domain without key3600 fails to create pages domain with key missmatch3601 when user is a developer3602 behaves like 403 response3603 returns 4033604 when user is a reporter3605 behaves like 403 response3606 returns 4033607 when user is a guest3608 behaves like 403 response3609 returns 4033610 when user is not a member3611 behaves like 404 response3612 returns 4043613 PUT /projects/:project_id/pages/domains/:domain3614 when domain is vacant3615 behaves like 404 response3616 returns 4043617 when user is a maintainer3618 behaves like put pages domain3619 updates pages domain removing certificate3620 updates pages domain adding certificate3621 updates pages domain with expired certificate3622 updates pages domain with expired certificate not updating key3623 fails to update pages domain adding certificate without key3624 fails to update pages domain adding certificate with missing chain3625 fails to update pages domain with key missmatch3626 when user is a developer3627 behaves like 403 response3628 returns 4033629 when user is a reporter3630 behaves like 403 response3631 returns 4033632 when user is a guest3633 behaves like 403 response3634 returns 4033635 when user is not a member3636 behaves like 404 response3637 returns 4043638 DELETE /projects/:project_id/pages/domains/:domain3639 when domain is vacant3640 behaves like 404 response3641 returns 4043642 when user is a maintainer3643 behaves like delete pages domain3644 deletes a pages domain3645 when user is a developer3646 behaves like 403 response3647 returns 4033648 when user is a reporter3649 behaves like 403 response3650 returns 4033651 when user is a guest3652 behaves like 403 response3653 returns 4033654 when user is not a member3655 behaves like 404 response3656 returns 4043657Ci::StopEnvironmentsService3658 #execute3659 when environment with review app exists3660 when user has permission to stop environment3661 when environment is associated with removed branch3662 stops environment3663 when environment is associated with different branch3664 does not stop environment3665 when specified branch does not exist3666 does not stop environment3667 when no branch not specified3668 does not stop environment3669 when environment is not stopped3670 does not stop environment3671 when user does not have permission to stop environment3672 when user has no access to manage deployments3673 does not stop environment3674 when branch for stop action is protected3675 does not stop environment3676 when there is no environment associated with review app3677 when user has permission to stop environments3678 does not stop environment3679 when environment does not exist3680 does not raise error3681Setting WIP status of a merge request3682 returns an error if the user is not allowed to update the merge request3683 marks the merge request as WIP3684 does not do anything if the merge request was already marked `WIP`3685 when passing WIP false as input3686 does not do anything if the merge reqeust was not marked wip3687 unmarks the merge request as `WIP`3688Projects::BoardsController3689 GET index3690 creates a new project board when project does not have one3691 sets boards_endpoint instance variable to a boards path3692 when format is HTML3693 renders template3694 with unauthorized user3695 returns a not found 404 response3696 when format is JSON3697 returns a list of project boards3698 with unauthorized user3699 returns a not found 404 response3700 issues are disabled3701 returns a not found 404 response3702 GET show3703 sets boards_endpoint instance variable to a boards path3704 when format is HTML3705 renders template3706 with unauthorized user3707 returns a not found 404 response3708 when format is JSON3709 returns project board3710 with unauthorized user3711 returns a not found 404 response3712 when board does not belong to project3713 returns a not found 404 response3714ProtectedBranch3715 Associations3716 should belong to project3717 Validation3718 should validate that :project cannot be empty/falsy3719 should validate that :name cannot be empty/falsy3720 #matches?3721 when the protected branch setting is not a wildcard3722 returns true for branch names that are an exact match3723 returns false for branch names that are not an exact match3724 when the protected branch name contains wildcard(s)3725 when there is a single '*'3726 returns true for branch names matching the wildcard3727 returns false for branch names not matching the wildcard3728 when the wildcard contains regex symbols other than a '*'3729 returns true for branch names matching the wildcard3730 returns false for branch names not matching the wildcard3731 when there are '*'s at either end3732 returns true for branch names matching the wildcard3733 returns false for branch names not matching the wildcard3734 when there are arbitrarily placed '*'s3735 returns true for branch names matching the wildcard3736 returns false for branch names not matching the wildcard3737 #matching3738 for direct matches3739 returns a list of protected branches matching the given branch name3740 accepts a list of protected branches to search from, so as to avoid a DB call3741 for wildcard matches3742 returns a list of protected branches matching the given branch name3743 accepts a list of protected branches to search from, so as to avoid a DB call3744 #protected?3745 existing project3746 returns true when the branch matches a protected branch via direct match3747 returns true when the branch matches a protected branch via wildcard match3748 returns false when the branch does not match a protected branch via direct match3749 returns false when the branch does not match a protected branch via wildcard match3750 new project3751 returns false when default_protected_branch is unprotected3752 returns false when default_protected_branch lets developers push3753 returns true when default_branch_protection does not let developers push but let developer merge branches3754 returns true when default_branch_protection is in full protection3755Gitlab::Verify::JobArtifacts3756 behaves like Gitlab::Verify::BatchVerifier subclass3757 batching3758 iterates through objects in batches3759 allows the starting ID to be specified3760 allows the finishing ID to be specified3761 #run_batches3762 passes artifacts with the correct file3763 fails artifacts with a missing file3764 fails artifacts with a mismatched checksum3765 with remote files3766 passes artifacts in object storage that exist3767 fails artifacts in object storage that do not exist3768Sub-group project issue boards3769 creates new label from sidebar3770Projects::WikisController3771 GET #show3772 when page content encoding is invalid3773 limits the retrieved pages for the sidebar3774 when page content encoding is invalid3775 sets flash error3776 POST #preview_markdown3777 renders json in a correct format3778 GET #edit3779 when page content encoding is invalid3780 redirects to show3781 when page content encoding is valid3782 shows the edit page3783 PATCH #update3784 when page content encoding is invalid3785 redirects to show3786 when page content encoding is valid3787 updates the page3788ExtractsPath3789 #assign_ref_vars3790 log tree path has no escape sequences3791 ref contains %203792 is not converted to a space in @id3793 path contains space3794 is not converted to %20 in @path3795 subclass overrides get_id3796 uses ref returned by get_id3797 ref only exists without .atom suffix3798 with a path3799 renders a 4043800 without a path3801 sets the un-suffixed version as @ref3802 sets the request format to Atom3803 ref exists with .atom suffix3804 with a path3805 sets the suffixed version as @ref3806 does not change the request format3807 without a path3808 sets the suffixed version as @ref3809 does not change the request format3810 #extract_ref3811 returns an empty pair when no @project is set3812 without a path3813 extracts a valid branch3814 extracts a valid tag3815 extracts a valid commit ref without a path3816 falls back to a primitive split for an invalid ref3817 extracts the longest matching ref3818 with a path3819 extracts a valid branch3820 extracts a valid tag3821 extracts a valid commit SHA3822 falls back to a primitive split for an invalid ref3823 #extract_ref_without_atom3824 ignores any matching refs suffixed with atom3825 returns the longest matching ref3826 returns nil if there are no matching refs3827 #lfs_blob_ids3828 when gitaly is enabled3829 behaves like #lfs_blob_ids3830 handles annotated tags3831 when gitaly is disabled3832 behaves like #lfs_blob_ids3833 handles annotated tags3834projects/merge_requests/creations/_new_submit.html.haml3835 when there are pipelines for merge request but no pipeline for last commit3836 shows <<Pipelines>> tab and hides <<Builds>> tab3837 when there are hidden commits3838 shows notice about omitted commits3839FinderMethods3840 #find_by!3841 returns the project if the user has access3842 raises not found when the project is not found3843 raises not found the user does not have access3844 #find3845 returns the project if the user has access3846 raises not found when the project is not found3847 raises not found the user does not have access3848 #find_by3849 returns the project if the user has access3850 returns nil when the project is not found3851 returns nil when the user does not have access3852Gitlab::Checks::LfsIntegrity3853 #objects_missing?3854 with LFS not enabled3855 skips integrity check3856 with LFS enabled3857 is true if any LFS blobs are missing3858 is false if LFS objects have already been uploaded3859 deletion3860 skips integrity check3861 for forked project3862 is true parent project is missing LFS objects3863 is false parent project already conatins LFS objects for the fork3864Discussion3865 .build3866 returns a discussion of the right type3867 .build_collection3868 returns an array of discussions of the right type3869PruneOldEventsWorker3870 #perform3871 prunes events older than 2 years3872 leaves fresh events3873 leaves events from 13 months ago3874 leaves events from 2 years ago3875PipelineEntity3876 #as_json3877 when pipeline is empty3878 contains required fields3879 excludes coverage data when disabled3880 contains details3881 contains flags3882 when pipeline is retryable3883 user has ability to retry pipeline3884 contains retry path3885 user does not have ability to retry pipeline3886 does not contain retry path3887 when pipeline is cancelable3888 user has ability to cancel pipeline3889 contains cancel path3890 user does not have ability to cancel pipeline3891 does not contain cancel path3892 when pipeline ref is empty3893 does not generate branch path3894 when pipeline has a failure reason set3895 has a correct failure reason3896MilestonesFinder3897 it returns milestones for projects3898 returns milestones for groups3899 milestones for groups and project3900 returns milestones for groups and projects3901 orders milestones by due date3902 with filters3903 filters by active state3904 filters by closed state3905 filters by title3906 #find_by3907 finds a single milestone3908Ci::BuildTraceChunks::Redis3909 #available?3910 should be truthy3911 #data3912 when data exists3913 returns the data3914 when data does not exist3915 returns nil3916 #set_data3917 when data exists3918 overwrites data3919 when data does not exist3920 sets new data3921 #delete_data3922 when data exists3923 deletes data3924 when data does not exist3925 does nothing3926 #keys3927 returns keys3928 #delete_keys3929 deletes multiple data3930ForkProjectsFinder3931 #execute3932 without a user3933 should eq [#<Project id:1551 namespace1192/c>]3934 with a user3935 should eq [#<Project id:1555 namespace1196/c>, #<Project id:1554 namespace1195/b>]3936 with a member3937 should eq [#<Project id:1559 namespace1200/c>, #<Project id:1558 namespace1199/b>, #<Project id:1556 namespace1197/a>]3938Gitlab::Ci::Trace::ChunkedIO3939 #initialize3940 when a chunk exists3941 should eq 33942 when two chunks exist3943 should eq 63944 when no chunks exists3945 should eq 03946 #seek3947 when moves pos to end of the file3948 should eq 1926883949 when moves pos to middle of the file3950 should eq 963443951 when moves pos around3952 matches the result3953 #eof?3954 when current pos is at end of the file3955 should be truthy3956 when current pos is not at end of the file3957 should be falsey3958 #each_line3959 when buffer size is smaller than file size3960 yields lines3961 when buffer size is larger than file size3962 calls get_chunk only once3963 #read3964 when read the whole size3965 when buffer size is smaller than file size3966 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3967 when buffer size is larger than file size3968 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3969 when read only first 100 bytes3970 when buffer size is smaller than file size3971 reads a trace3972 when buffer size is larger than file size3973 reads a trace3974 when tries to read oversize3975 when buffer size is smaller than file size3976 reads a trace3977 when buffer size is larger than file size3978 reads a trace3979 when tries to read 0 bytes3980 when buffer size is smaller than file size3981 reads a trace3982 when buffer size is larger than file size3983 reads a trace3984 #readline3985 when buffer size is smaller than file size3986 behaves like all line matching3987 should eq "\e[0;m\n"3988 when buffer size is larger than file size3989 behaves like all line matching3990 should eq "\e[0;m\n"3991 when pos is at middle of the file3992 reads from pos3993 #write3994 when data does not exist3995 when buffer size is smaller than file size3996 behaves like writes a trace3997 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3998 when buffer size is larger than file size3999 behaves like writes a trace4000 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4001 when data already exists4002 when buffer size is smaller than file size4003 behaves like appends a trace4004 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4005 when buffer size is larger than file size4006 behaves like appends a trace4007 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4008 #truncate4009 when data does not exist4010 when buffer size is smaller than file size4011 behaves like truncates a trace4012 should eq "\e[0KRunnin"4013 when buffer size is larger than file size4014 behaves like truncates a trace4015 should eq "\e[0KRunnin"4016 #destroy!4017 deletes4018ManualInverseAssociation4019 .manual_inverse_association4020 when the relation exists4021 loads the relation4022 does not perform extra queries after loading4023 passes arguments to the default association method, to allow reloading4024 when the relation does not return a value4025 does not try to set an inverse4026EventsFinder4027 when targeting a user4028 returns events between specified dates filtered on action and type4029 does not return events the current_user does not have access to4030 returns nothing when the current user cannot read cross project4031 when targeting a project4032 returns project events between specified dates filtered on action and type4033 does not return events the current_user does not have access to4034NamespacesHelper4035 #namespaces_options4036 returns groups without being a member for admin4037 returns only allowed namespaces for user4038 avoids duplicate groups when extra_group is used4039 selects existing group4040 selects the new group by default4041 falls back to current user selection4042 returns only groups if groups_only option is true4043 when nested groups are available4044 includes groups nested in groups the user can administer (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)4045 orders the groups correctly (PENDING: around hook at ./spec/spec_helper.rb:226 did not execute the example)4046Group Issues Calendar Feed4047 GET /issues4048 when authenticated4049 with no referer4050 renders calendar feed4051 with GitLab as the referer4052 renders calendar feed as text/plain4053 when authenticated via personal access token4054 renders calendar feed4055 when authenticated via feed token4056 renders calendar feed4057 issue with due date4058 renders issue fields4059Admin::ProjectsController4060 GET /projects4061 retrieves the project for the given visibility level4062 does not retrieve the project4063 does not respond with projects pending deletion4064 does not have N+1 queries4065 GET /projects/:id4066 renders show page4067Gitlab::BackgroundMigration::PopulateMergeRequestsLatestMergeRequestDiffId4068 #perform4069 ignores MRs without diffs4070 ignores MRs that have a diff ID already set4071 migrates multiple MR diffs to the correct values4072RepositoryUpdateRemoteMirrorWorker4073 #perform4074 with status none40752018-10-12T08:02:03.817Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_1 from project 159040762018-10-12T08:02:03.817Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_1 from project 15904077 sets status as finished when update remote mirror service executes successfully40782018-10-12T08:02:04.334Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_2 from project 159140792018-10-12T08:02:04.334Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_2 from project 15914080 sets status as failed when update remote mirror service executes with errors40812018-10-12T08:02:04.688Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_3 from project 159240822018-10-12T08:02:04.688Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_3 from project 15924083 does nothing if last_update_started_at is higher than the time the job was scheduled in4084 with unexpected error40852018-10-12T08:02:05.041Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_4 from project 159340862018-10-12T08:02:05.041Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_4 from project 15934087 marks mirror as failed4088 with another worker already running40892018-10-12T08:02:05.348Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_5 from project 159440902018-10-12T08:02:05.348Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_5 from project 15944091 raises RemoteMirrorUpdateAlreadyInProgressError4092 with status failed40932018-10-12T08:02:05.635Z 79 TID-gpsyzuxbj INFO: Removing remote remote_mirror_6 from project 159540942018-10-12T08:02:05.635Z 79 TID-gpsyzuxbj ERROR: Could not remove remote remote_mirror_6 from project 15954095 sets status as finished if last_update_started_at is higher than the time the job was scheduled in4096Ci::BuildRunnerSession4097 should belong to build4098 should validate that :build cannot be empty/falsy4099 should validate that :url cannot be empty/falsy, producing a custom validation error on failure4100 #terminal_specification4101 returns empty hash if no url4102 when url is present4103 returns ca_pem nil if empty certificate4104 adds Authorization header if authorization is present4105JoinedGroupsFinder4106 #execute4107 without a user4108 only shows public groups from profile owner4109 with a user4110 when the profile visitor is in the private group4111 only shows groups where both users are authorized to see4112 if profile visitor is in one of the private group projects4113 shows group4114 external users4115 if not a member4116 does not show internal groups4117 if authorized4118 shows internal groups if authorized4119RemoveOrphanedLabelLinks4120 add foreign key on label_id4121== 20180906051323 RemoveOrphanedLabelLinks: migrating =========================4122-- transaction_open?()4123 -> 0.0000s4124-- foreign_keys(:label_links)4125 -> 0.0010s4126-- add_foreign_key(:label_links, :labels, {:column=>:label_id, :on_delete=>:cascade})4127 -> 0.0786s4128== 20180906051323 RemoveOrphanedLabelLinks: migrated (0.1173s) ================4129 removes orphaned labels without corresponding label4130== 20180906051323 RemoveOrphanedLabelLinks: migrating =========================4131-- transaction_open?()4132 -> 0.0000s4133-- foreign_keys(:label_links)4134 -> 0.0009s4135-- add_foreign_key(:label_links, :labels, {:column=>:label_id, :on_delete=>:cascade})4136 -> 0.0849s4137== 20180906051323 RemoveOrphanedLabelLinks: migrated (0.0979s) ================4138 does not remove entries with valid label_id4139Projects::RunnersController4140 #update4141 updates the runner and ticks the queue4142 #destroy4143 destroys the runner4144 #resume4145 marks the runner as active and ticks the queue4146 #pause4147 marks the runner as inactive and ticks the queue4148Navigation bar counter4149 reflects dashboard issues count4150 reflects dashboard merge requests count4151TagsFinder4152 #execute4153 sort only4154 sorts by name4155 sorts by recently_updated4156 sorts by last_updated4157 filter only4158 filters tags by name4159 does not find any tags with that name4160 filter and sort4161 filters tags by name and sorts by recently_updated4162 filters tags by name and sorts by last_updated4163NotificationSetting4164 Associations4165 should belong to user4166 should belong to source4167 Validation4168 should validate that :user cannot be empty/falsy4169 should validate that :level cannot be empty/falsy4170 user_id4171 should validate that :user_id is case-sensitively unique within the scope of :source_type and :source_id, producing a custom validation error on failure4172 events4173DEPRECATION WARNING: You attempted to assign a value which is not explicitly `true` or `false` ("nil") to a boolean column. Currently this value casts to `false`. This will change to match Ruby's semantics, and will cast to `true` in Rails 5. If you would like to maintain the current behavior, you should explicitly handle the values you would like cast to `false`. (called from block (4 levels) in <top (required)> at /builds/gtsiolis/gitlab-ce/spec/models/notification_setting_spec.rb:33)4174 parses boolean before saving4175 #for_projects4176 excludes projects pending delete4177 #event_enabled?4178 for an event with a matching column name4179 returns the value of the column4180 when the column has a nil value4181 returns false4182 for an event without a matching column name4183 returns false4184 .email_events4185 returns email events4186 includes EXCLUDED_WATCHER_EVENTS4187 #email_events4188 calls email_events4189API::Templates4190 the Template Entity4191 should eq "Ruby"4192 should include "*.gem"4193 the TemplateList Entity4194 should not be nil4195 should be nil4196 requesting gitignores4197 returns a list of available gitignore templates4198 requesting gitlab-ci-ymls4199 returns a list of available gitlab_ci_ymls4200 requesting gitlab-ci-yml for Ruby4201 adds a disclaimer on the top4202 the License Template Entity4203 returns a license template4204 GET templates/licenses4205 returns a list of available license templates4206 the popular parameter4207 with popular=14208 returns a list of available popular license templates4209 GET templates/licenses/:name4210 with :project and :fullname given4211 for the mit license4212 returns the license text4213 replaces placeholder values4214 for the agpl-3.0 license4215 returns the license text4216 replaces placeholder values4217 for the gpl-3.0 license4218 returns the license text4219 replaces placeholder values4220 for the gpl-2.0 license4221 returns the license text4222 replaces placeholder values4223 for the apache-2.0 license4224 returns the license text4225 replaces placeholder values4226 for an uknown license4227 returns a 4044228 with no :fullname given4229 with an authenticated user4230 replaces the copyright owner placeholder with the name of the current user4231Clusters::UpdateService4232 #execute4233 when correct params4234 when enabled is true4235 enables cluster4236 when enabled is false4237 disables cluster4238 when namespace is specified4239 updates namespace4240 when invalid params4241 returns false4242Projects::EnableDeployKeyService4243 enables the key4244 trying to add an unaccessable key4245 returns nil if the key cannot be added4246 add the same key twice4247 returns existing key4248notify/pipeline_failed_email.html.haml4249 pipeline with user4250 renders the email correctly4251 pipeline without user4252 renders the email correctly4253AddPipelineBuildForeignKey4254== 20180420010016 AddPipelineBuildForeignKey: migrating =======================4255-- execute("DELETE FROM ci_builds WHERE project_id IS NULL OR commit_id IS NULL\n")4256 -> 0.0019s4257-- execute("DELETE FROM ci_builds WHERE NOT EXISTS\n (SELECT true FROM ci_pipelines WHERE ci_pipelines.id = ci_builds.commit_id)\n AND stage_id IS NULL\n")4258 -> 0.0013s4259-- transaction_open?()4260 -> 0.0000s4261-- foreign_keys(:ci_builds)4262 -> 0.0014s4263-- add_foreign_key(:ci_builds, :ci_pipelines, {:column=>:commit_id, :on_delete=>:cascade})4264 -> 0.2168s4265== 20180420010016 AddPipelineBuildForeignKey: migrated (0.2221s) ==============4266 adds foreign key after removing orphans4267Banzai::ReferenceParser::ProjectParser4268 #referenced_by4269 when the link has a data-project attribute4270 using an existing project ID4271 returns an Array of projects4272 using a non-existing project ID4273 returns an empty Array4274 using a private project ID4275 returns an empty Array when unauthorized4276 returns an Array when authorized4277ExpirePipelineCacheWorker4278 #perform4279 invalidates Etag caching for project pipelines path4280 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch4281 doesn't do anything if the pipeline not exist4282 updates the cached status for a project4283BranchFilterValidator4284 #validates_each4285 allows valid branch names4286 disallows bad branch names4287 allows wildcards4288 gets rid of whitespace4289 limits length to 4000 chars4290Download buttons in branches page4291 when checking branches4292 with artifacts4293 shows download artifacts button4294User page4295 shows the status if there was one4296 with public profile4297 shows all the tabs4298 does not show private profile message4299 with private profile4300 shows no tab4301 shows private profile message4302 shows own tabs4303 signup disabled4304 shows the sign in link4305 signup enabled4306 shows the sign in and register link4307HealthController4308 #readiness4309 accessed from whitelisted ip4310 behaves like endpoint responding with readiness data4311 responds with readiness checks data4312 accessed from not whitelisted ip4313 responds with resource not found4314 accessed with valid token4315 token passed in request header4316 behaves like endpoint responding with readiness data4317 responds with readiness checks data4318 token passed as URL param4319 behaves like endpoint responding with readiness data4320 responds with readiness checks data4321 #liveness4322 accessed from whitelisted ip4323 behaves like endpoint responding with liveness data4324 responds with liveness checks data4325 accessed from not whitelisted ip4326 responds with resource not found4327 accessed with valid token4328 token passed in request header4329 behaves like endpoint responding with liveness data4330 responds with liveness checks data4331 token passed as URL param4332 behaves like endpoint responding with liveness data4333 responds with liveness checks data4334UsersWithPendingTodosFinder4335 #execute4336 returns the users for all pending todos of a target4337WikiPages::CreateService4338 #execute4339 creates wiki page with valid attributes4340 executes webhooks4341Project Activity RSS4342 when signed in4343 behaves like it has an RSS button with current_user's feed token4344 shows the RSS button with current_user's feed token4345 when signed out4346 behaves like it has an RSS button without a feed token4347 shows the RSS button without a feed token4348ScheduleToArchiveLegacyTraces4349== 20180529152628 ScheduleToArchiveLegacyTraces: migrating ====================4350== 20180529152628 ScheduleToArchiveLegacyTraces: migrated (0.1929s) ===========4351 correctly archive legacy traces4352Gitlab::ImportExport::AvatarRestorer4353 does not break if there is just a directory4354 with avatar4355 restores a project avatar4356 saves the avatar into the project4357Gitlab::ImportExport::UploadsRestorer4358 bundle a project Git repo4359 legacy storage4360 saves the uploads successfully4361 copies the uploads to the project path4362 hashed storage4363 saves the uploads successfully4364 copies the uploads to the project path4365Users::KeysCountService4366 #count4367 returns the number of SSH keys as an Integer4368 caches the number of keys in Redis4369 #refresh_cache4370 refreshes the Redis cache4371 #delete_cache4372 removes the cache4373 #uncached_count4374 returns the number of SSH keys4375 does not cache the number of keys4376 #cache_key4377 returns the cache key4378Projects > Wiki > User views wiki in project page4379 when repository is disabled for project4380 when wiki homepage contains a link4381 displays the correct URL for the link4382Gitlab::BitbucketImport::ProjectCreator4383 creates project4384Gitlab::GitalyClient::HealthCheckService4385 #check4386 successfully sends a health check request4387 receives an unsuccessful health check request4388 gracefully handles gRPC error4389Edit group label4390 update label with new title4391projects/tree/_blob_item4392 renders blob item4393 LFS blob4394 renders LFS badge4395Import::FogbugzController4396 GET status4397 assigns variables4398 does not show already added project4399Projects > Members > Anonymous user sees members4400 anonymous user visits the project's members page and sees the list of members4401Gitlab::Cleanup::RemoteUploads4402 when object_storage is enabled4403 when dry_run is set to false4404 moves files that are not in uploads table4405 when dry_run is set to true4406 does not move filese4407 when object_storage is not enabled4408 does not connect to any storage4409Gitlab::Ci::Status::Pipeline::Blocked4410 #text4411 overrides status text4412 #label4413 overrides status label4414 .matches?4415 when pipeline is blocked4416 is a correct match4417 when pipeline is not blocked4418 does not match4419AssemblaService4420 Associations4421 should belong to project4422 should have one service_hook4423 Execute4424 calls Assembla API4425Gitlab::CycleAnalytics::ReviewEventFetcher4426 behaves like default query config4427 has the stage attribute4428 has the projection attributes4429Import::GitlabProjectsController4430 POST create4431 with an invalid path4432 redirects with an error4433 redirects with an error when a relative path is used4434 with a valid path4435 redirects to the new project path4436Gitlab::Import::DatabaseHelpers4437 .insert_and_return_id4438 on PostgreSQL4439 returns the ID returned by the query4440 on MySQL4441 uses a separate query to retrieve the ID4442Gitlab::BackgroundMigration::MovePersonalSnippetFiles4443 #perform4444 moves the file on the disk4445 updates the markdown of the snippet4446 updates the markdown of notes4447Gitlab::GitlabImport::ProjectCreator4448 creates project4449TrackUntrackedUploads4450== 20171103140253 TrackUntrackedUploads: migrating ============================4451== 20171103140253 TrackUntrackedUploads: migrated (0.0008s) ===================4452 correctly schedules the follow-up background migration4453AfterBranchDeleteService4454 #execute4455 stops environments attached to branch4456Gitlab::Ci::Build::Policy::Refs4457 #satisfied_by?4458 when matching ref4459 is satisfied when pipeline branch matches4460 is not satisfied when pipeline branch does not match4461 when maching tags4462 when pipeline runs for a tag4463 is satisfied when tags matcher is specified4464 when pipeline is not created for a tag4465 is not satisfied when tag match is specified4466 when also matching a path4467 is satisfied when provided patch matches specified one4468 is not satisfied when path differs4469 when maching a source4470 is satisifed when provided source keyword matches4471 is not satisfied when provided source keyword does not match4472 when matching a ref by a regular expression4473 is satisfied when regexp matches pipeline ref4474 is not satisfied when regexp does not match pipeline ref4475UserCallout4476 relationships4477 should belong to user4478 validations4479 should validate that :user cannot be empty/falsy4480 should validate that :feature_name cannot be empty/falsy4481 should validate that :feature_name is unique within the scope of :user_id4482BlobEntity4483 as json4484 exposes needed attributes4485PipelineNotificationWorker4486 #execute4487 calls NotificationService#pipeline_finished when the pipeline exists4488 does nothing when the pipeline does not exist4489api routing4490 when graphql is disabled4491 does not route to the GraphqlController4492 does not expose graphiql4493 when graphql is disabled4494 routes to the GraphqlController4495 exposes graphiql4496ServiceHook4497 associations4498 should belong to service4499 validations4500 should validate that :service cannot be empty/falsy4501 execute4502 #execute4503Admin::HealthCheckController4504 GET show4505 loads the health information4506Gitlab::Auth::LDAP::Authentication4507 login4508 finds the user if authentication is successful4509 is false if the user does not exist4510 is false if authentication fails4511 fails if ldap is disabled4512 fails if no login is supplied4513 fails if no password is supplied4514RuboCop::CodeReuseHelpers4515 #send_to_constant?4516 returns true when sending to a constant4517 returns false when sending to something other than a constant4518 #send_receiver_name_ends_with?4519 returns true when the receiver ends with a suffix4520 returns false when the receiver is the same as a suffix4521 #file_path_for_node4522 returns the file path of a node4523 #name_of_constant4524 returns the name of a constant4525 #in_finder?4526 returns true for a node in the finders directory4527 returns false for a node outside the finders directory4528 #in_model?4529 returns true for a node in the models directory4530 returns false for a node outside the models directory4531 #in_service_class?4532 returns true for a node in the services directory4533 returns false for a node outside the services directory4534 #in_presenter?4535 returns true for a node in the presenters directory4536 returns false for a node outside the presenters directory4537 #in_serializer?4538 returns true for a node in the serializers directory4539 returns false for a node outside the serializers directory4540 #in_worker?4541 returns true for a node in the workers directory4542 returns false for a node outside the workers directory4543 #in_api?4544 returns true for a node in the API directory4545 returns false for a node outside the API directory4546 #in_directory?4547 returns true for a directory in the CE app/ directory4548 returns true for a directory in the EE app/ directory4549 returns false for a directory in the lib/ directory4550 #name_of_receiver4551 returns the name of a send receiver4552 #each_class_method4553 yields every class method to the supplied block4554 #each_send_node4555 yields every send node to the supplied block4556 #disallow_send_to4557 disallows sending a message to a constant4558Gitlab::EncodingHelper4559 #encode!4560 nil4561 empty string4562 invalid utf-8 encoded string4563 frozen non-ascii string4564 leaves ascii only string as is4565 leaves valid utf8 string as is4566 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.4567 string with detected encoding that is not supported in Ruby4568 leaves binary string as is4569 with corrupted diff4570 does not corrupt data but remove invalid characters4571 #encode_utf84572 nil4573 empty string4574 invalid utf-8 encoded string4575 encodes valid utf8 encoded string to utf84576 encodes valid ASCII-8BIT encoded string to utf84577 encodes valid ISO-8859-1 encoded string to utf84578 Equifax branch name4579WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. NoMethodError, NameError and ArgumentError), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gtsiolis/gitlab-ce/spec/lib/gitlab/encoding_helper_spec.rb:127:in `block (3 levels) in <top (required)>'.4580 returns empty string on conversion errors4581 with strings that can be forcefully encoded into utf84582 doesn't use CharlockHolmes if the encoding can be forced into utf_84583 #clean4584 leaves ascii only string as is4585 leaves valid utf8 string as is4586 removes invalid bytes from ASCII-8bit encoded multibyte string.4587 handles UTF-16BE encoded strings4588 encode_binary4589 encodes nil to ""4590 encodes "" to ""4591 encodes " " to " "4592 encodes "a1" to "a1"4593 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"4594 #binary_stringio4595 does not mutate the original string encoding4596IconsHelper4597 icon4598 returns aria-hidden by default4599 does not return aria-hidden if aria-label is set4600 sprite_icon_path4601 returns relative path4602 when an asset_host is set in the config it will return an absolute local URL4603 returns an absolute URL on that asset host4604 sprite_icon4605 returns svg icon html4606 returns svg icon html + size classes4607 returns svg icon html + size classes + additional class4608 non existing icon4609 should raise in development mode4610 should raise in test mode4611 should not raise in production mode4612 audit icon4613 returns right icon name for standard auth4614 returns right icon name for two-factor auth4615 returns right icon name for google_oauth2 auth4616 file_type_icon_class4617 returns folder class4618 returns share class4619 returns file-pdf-o class with .pdf4620 returns file-image-o class with .jpg4621 returns file-image-o class with .JPG4622 returns file-image-o class with .png4623 returns file-archive-o class with .tar4624 returns file-archive-o class with .TAR4625 returns file-archive-o class with .tar.gz4626 returns file-audio-o class with .mp34627 returns file-audio-o class with .MP34628 returns file-audio-o class with .wav4629 returns file-video-o class with .avi4630 returns file-video-o class with .AVI4631 returns file-video-o class with .mp44632 returns file-word-o class with .doc4633 returns file-word-o class with .DOC4634 returns file-word-o class with .docx4635 returns file-excel-o class with .xls4636 returns file-excel-o class with .XLS4637 returns file-excel-o class with .xlsx4638 returns file-excel-o class with .ppt4639 returns file-excel-o class with .PPT4640 returns file-excel-o class with .pptx4641 returns file-text-o class with .unknow4642 returns file-text-o class with no extension4643 #external_snippet_icon4644 returns external snippet icon4645Gitlab::Redis::Queues4646 .params4647 withstands mutation4648 when url contains unix socket reference4649 with old format4650 returns path key instead4651 with new format4652 returns path key instead4653 when url is host based4654 with old format4655 returns hash with host, port, db, and password4656 with new format4657 returns hash with host, port, db, and password4658 .url4659 withstands mutation4660 when yml file with env variable4661 reads redis url from env variable4662 ._raw_config4663 should be frozen4664 returns false when the file does not exist4665 returns false when the filename can't be determined4666 .with4667 when running not on sidekiq workers4668 instantiates a connection pool with size 54669 when running on sidekiq workers4670 instantiates a connection pool with a size based on the concurrency of the worker4671 #sentinels4672 when sentinels are defined4673 returns an array of hashes with host and port keys4674 when sentinels are not defined4675 returns nil4676 #sentinels?4677 when sentinels are defined4678 returns true4679 when sentinels are not defined4680 returns false4681 #raw_config_hash4682 returns default redis url when no config file is present4683 returns old-style single url config in a hash4684 #fetch_config4685 returns false when no config file is present4686 returns false when config file is present but has invalid YAML4687Gitlab::Ci::Build::Artifacts::Metadata::Entry4688 /file/with/absolute_path4689 should be file4690 should have parent4691 #basename4692 should eq "absolute_path"4693 path/dir_1/4694 should have parent4695 should be directory4696 #basename4697 should eq "dir_1/"4698 #name4699 should eq "dir_1"4700 #parent4701 should eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/4702 #children4703 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4704 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1, Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b, and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/4705 #files4706 should all be file4707 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4708 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1 and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b4709 #directories4710 without options4711 should all be directory4712 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4713 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/4714 with option parent: true4715 should all be directory4716 should all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry4717 should contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/4718 #nodes4719 should eq 24720 #exists?4721 should equal true4722 #empty?4723 should equal false4724 #total_size4725 should eq 304726 empty path4727 should not have parent4728 #children4729 should eq 34730 path/dir_1/subdir/subfile4731 #nodes4732 should eq 44733 #blob4734 returns a blob representing the entry data4735 non-existent/4736 #empty?4737 should equal true4738 #exists?4739 should equal false4740 another_directory/4741 #empty?4742 should equal true4743 #metadata4744 should eq "/path/file1"4745Gitlab::SQL::Pattern4746 .to_pattern4747 when a query is shorter than 3 chars4748 returns exact matching pattern4749 when a query with a escape character is shorter than 3 chars4750 returns sanitized exact matching pattern4751 when a query is equal to 3 chars4752 returns partial matching pattern4753 when a query with a escape character is equal to 3 chars4754 returns partial matching pattern4755 when a query is longer than 3 chars4756 returns partial matching pattern4757 when a query with a escape character is longer than 3 chars4758 returns sanitized partial matching pattern4759 .select_fuzzy_words4760 with a word equal to 3 chars4761 returns array cotaining a word4762 with a word shorter than 3 chars4763 returns empty array4764 with two words both equal to 3 chars4765 returns array containing two words4766 with two words divided by two spaces both equal to 3 chars4767 returns array containing two words4768 with two words equal to 3 chars and shorter than 3 chars4769 returns array containing a word4770 with a multi-word surrounded by double quote4771 returns array containing a multi-word4772 with a multi-word surrounded by double quote and two words4773 returns array containing a multi-word and tow words4774 with a multi-word surrounded by double quote missing a spece before the first double quote4775 returns array containing two words with double quote4776 with a multi-word surrounded by double quote missing a spece after the second double quote4777 returns array containing two words with double quote4778 with two multi-word surrounded by double quote and two words4779 returns array containing two multi-words and tow words4780 .fuzzy_arel_match4781 with a word equal to 3 chars4782 returns a single ILIKE condition4783 with a word shorter than 3 chars4784 returns a single equality condition4785 uses LOWER instead of ILIKE when LOWER is enabled4786 with two words both equal to 3 chars4787 returns a joining LIKE condition using a AND4788 with two words both shorter than 3 chars4789 returns a single ILIKE condition4790 with two words, one shorter 3 chars4791 returns a single ILIKE condition using the longer word4792 with a multi-word surrounded by double quote and two words4793 returns a joining LIKE condition using a AND4794Gitlab::SQL::CTE4795 #to_arel4796 generates an Arel relation for the CTE body (PENDING: around hook at ./spec/spec_helper.rb:230 did not execute the example)4797 #alias_to4798 returns an alias for the CTE (PENDING: around hook at ./spec/spec_helper.rb:230 did not execute the example)4799 #apply_to4800 applies a CTE to an ActiveRecord::Relation (PENDING: around hook at ./spec/spec_helper.rb:230 did not execute the example)4801Gitlab::GithubImport::NotifyUponDeath4802 .sidekiq_retries_exhausted4803 notifies the JobWaiter when 3 arguments are given and the last is a String4804 does not notify the JobWaiter when only 2 arguments are given4805 does not notify the JobWaiter when only 1 argument is given4806 does not notify the JobWaiter when the last argument is not a String4807Gitlab::Middleware::Multipart4808 rejects headers signed with the wrong secret4809 rejects headers signed with the wrong issuer4810 allows files in uploads/tmp directory4811 allows symlinks for uploads dir4812 with remote file4813 behaves like multipart upload files4814 opens top-level files4815 opens files one level deep4816 opens files two levels deep4817 with local file4818 behaves like multipart upload files4819 opens top-level files4820 opens files one level deep4821 opens files two levels deep4822DiffViewer::ServerSide4823 #prepare!4824 loads all diff file data4825 #render_error4826 when the diff file is stored externally4827 return :server_side_but_stored_externally4828Bitbucket::Representation::Issue4829 #iid4830 should eq 14831 #kind4832 should eq "bug"4833 #milestone4834 should eq "1.0"4835 should be nil4836 #author4837 should eq "Ben"4838 should be nil4839 #description4840 should eq "Text"4841 should be nil4842 #state4843 should eq "closed"4844 should eq "closed"4845 should eq "closed"4846 should eq "closed"4847 should eq "closed"4848 should eq "opened"4849 #title4850 should eq "Issue"4851 #created_at4852 should eq Fri, 12 Oct 20184853 #updated_at4854 should eq Fri, 12 Oct 20184855UploadedFile4856 .from_params4857 when valid file is specified4858 only local path is specified4859 succeeds4860 generates filename from path4861 all parameters are specified4862 succeeds4863 generates filename from path4864 when no params are specified4865 does not return an object4866 when only remote id is specified4867 raises an error4868 when verifying allowed paths4869 when file is stored in system temporary folder4870 succeeds4871 when file is stored in user provided upload path4872 succeeds4873 when file is stored outside of user provided upload path4874 raises an error4875 #sanitize_filename4876 should eq "spaced_name"4877 should eq "_____"4878 should eq "_.."4879 should eq "unnamed"4880Gitlab::SidekiqStatus4881 .set4882 stores the job ID4883 .unset4884 removes the job ID4885 .all_completed?4886 returns true if all jobs have been completed4887 returns false if a job has not yet been completed4888 .running?4889 returns true if job is running4890 returns false if job is not found4891 .num_running4892 returns 0 if all jobs have been completed4893 returns 2 if two jobs are still running4894 .num_completed4895 returns 1 if all jobs have been completed4896 returns 1 if a job has not yet been completed4897 .key_for4898 returns the key for a job ID4899 completed4900 returns the completed job4901 returns only the jobs completed4902Gitlab::GithubImport::Importer::NotesImporter4903 #parallel?4904 returns true when running in parallel mode4905 returns false when running in sequential mode4906 #execute4907 when running in parallel mode4908 imports notes in parallel4909 when running in sequential mode4910 imports notes in sequence4911 #sequential_import4912 imports each note in sequence4913 #parallel_import4914 imports each note in parallel4915 #id_for_already_imported_cache4916 returns the ID of the given note4917 #collection_options4918 returns an empty Hash4919Gitlab::Git4920 committer_hash4921 returns a hash containing the given email and name4922 when email is nil4923 returns nil4924 when name is nil4925 returns nil4926 .ref_name4927 ensure ref is a valid UTF-8 string4928 .shas_eql?4929 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", result: true4930 should eq true4931 is commutative4932 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b2", result: true4933 should eq true4934 is commutative4935 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "d42df6f6db32cf340875f2f59b848ddba2b7e075", result: false4936 should eq false4937 is commutative4938 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: "570e7b", result: false4939 should eq false4940 is commutative4941 sha1: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", sha2: nil, result: false4942 should eq false4943 is commutative4944Gitlab::BackgroundMigration4945 .queue4946 returns background migration worker queue4947 .steal4948 when there are enqueued jobs present4949 when queue contains unprocessed jobs4950 steals jobs from a queue4951 does not steal job that has already been taken4952 does not steal jobs for a different migration4953 when one of the jobs raises an error4954 enqueues the migration again and re-raises the error4955 when there are scheduled jobs present4956Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gtsiolis/gitlab-ce/spec/support/sidekiq.rb:33:in `block (3 levels) in <top (required)>')4957 steals all jobs from the scheduled sets4958 when there are enqueued and scheduled jobs present4959Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gtsiolis/gitlab-ce/spec/support/sidekiq.rb:33:in `block (3 levels) in <top (required)>')4960 steals from the scheduled sets queue first4961 .perform4962 performs a background migration4963Gitlab::RouteMap4964 #initialize4965 when the data is not YAML4966 raises an error4967 when the data is not a YAML array4968 raises an error4969 when an entry is not a hash4970 raises an error4971 when an entry does not have a source key4972 raises an error4973 when an entry does not have a public key4974 raises an error4975 when an entry source is not a valid regex4976 raises an error4977 when all is good4978 returns a route map4979 #public_path_for_source_path4980 returns the public path for a provided source path4981 malicious regexp4982 takes under a second4983Gitlab::Ci::Status::SuccessWarning4984 #test4985 should eq "passed"4986 #label4987 should eq "passed with warnings"4988 #icon4989 should eq "status_warning"4990 #group4991 should eq "success_with_warnings"4992 .matches?4993 when matchable subject is successful4994 when matchable subject has warnings4995 is a correct match4996 when matchable subject does not have warnings4997 does not match4998 when matchable subject is not successful4999 when matchable subject has warnings5000 does not match5001 when matchable subject does not have warnings5002 does not match5003Gitlab::EtagCaching::Router5004 matches issue notes endpoint5005 matches issue title endpoint5006 matches project pipelines endpoint5007 matches commit pipelines endpoint5008 matches new merge request pipelines endpoint5009 matches merge request pipelines endpoint5010 matches build endpoint5011 does not match blob with confusing name5012 matches the environments path5013 matches pipeline#show endpoint5014Gitlab::CycleAnalytics::PlanStage5015 behaves like base stage5016 has the median data value5017 has the median data stage5018 has the median data description5019 has the title5020 has the events5021ExpandVariables5022 #expand5023 key resolves to key5024 should eq "key"5025 key$variable resolves to key5026 should eq "key"5027 key$variable resolves to keyvalue5028 should eq "keyvalue"5029 key${variable} resolves to keyvalue5030 should eq "keyvalue"5031 key$variable$variable2 resolves to keyvalueresult5032 should eq "keyvalueresult"5033 key${variable}${variable2} resolves to keyvalueresult5034 should eq "keyvalueresult"5035 key$variable2$variable resolves to keyresultvalue5036 should eq "keyresultvalue"5037 key${variable2}${variable} resolves to keyresultvalue5038 should eq "keyresultvalue"5039 review/$CI_COMMIT_REF_NAME resolves to review/feature/add-review-apps5040 should eq "review/feature/add-review-apps"5041OmniAuth::Strategies::Jwt5042 .decoded5043 decodes the user information5044 required claims is missing5045 raises error5046 when valid_within is specified but iat attribute is missing in response5047 raises error5048 when timestamp claim is too skewed from present5049 raises error5050Gitlab::Ci::Status::Running5051 #text5052 should eq "running"5053 #label5054 should eq "running"5055 #icon5056 should eq "status_running"5057 #favicon5058 should eq "favicon_status_running"5059 #group5060 should eq "running"5061Gitlab::SidekiqVersioning5062 .install!5063Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gtsiolis/gitlab-ce/spec/support/sidekiq.rb:33:in `block (3 levels) in <top (required)>')5064 prepends SidekiqVersioning::Manager into Sidekiq::Manager5065Passing 'flushdb' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /builds/gtsiolis/gitlab-ce/spec/support/sidekiq.rb:33:in `block (3 levels) in <top (required)>')5066 registers all versionless and versioned queues with Redis5067Gitlab::Themes5068 .body_classes5069 returns a space-separated list of class names5070 .by_id5071 returns a Theme by its ID5072 .default5073 returns the default application theme5074 prevents an infinite loop when configuration default is invalid5075 .each5076 passes the block to the THEMES Array5077Gitlab::GithubImport::ImportDiffNoteWorker5078 #import5079 imports a diff note5080Gitlab::Ci::Status::Skipped5081 #text5082 should eq "skipped"5083 #label5084 should eq "skipped"5085 #icon5086 should eq "status_skipped"5087 #favicon5088 should eq "favicon_status_skipped"5089 #group5090 should eq "skipped"5091Gitlab::Diff::InlineDiff5092 .for_lines5093 finds all inline diffs5094 can handle unchanged empty lines5095 #inline_diffs5096 finds the inline diff5097Gitlab::FogbugzImport::Client5098 retrieves user_map with one user5099 retrieves user_map with two users5100TestCaseEntity5101 #as_json5102 when test case is success5103 contains correct test case details5104 when test case is failed5105 contains correct test case details5106BitbucketServer::Paginator5107 #items5108 returns items and raises StopIteration in the end5109 calls the connection with different offsets5110Gitlab::Database::ShaAttribute5111 #deserialize5112 converts the binary SHA to a String5113 #serialize5114 converts a SHA String to binary data5115Gitlab::Ci::Status::Group::Factory5116 inherits from the core factory5117 exposes group helpers5118Gitlab::GrapeLogging::Loggers::QueueDurationLogger5119 .parameters5120 when no proxy time is available5121 returns an empty hash5122 when a proxy time is available5123 returns the correct duration in ms5124TodosDestroyer::EntityLeaveWorker5125 calls the Todos::Destroy::EntityLeaveService with the params it was given5126Knapsack report was generated. Preview:5127{5128 "spec/models/merge_request_spec.rb": 125.08743476867676,5129 "spec/requests/api/groups_spec.rb": 58.53649282455444,5130 "spec/requests/lfs_http_spec.rb": 51.94451594352722,5131 "spec/models/cycle_analytics/staging_spec.rb": 43.645752906799316,5132 "spec/features/issues/filtered_search/dropdown_author_spec.rb": 37.25865626335144,5133 "spec/features/project_variables_spec.rb": 29.411979913711548,5134 "spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb": 25.69823980331421,5135 "spec/services/todos/destroy/entity_leave_service_spec.rb": 17.998223066329956,5136 "spec/features/merge_request/user_views_diffs_spec.rb": 31.977659463882446,5137 "spec/requests/api/deployments_spec.rb": 19.32940649986267,5138 "spec/services/ci/retry_pipeline_service_spec.rb": 13.33963680267334,5139 "spec/features/projects/settings/repository_settings_spec.rb": 17.865336656570435,5140 "spec/services/boards/lists/move_service_spec.rb": 14.564289569854736,5141 "spec/features/explore/groups_spec.rb": 11.241437196731567,5142 "spec/features/markdown/gitlab_flavored_markdown_spec.rb": 12.625219583511353,5143 "spec/features/projects/commit/diff_notes_spec.rb": 10.256372213363647,5144 "spec/lib/gitlab/bare_repository_import/importer_spec.rb": 9.570410251617432,5145 "spec/workers/invalid_gpg_signature_update_worker_spec.rb": 10.375373840332031,5146 "spec/controllers/uploads_controller_spec.rb": 7.683328628540039,5147 "spec/finders/pipelines_finder_spec.rb": 7.99983549118042,5148 "spec/features/issues/spam_issues_spec.rb": 8.18019986152649,5149 "spec/services/members/approve_access_request_service_spec.rb": 6.0461952686309814,5150 "spec/features/tags/master_views_tags_spec.rb": 6.271525621414185,5151 "spec/models/concerns/avatarable_spec.rb": 5.920868635177612,5152 "spec/services/merge_requests/conflicts/resolve_service_spec.rb": 5.766591548919678,5153 "spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb": 6.671201705932617,5154 "spec/controllers/projects/commit_controller_spec.rb": 5.342195749282837,5155 "spec/finders/todos_finder_spec.rb": 3.668626308441162,5156 "spec/requests/api/pages_domains_spec.rb": 5.091520309448242,5157 "spec/services/ci/stop_environments_service_spec.rb": 4.245279550552368,5158 "spec/requests/api/graphql/mutations/merge_requests/set_wip_spec.rb": 4.530282258987427,5159 "spec/controllers/projects/boards_controller_spec.rb": 3.670971393585205,5160 "spec/models/protected_branch_spec.rb": 4.327617406845093,5161 "spec/lib/gitlab/verify/job_artifacts_spec.rb": 3.5555198192596436,5162 "spec/features/boards/sub_group_project_spec.rb": 3.8336448669433594,5163 "spec/controllers/projects/wikis_controller_spec.rb": 4.496263742446899,5164 "spec/lib/extracts_path_spec.rb": 3.270188331604004,5165 "spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb": 3.443218469619751,5166 "spec/finders/concerns/finder_methods_spec.rb": 2.5086944103240967,5167 "spec/lib/gitlab/checks/lfs_integrity_spec.rb": 2.9541938304901123,5168 "spec/models/discussion_spec.rb": 2.5459628105163574,5169 "spec/workers/prune_old_events_worker_spec.rb": 2.572460889816284,5170 "spec/serializers/pipeline_entity_spec.rb": 2.534348964691162,5171 "spec/finders/milestones_finder_spec.rb": 2.341573476791382,5172 "spec/models/ci/build_trace_chunks/redis_spec.rb": 1.7192256450653076,5173 "spec/finders/fork_projects_finder_spec.rb": 2.1691009998321533,5174 "spec/lib/gitlab/ci/trace/chunked_io_spec.rb": 1.180544137954712,5175 "spec/models/concerns/manual_inverse_association_spec.rb": 2.7036590576171875,5176 "spec/finders/events_finder_spec.rb": 2.2953646183013916,5177 "spec/helpers/namespaces_helper_spec.rb": 1.418630599975586,5178 "spec/features/ics/group_issues_spec.rb": 1.7983384132385254,5179 "spec/controllers/admin/projects_controller_spec.rb": 2.0086793899536133,5180 "spec/lib/gitlab/background_migration/populate_merge_requests_latest_merge_request_diff_id_spec.rb": 2.672210693359375,5181 "spec/workers/repository_update_remote_mirror_worker_spec.rb": 2.116668224334717,5182 "spec/models/ci/build_runner_session_spec.rb": 1.4558000564575195,5183 "spec/finders/joined_groups_finder_spec.rb": 1.64393949508667,5184 "spec/migrations/remove_orphaned_label_links_spec.rb": 2.036273241043091,5185 "spec/controllers/projects/runners_controller_spec.rb": 1.3480615615844727,5186 "spec/features/dashboard/issuables_counter_spec.rb": 1.1688034534454346,5187 "spec/finders/tags_finder_spec.rb": 1.4169704914093018,5188 "spec/models/notification_setting_spec.rb": 0.9162843227386475,5189 "spec/requests/api/templates_spec.rb": 1.02290678024292,5190 "spec/services/clusters/update_service_spec.rb": 1.1929280757904053,5191 "spec/services/projects/enable_deploy_key_service_spec.rb": 1.0408084392547607,5192 "spec/views/notify/pipeline_failed_email.html.haml_spec.rb": 1.0527522563934326,5193 "spec/migrations/add_pipeline_build_foreign_key_spec.rb": 0.8012468814849854,5194 "spec/lib/banzai/reference_parser/project_parser_spec.rb": 1.1176135540008545,5195 "spec/workers/expire_pipeline_cache_worker_spec.rb": 0.5681016445159912,5196 "spec/validators/branch_filter_validator_spec.rb": 0.7009375095367432,5197 "spec/features/projects/branches/download_buttons_spec.rb": 0.7646012306213379,5198 "spec/features/users/show_spec.rb": 0.8202240467071533,5199 "spec/controllers/health_controller_spec.rb": 0.4844181537628174,5200 "spec/finders/users_with_pending_todos_finder_spec.rb": 0.6231281757354736,5201 "spec/services/wiki_pages/create_service_spec.rb": 0.5687606334686279,5202 "spec/features/projects/activity/rss_spec.rb": 0.5936126708984375,5203 "spec/migrations/schedule_to_archive_legacy_traces_spec.rb": 0.802922248840332,5204 "spec/lib/gitlab/import_export/avatar_restorer_spec.rb": 0.7240123748779297,5205 "spec/lib/gitlab/import_export/uploads_restorer_spec.rb": 0.6168231964111328,5206 "spec/services/users/keys_count_service_spec.rb": 0.5473690032958984,5207 "spec/features/projects/wiki/user_views_wiki_in_project_page_spec.rb": 0.5984010696411133,5208 "spec/lib/gitlab/bitbucket_import/project_creator_spec.rb": 0.26386070251464844,5209 "spec/lib/gitlab/gitaly_client/health_check_service_spec.rb": 0.37914156913757324,5210 "spec/features/groups/labels/edit_spec.rb": 0.5339059829711914,5211 "spec/views/projects/tree/_blob_item.html.haml_spec.rb": 0.4750683307647705,5212 "spec/controllers/import/fogbugz_controller_spec.rb": 0.6211338043212891,5213 "spec/features/projects/members/anonymous_user_sees_members_spec.rb": 0.7255511283874512,5214 "spec/lib/gitlab/cleanup/remote_uploads_spec.rb": 0.29059648513793945,5215 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 0.3182656764984131,5216 "spec/models/project_services/assembla_service_spec.rb": 0.35384559631347656,5217 "spec/lib/gitlab/cycle_analytics/review_event_fetcher_spec.rb": 0.30237269401550293,5218 "spec/controllers/import/gitlab_projects_controller_spec.rb": 0.3267703056335449,5219 "spec/lib/gitlab/import/database_helpers_spec.rb": 0.32535266876220703,5220 "spec/lib/gitlab/background_migration/move_personal_snippet_files_spec.rb": 0.2565336227416992,5221 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 0.20795607566833496,5222 "spec/migrations/track_untracked_uploads_spec.rb": 0.26756811141967773,5223 "spec/services/after_branch_delete_service_spec.rb": 0.36708593368530273,5224 "spec/lib/gitlab/ci/build/policy/refs_spec.rb": 0.20679187774658203,5225 "spec/models/user_callout_spec.rb": 0.15320515632629395,5226 "spec/serializers/blob_entity_spec.rb": 0.19223451614379883,5227 "spec/workers/pipeline_notification_worker_spec.rb": 0.20995879173278809,5228 "spec/routing/api_routing_spec.rb": 0.11795163154602051,5229 "spec/models/hooks/service_hook_spec.rb": 0.26590919494628906,5230 "spec/controllers/admin/health_check_controller_spec.rb": 0.18780112266540527,5231 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 0.10603976249694824,5232 "spec/rubocop/code_reuse_helpers_spec.rb": 0.0774087905883789,5233 "spec/lib/gitlab/encoding_helper_spec.rb": 0.15210962295532227,5234 "spec/helpers/icons_helper_spec.rb": 0.06534552574157715,5235 "spec/lib/gitlab/redis/queues_spec.rb": 0.06115365028381348,5236 "spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb": 0.05425119400024414,5237 "spec/lib/gitlab/sql/pattern_spec.rb": 0.03635358810424805,5238 "spec/workers/concerns/gitlab/github_import/notify_upon_death_spec.rb": 0.043914079666137695,5239 "spec/lib/gitlab/middleware/multipart_spec.rb": 0.028303861618041992,5240 "spec/models/diff_viewer/server_side_spec.rb": 0.05638885498046875,5241 "spec/lib/bitbucket/representation/issue_spec.rb": 0.07490968704223633,5242 "spec/lib/uploaded_file_spec.rb": 0.027225971221923828,5243 "spec/lib/gitlab/sidekiq_status_spec.rb": 0.030399084091186523,5244 "spec/lib/gitlab/github_import/importer/notes_importer_spec.rb": 0.03538250923156738,5245 "spec/lib/gitlab/git_spec.rb": 0.02037787437438965,5246 "spec/lib/gitlab/background_migration_spec.rb": 0.023669004440307617,5247 "spec/lib/gitlab/route_map_spec.rb": 0.020542144775390625,5248 "spec/lib/gitlab/ci/status/success_warning_spec.rb": 0.013312101364135742,5249 "spec/lib/gitlab/etag_caching/router_spec.rb": 0.01558542251586914,5250 "spec/lib/gitlab/cycle_analytics/plan_stage_spec.rb": 0.017171621322631836,5251 "spec/lib/expand_variables_spec.rb": 0.01573777198791504,5252 "spec/lib/omni_auth/strategies/jwt_spec.rb": 0.011487722396850586,5253 "spec/lib/gitlab/ci/status/running_spec.rb": 0.008215188980102539,5254 "spec/lib/gitlab/sidekiq_versioning_spec.rb": 0.021085262298583984,5255 "spec/lib/gitlab/themes_spec.rb": 0.008516073226928711,5256 "spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb": 0.0058858394622802734,5257 "spec/lib/gitlab/ci/status/skipped_spec.rb": 0.007941007614135742,5258 "spec/lib/gitlab/diff/inline_diff_spec.rb": 0.005090236663818359,5259 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.00428009033203125,5260 "spec/serializers/test_case_entity_spec.rb": 0.0037963390350341797,5261 "spec/lib/bitbucket_server/paginator_spec.rb": 0.013290643692016602,5262 "spec/lib/gitlab/database/sha_attribute_spec.rb": 0.0036063194274902344,5263 "spec/lib/gitlab/ci/status/group/factory_spec.rb": 0.006079673767089844,5264 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.0037059783935546875,5265 "spec/workers/todos_destroyer/entity_leave_worker_spec.rb": 0.0024528503417968755266}5267Knapsack global time execution for tests: 11m 53s5268Pending: (Failures listed here are expected and do not affect your suite's status)5269 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required does not validate presence5270 # No reason given5271 # ./spec/support/shared_examples/models/atomic_internal_id_spec.rb:335272 2) API::Groups GET /groups/:id/subgroups when unauthenticated returns only public subgroups5273 # around hook at ./spec/spec_helper.rb:226 did not execute the example5274 # ./spec/requests/api/groups_spec.rb:6105275 3) API::Groups GET /groups/:id/subgroups when unauthenticated returns 404 for a private group5276 # around hook at ./spec/spec_helper.rb:226 did not execute the example5277 # ./spec/requests/api/groups_spec.rb:6215278 4) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a public group returns no subgroups for the public group5279 # around hook at ./spec/spec_helper.rb:226 did not execute the example5280 # ./spec/requests/api/groups_spec.rb:6305281 5) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a public group when using all_available in request returns public subgroups5282 # around hook at ./spec/spec_helper.rb:226 did not execute the example5283 # ./spec/requests/api/groups_spec.rb:6395284 6) API::Groups GET /groups/:id/subgroups when authenticated as user when user is not member of a private group returns 404 for the private group5285 # around hook at ./spec/spec_helper.rb:226 did not execute the example5286 # ./spec/requests/api/groups_spec.rb:6525287 7) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of public group returns private subgroups5288 # around hook at ./spec/spec_helper.rb:226 did not execute the example5289 # ./spec/requests/api/groups_spec.rb:6645290 8) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of public group when using statistics in request does not include statistics5291 # around hook at ./spec/spec_helper.rb:226 did not execute the example5292 # ./spec/requests/api/groups_spec.rb:6785293 9) API::Groups GET /groups/:id/subgroups when authenticated as user when user is member of private group returns subgroups5294 # around hook at ./spec/spec_helper.rb:226 did not execute the example5295 # ./spec/requests/api/groups_spec.rb:6935296 10) API::Groups GET /groups/:id/subgroups when authenticated as admin returns private subgroups of a public group5297 # around hook at ./spec/spec_helper.rb:226 did not execute the example5298 # ./spec/requests/api/groups_spec.rb:7065299 11) API::Groups GET /groups/:id/subgroups when authenticated as admin returns subgroups of a private group5300 # around hook at ./spec/spec_helper.rb:226 did not execute the example5301 # ./spec/requests/api/groups_spec.rb:7145302 12) API::Groups GET /groups/:id/subgroups when authenticated as admin does not include statistics by default5303 # around hook at ./spec/spec_helper.rb:226 did not execute the example5304 # ./spec/requests/api/groups_spec.rb:7225305 13) API::Groups GET /groups/:id/subgroups when authenticated as admin includes statistics if requested5306 # around hook at ./spec/spec_helper.rb:226 did not execute the example5307 # ./spec/requests/api/groups_spec.rb:7305308 14) API::Groups POST /groups when authenticated as user without group permissions as owner can create subgroups5309 # around hook at ./spec/spec_helper.rb:226 did not execute the example5310 # ./spec/requests/api/groups_spec.rb:7535311 15) API::Groups POST /groups when authenticated as user without group permissions as maintainer cannot create subgroups5312 # around hook at ./spec/spec_helper.rb:226 did not execute the example5313 # ./spec/requests/api/groups_spec.rb:7655314 16) API::Groups POST /groups when authenticated as user with group permissions creates a nested group5315 # around hook at ./spec/spec_helper.rb:226 did not execute the example5316 # ./spec/requests/api/groups_spec.rb:7875317 17) Todos::Destroy::EntityLeaveService#execute when a user leaves a group when group is private with nested groups when the user is not a member of any groups/projects removes todos for the user including subprojects todos5318 # around hook at ./spec/spec_helper.rb:226 did not execute the example5319 # ./spec/services/todos/destroy/entity_leave_service_spec.rb:1845320 18) Todos::Destroy::EntityLeaveService#execute when a user leaves a group when group is private with nested groups when the user is member of a parent group does not remove any todos5321 # around hook at ./spec/spec_helper.rb:226 did not execute the example5322 # ./spec/services/todos/destroy/entity_leave_service_spec.rb:2025323 19) Todos::Destroy::EntityLeaveService#execute when a user leaves a group when group is private with nested groups when the user is member of a subgroup does not remove group and subproject todos5324 # around hook at ./spec/spec_helper.rb:226 did not execute the example5325 # ./spec/services/todos/destroy/entity_leave_service_spec.rb:2125326 20) Todos::Destroy::EntityLeaveService#execute when a user leaves a group when group is private with nested groups when the user is member of a child project does not remove subproject and group todos5327 # around hook at ./spec/spec_helper.rb:226 did not execute the example5328 # ./spec/services/todos/destroy/entity_leave_service_spec.rb:2285329 21) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute creates a project for a repository in storage5330 # around hook at ./spec/spec_helper.rb:226 did not execute the example5331 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:245332 22) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute skips wiki repos5333 # around hook at ./spec/spec_helper.rb:226 did not execute the example5334 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:345335 23) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository .execute without admin users raises an error5336 # around hook at ./spec/spec_helper.rb:226 did not execute the example5337 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:475338 24) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed starts an import for a project that did not exist5339 # around hook at ./spec/spec_helper.rb:226 did not execute the example5340 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:545341 25) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed skips importing when the project already exists5342 # around hook at ./spec/spec_helper.rb:226 did not execute the example5343 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:605344 26) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed creates a project with the correct path in the database5345 # around hook at ./spec/spec_helper.rb:226 did not execute the example5346 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:695347 27) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed does not schedule an import5348 # around hook at ./spec/spec_helper.rb:226 did not execute the example5349 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:755350 28) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed creates the Git repo on disk5351 # around hook at ./spec/spec_helper.rb:226 did not execute the example5352 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:815353 29) Gitlab::BareRepositoryImport::Importer with subgroups behaves like importing a repository #create_project_if_needed hashed storage enabled creates a project with the correct path in the database5354 # around hook at ./spec/spec_helper.rb:226 did not execute the example5355 # ./spec/lib/gitlab/bare_repository_import/importer_spec.rb:955356 30) Merge request > User scrolls to note on load expands collapsed notes5357 # Temporarily skipped with xit5358 # ./spec/features/merge_request/user_scrolls_to_note_on_load_spec.rb:495359 31) TodosFinder#execute #execute filtering with subgroups returns todos from subgroups when filtered by a group5360 # around hook at ./spec/spec_helper.rb:226 did not execute the example5361 # ./spec/finders/todos_finder_spec.rb:435362 32) NamespacesHelper#namespaces_options when nested groups are available includes groups nested in groups the user can administer5363 # around hook at ./spec/spec_helper.rb:226 did not execute the example5364 # ./spec/helpers/namespaces_helper_spec.rb:855365 33) NamespacesHelper#namespaces_options when nested groups are available orders the groups correctly5366 # around hook at ./spec/spec_helper.rb:226 did not execute the example5367 # ./spec/helpers/namespaces_helper_spec.rb:945368 34) Gitlab::SQL::CTE#to_arel generates an Arel relation for the CTE body5369 # around hook at ./spec/spec_helper.rb:230 did not execute the example5370 # ./spec/lib/gitlab/sql/cte_spec.rb:55371 35) Gitlab::SQL::CTE#alias_to returns an alias for the CTE5372 # around hook at ./spec/spec_helper.rb:230 did not execute the example5373 # ./spec/lib/gitlab/sql/cte_spec.rb:205374 36) Gitlab::SQL::CTE#apply_to applies a CTE to an ActiveRecord::Relation5375 # around hook at ./spec/spec_helper.rb:230 did not execute the example5376 # ./spec/lib/gitlab/sql/cte_spec.rb:325377Finished in 14 minutes 23 seconds (files took 15.31 seconds to load)53781751 examples, 0 failures, 36 pending5380$ date5381Fri Oct 12 08:04:10 UTC 20185384coverage/: found 5 matching files 5385knapsack/: found 4 matching files 5386rspec_flaky/: found 4 matching files 5387WARNING: tmp/capybara/: no matching files 5388Uploading artifacts to coordinator... ok id=107388096 responseStatus=201 Created token=6UP7nDfD5389Uploading artifacts...5390junit_rspec.xml: found 1 matching files 5391Uploading artifacts to coordinator... ok id=107388096 responseStatus=201 Created token=6UP7nDfD5392Job succeeded