There was an error fetching the job.
rspec-pg 26 30
Passed Started
by
@splattael
Peter Leitzen
1Running with gitlab-runner 11.4.2 (cf91d5e1)2 on docker-auto-scale-com 8a6210b83Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.5-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:89bf0dc0dee01ef0e393388e330a3b6aa300066890722548de0f0a00869f3e99 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:05635ee9e1c7e8bf4b0b3265c5085126aced903a9b69cada10796ca13aa033e9 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.5-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:9123a74b42062bba0eaf4098630aec8b4c59800f1d0a659a2b1ad16821095ff3 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.5-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-8a6210b8-project-13083-concurrent-0 via runner-8a6210b8-gsrm-1540644787-69101749...
00:01
15Cloning into '/builds/gitlab-org/gitlab-ce'...16Checking out 8415e994 as 5781-operations-homepage-mvc-routes...17Skipping Git submodules setup19Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/13083/ruby-2.4.5-debian-stretch-with-yarn-2 20Successfully extracted cache22Downloading artifacts from coordinator... ok id=113407381 responseStatus=200 OK token=fJLZiabN23Downloading artifacts for compile-assets (113407382)...24Downloading artifacts from coordinator... ok id=113407382 responseStatus=200 OK token=12T5My4F25Downloading artifacts for setup-test-env (113407383)...26Downloading artifacts from coordinator... ok id=113407383 responseStatus=200 OK token=ixfaXPSP27WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 29Bundler version 1.16.630$ date31Sat Oct 27 12:57:03 UTC 201832$ source scripts/utils.sh33$ date34Sat Oct 27 12:57:03 UTC 201835$ source scripts/prepare_build.sh36The Gemfile's dependencies are satisfied37Successfully installed knapsack-1.16.0381 gem installed39CREATE ROLE40GRANT41-- enable_extension("plpgsql")42 -> 0.0114s43-- enable_extension("pg_trgm")44 -> 0.0158s45-- create_table("abuse_reports", {:force=>:cascade})46 -> 0.0267s47-- create_table("appearances", {:force=>:cascade})48 -> 0.0249s49-- create_table("application_setting_terms", {:force=>:cascade})50 -> 0.0240s51-- create_table("application_settings", {:force=>:cascade})52 -> 0.0579s53-- create_table("audit_events", {:force=>:cascade})54 -> 0.0250s55-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})56 -> 0.0144s57-- create_table("award_emoji", {:force=>:cascade})58 -> 0.0240s59-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})60 -> 0.0139s61-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})62 -> 0.0140s63-- create_table("badges", {:force=>:cascade})64 -> 0.0249s65-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})66 -> 0.0138s67-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})68 -> 0.0141s69-- create_table("board_group_recent_visits", {:id=>:bigserial, :force=>:cascade})70 -> 0.0138s71-- add_index("board_group_recent_visits", ["board_id"], {:name=>"index_board_group_recent_visits_on_board_id", :using=>:btree})72 -> 0.0139s73-- add_index("board_group_recent_visits", ["group_id"], {:name=>"index_board_group_recent_visits_on_group_id", :using=>:btree})74 -> 0.0140s75-- add_index("board_group_recent_visits", ["user_id", "group_id", "board_id"], {:name=>"index_board_group_recent_visits_on_user_group_and_board", :unique=>true, :using=>:btree})76 -> 0.0140s77-- add_index("board_group_recent_visits", ["user_id"], {:name=>"index_board_group_recent_visits_on_user_id", :using=>:btree})78 -> 0.0139s79-- create_table("board_project_recent_visits", {:id=>:bigserial, :force=>:cascade})80 -> 0.0141s81-- add_index("board_project_recent_visits", ["board_id"], {:name=>"index_board_project_recent_visits_on_board_id", :using=>:btree})82 -> 0.0138s83-- add_index("board_project_recent_visits", ["project_id"], {:name=>"index_board_project_recent_visits_on_project_id", :using=>:btree})84 -> 0.0139s85-- add_index("board_project_recent_visits", ["user_id", "project_id", "board_id"], {:name=>"index_board_project_recent_visits_on_user_project_and_board", :unique=>true, :using=>:btree})86 -> 0.0138s87-- add_index("board_project_recent_visits", ["user_id"], {:name=>"index_board_project_recent_visits_on_user_id", :using=>:btree})88 -> 0.0141s89-- create_table("boards", {:force=>:cascade})90 -> 0.0151s91-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})92 -> 0.0146s93-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})94 -> 0.0141s95-- create_table("broadcast_messages", {:force=>:cascade})96 -> 0.0249s97-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})98 -> 0.0139s99-- create_table("chat_names", {:force=>:cascade})100 -> 0.0239s101-- 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})102 -> 0.0141s103-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})104 -> 0.0138s105-- create_table("chat_teams", {:force=>:cascade})106 -> 0.0245s107-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})108 -> 0.0142s109-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})110 -> 0.0236s111-- 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})112 -> 0.0140s113-- create_table("ci_build_trace_section_names", {:force=>:cascade})114 -> 0.0246s115-- 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})116 -> 0.0150s117-- create_table("ci_build_trace_sections", {:force=>:cascade})118 -> 0.0147s119-- 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})120 -> 0.0138s121-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})122 -> 0.0137s123-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})124 -> 0.0139s125-- create_table("ci_builds", {:force=>:cascade})126 -> 0.0257s127-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})128 -> 0.0140s129-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})130 -> 0.0139s131-- 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})132 -> 0.0139s133-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})134 -> 0.0149s135-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})136 -> 0.0140s137-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})138 -> 0.0142s139-- add_index("ci_builds", ["id"], {:name=>"partial_index_ci_builds_on_id_with_legacy_artifacts", :where=>"(artifacts_file <> ''::text)", :using=>:btree})140 -> 0.0141s141-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})142 -> 0.0142s143-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})144 -> 0.0142s145-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})146 -> 0.0142s147-- 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})148 -> 0.0183s149-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})150 -> 0.0143s151-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})152 -> 0.0139s153-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})154 -> 0.0146s155-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})156 -> 0.0142s157-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})158 -> 0.0140s159-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})160 -> 0.0137s161-- create_table("ci_builds_metadata", {:force=>:cascade})162 -> 0.0145s163-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})164 -> 0.0140s165-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})166 -> 0.0145s167-- create_table("ci_builds_runner_session", {:id=>:bigserial, :force=>:cascade})168 -> 0.0244s169-- add_index("ci_builds_runner_session", ["build_id"], {:name=>"index_ci_builds_runner_session_on_build_id", :unique=>true, :using=>:btree})170 -> 0.0143s171-- create_table("ci_group_variables", {:force=>:cascade})172 -> 0.0251s173-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})174 -> 0.0168s175-- create_table("ci_job_artifacts", {:force=>:cascade})176 -> 0.0253s177-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})178 -> 0.0144s179-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})180 -> 0.0142s181-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})182 -> 0.0143s183-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})184 -> 0.0141s185-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})186 -> 0.0256s187-- 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})188 -> 0.0144s189-- create_table("ci_pipeline_schedules", {:force=>:cascade})190 -> 0.0250s191-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})192 -> 0.0136s193-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})194 -> 0.0146s195-- create_table("ci_pipeline_variables", {:force=>:cascade})196 -> 0.0252s197-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})198 -> 0.0144s199-- create_table("ci_pipelines", {:force=>:cascade})200 -> 0.0249s201-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})202 -> 0.0137s203-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})204 -> 0.0140s205-- 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})206 -> 0.0141s207-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})208 -> 0.0141s209-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})210 -> 0.0142s211-- add_index("ci_pipelines", ["project_id", "source"], {:name=>"index_ci_pipelines_on_project_id_and_source", :using=>:btree})212 -> 0.0139s213-- add_index("ci_pipelines", ["project_id", "status", "config_source"], {:name=>"index_ci_pipelines_on_project_id_and_status_and_config_source", :using=>:btree})214 -> 0.0142s215-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})216 -> 0.0138s217-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})218 -> 0.0140s219-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})220 -> 0.0144s221-- create_table("ci_runner_namespaces", {:force=>:cascade})222 -> 0.0162s223-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})224 -> 0.0138s225-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})226 -> 0.0142s227-- create_table("ci_runner_projects", {:force=>:cascade})228 -> 0.0139s229-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})230 -> 0.0138s231-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})232 -> 0.0139s233-- create_table("ci_runners", {:force=>:cascade})234 -> 0.0283s235-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})236 -> 0.0144s237-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})238 -> 0.0142s239-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})240 -> 0.0140s241-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})242 -> 0.0140s243-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})244 -> 0.0140s245-- create_table("ci_stages", {:force=>:cascade})246 -> 0.0239s247-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})248 -> 0.0142s249-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})250 -> 0.0137s251-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})252 -> 0.0138s253-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})254 -> 0.0136s255-- create_table("ci_trigger_requests", {:force=>:cascade})256 -> 0.0242s257-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})258 -> 0.0142s259-- create_table("ci_triggers", {:force=>:cascade})260 -> 0.0242s261-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})262 -> 0.0143s263-- create_table("ci_variables", {:force=>:cascade})264 -> 0.0253s265-- 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})266 -> 0.0143s267-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})268 -> 0.0259s269-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})270 -> 0.0144s271-- create_table("cluster_projects", {:force=>:cascade})272 -> 0.0138s273-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})274 -> 0.0144s275-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})276 -> 0.0135s277-- create_table("cluster_providers_gcp", {:force=>:cascade})278 -> 0.0249s279-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})280 -> 0.0151s281-- create_table("clusters", {:force=>:cascade})282 -> 0.0251s283-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})284 -> 0.0148s285-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})286 -> 0.0141s287-- create_table("clusters_applications_helm", {:force=>:cascade})288 -> 0.0246s289-- create_table("clusters_applications_ingress", {:force=>:cascade})290 -> 0.0265s291-- create_table("clusters_applications_jupyter", {:force=>:cascade})292 -> 0.0245s293-- create_table("clusters_applications_prometheus", {:force=>:cascade})294 -> 0.0240s295-- create_table("clusters_applications_runners", {:force=>:cascade})296 -> 0.0245s297-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})298 -> 0.0137s299-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})300 -> 0.0137s301-- create_table("clusters_kubernetes_namespaces", {:id=>:bigserial, :force=>:cascade})302 -> 0.0241s303-- add_index("clusters_kubernetes_namespaces", ["cluster_id", "namespace"], {:name=>"kubernetes_namespaces_cluster_and_namespace", :unique=>true, :using=>:btree})304 -> 0.0142s305-- add_index("clusters_kubernetes_namespaces", ["cluster_id"], {:name=>"index_clusters_kubernetes_namespaces_on_cluster_id", :using=>:btree})306 -> 0.0140s307-- add_index("clusters_kubernetes_namespaces", ["cluster_project_id"], {:name=>"index_clusters_kubernetes_namespaces_on_cluster_project_id", :using=>:btree})308 -> 0.0139s309-- add_index("clusters_kubernetes_namespaces", ["project_id"], {:name=>"index_clusters_kubernetes_namespaces_on_project_id", :using=>:btree})310 -> 0.0138s311-- create_table("container_repositories", {:force=>:cascade})312 -> 0.0248s313-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})314 -> 0.0140s315-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})316 -> 0.0140s317-- create_table("conversational_development_index_metrics", {:force=>:cascade})318 -> 0.0184s319-- create_table("deploy_keys_projects", {:force=>:cascade})320 -> 0.0144s321-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})322 -> 0.0141s323-- create_table("deploy_tokens", {:force=>:cascade})324 -> 0.0258s325-- 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})326 -> 0.0141s327-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})328 -> 0.0139s329-- create_table("deployments", {:force=>:cascade})330 -> 0.0240s331-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})332 -> 0.0138s333-- add_index("deployments", ["deployable_type", "deployable_id"], {:name=>"index_deployments_on_deployable_type_and_deployable_id", :using=>:btree})334 -> 0.0139s335-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})336 -> 0.0138s337-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})338 -> 0.0148s339-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})340 -> 0.0146s341-- create_table("emails", {:force=>:cascade})342 -> 0.0252s343-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})344 -> 0.0140s345-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})346 -> 0.0140s347-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})348 -> 0.0138s349-- create_table("environments", {:force=>:cascade})350 -> 0.0247s351-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})352 -> 0.0140s353-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})354 -> 0.0139s355-- create_table("events", {:force=>:cascade})356 -> 0.0248s357-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})358 -> 0.0140s359-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})360 -> 0.0142s361-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})362 -> 0.0138s363-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})364 -> 0.0139s365-- create_table("feature_gates", {:force=>:cascade})366 -> 0.0240s367-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})368 -> 0.0139s369-- create_table("features", {:force=>:cascade})370 -> 0.0245s371-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})372 -> 0.0142s373-- create_table("fork_network_members", {:force=>:cascade})374 -> 0.0141s375-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})376 -> 0.0142s377-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})378 -> 0.0140s379-- create_table("fork_networks", {:force=>:cascade})380 -> 0.0238s381-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})382 -> 0.0137s383-- create_table("forked_project_links", {:force=>:cascade})384 -> 0.0135s385-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})386 -> 0.0143s387-- create_table("gcp_clusters", {:force=>:cascade})388 -> 0.0248s389-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})390 -> 0.0143s391-- create_table("gpg_key_subkeys", {:force=>:cascade})392 -> 0.0237s393-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})394 -> 0.0138s395-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})396 -> 0.0143s397-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})398 -> 0.0140s399-- create_table("gpg_keys", {:force=>:cascade})400 -> 0.0244s401-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})402 -> 0.0143s403-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})404 -> 0.0141s405-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})406 -> 0.0143s407-- create_table("gpg_signatures", {:force=>:cascade})408 -> 0.0275s409-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})410 -> 0.0141s411-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})412 -> 0.0140s413-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})414 -> 0.0139s415-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})416 -> 0.0139s417-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})418 -> 0.0140s419-- create_table("group_custom_attributes", {:force=>:cascade})420 -> 0.0240s421-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})422 -> 0.0139s423-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})424 -> 0.0142s425-- create_table("identities", {:force=>:cascade})426 -> 0.0241s427-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})428 -> 0.0140s429-- create_table("import_export_uploads", {:force=>:cascade})430 -> 0.0241s431-- add_index("import_export_uploads", ["project_id"], {:name=>"index_import_export_uploads_on_project_id", :using=>:btree})432 -> 0.0192s433-- add_index("import_export_uploads", ["updated_at"], {:name=>"index_import_export_uploads_on_updated_at", :using=>:btree})434 -> 0.0135s435-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})436 -> 0.0140s437-- 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})438 -> 0.0140s439-- 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})440 -> 0.0138s441-- create_table("issue_assignees", {:id=>false, :force=>:cascade})442 -> 0.0029s443-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})444 -> 0.0134s445-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})446 -> 0.0138s447-- create_table("issue_metrics", {:force=>:cascade})448 -> 0.0141s449-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})450 -> 0.0159s451-- create_table("issues", {:force=>:cascade})452 -> 0.0253s453-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})454 -> 0.0139s455-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})456 -> 0.0155s457-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})458 -> 0.0043s459-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})460 -> 0.0136s461-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})462 -> 0.0141s463-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})464 -> 0.0142s465-- 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})466 -> 0.0140s467-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})468 -> 0.0140s469-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})470 -> 0.0139s471-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})472 -> 0.0213s473-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})474 -> 0.0142s475-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})476 -> 0.0045s477-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})478 -> 0.0146s479-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})480 -> 0.0145s481-- create_table("keys", {:force=>:cascade})482 -> 0.0249s483-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})484 -> 0.0159s485-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})486 -> 0.0138s487-- create_table("label_links", {:force=>:cascade})488 -> 0.0242s489-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})490 -> 0.0139s491-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})492 -> 0.0139s493-- create_table("label_priorities", {:force=>:cascade})494 -> 0.0143s495-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})496 -> 0.0139s497-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})498 -> 0.0141s499-- create_table("labels", {:force=>:cascade})500 -> 0.0244s501-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})502 -> 0.0141s503-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})504 -> 0.0141s505-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})506 -> 0.0140s507-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})508 -> 0.0141s509-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})510 -> 0.0139s511-- create_table("lfs_file_locks", {:force=>:cascade})512 -> 0.0244s513-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})514 -> 0.0153s515-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})516 -> 0.0136s517-- create_table("lfs_objects", {:force=>:cascade})518 -> 0.0236s519-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})520 -> 0.0140s521-- create_table("lfs_objects_projects", {:force=>:cascade})522 -> 0.0142s523-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})524 -> 0.0142s525-- create_table("lists", {:force=>:cascade})526 -> 0.0151s527-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})528 -> 0.0206s529-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})530 -> 0.0142s531-- add_index("lists", ["list_type"], {:name=>"index_lists_on_list_type", :using=>:btree})532 -> 0.0143s533-- create_table("members", {:force=>:cascade})534 -> 0.0247s535-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})536 -> 0.0142s537-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})538 -> 0.0140s539-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})540 -> 0.0138s541-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})542 -> 0.0139s543-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})544 -> 0.0142s545-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})546 -> 0.0147s547-- 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})548 -> 0.0140s549-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})550 -> 0.0137s551-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})552 -> 0.0139s553-- 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})554 -> 0.0140s555-- create_table("merge_request_diffs", {:force=>:cascade})556 -> 0.0240s557-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})558 -> 0.0141s559-- create_table("merge_request_metrics", {:force=>:cascade})560 -> 0.0144s561-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})562 -> 0.0142s563-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})564 -> 0.0137s565-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})566 -> 0.0140s567-- create_table("merge_requests", {:force=>:cascade})568 -> 0.0264s569-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})570 -> 0.0137s571-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})572 -> 0.0138s573-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})574 -> 0.0144s575-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})576 -> 0.0041s577-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})578 -> 0.0138s579-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})580 -> 0.0146s581-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})582 -> 0.0139s583-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})584 -> 0.0136s585-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})586 -> 0.0145s587-- 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})588 -> 0.0140s589-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})590 -> 0.0141s591-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})592 -> 0.0138s593-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})594 -> 0.0142s595-- 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})596 -> 0.0138s597-- 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})598 -> 0.0141s599-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})600 -> 0.0138s601-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})602 -> 0.0045s603-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})604 -> 0.0139s605-- create_table("merge_requests_closing_issues", {:force=>:cascade})606 -> 0.0139s607-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})608 -> 0.0137s609-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})610 -> 0.0136s611-- create_table("milestones", {:force=>:cascade})612 -> 0.0238s613-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})614 -> 0.0038s615-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})616 -> 0.0133s617-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})618 -> 0.0142s619-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})620 -> 0.0137s621-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})622 -> 0.0135s623-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})624 -> 0.0039s625-- create_table("namespaces", {:force=>:cascade})626 -> 0.0261s627-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})628 -> 0.0137s629-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})630 -> 0.0137s631-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})632 -> 0.0040s633-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})634 -> 0.0137s635-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})636 -> 0.0137s637-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})638 -> 0.0141s639-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})640 -> 0.0041s641-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})642 -> 0.0139s643-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})644 -> 0.0141s645-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})646 -> 0.0140s647-- create_table("note_diff_files", {:force=>:cascade})648 -> 0.0249s649-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})650 -> 0.0144s651-- create_table("notes", {:force=>:cascade})652 -> 0.0259s653-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})654 -> 0.0141s655-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})656 -> 0.0141s657-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})658 -> 0.0138s659-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})660 -> 0.0138s661-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})662 -> 0.0140s663-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})664 -> 0.0050s665-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})666 -> 0.0137s667-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})668 -> 0.0168s669-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})670 -> 0.0142s671-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})672 -> 0.0140s673-- create_table("notification_settings", {:force=>:cascade})674 -> 0.0247s675-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})676 -> 0.0138s677-- 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})678 -> 0.0137s679-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})680 -> 0.1951s681-- create_table("oauth_access_grants", {:force=>:cascade})682 -> 0.0242s683-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})684 -> 0.0141s685-- create_table("oauth_access_tokens", {:force=>:cascade})686 -> 0.0238s687-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})688 -> 0.0139s689-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})690 -> 0.0138s691-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})692 -> 0.0140s693-- create_table("oauth_applications", {:force=>:cascade})694 -> 0.0252s695-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})696 -> 0.0142s697-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})698 -> 0.0142s699-- create_table("oauth_openid_requests", {:force=>:cascade})700 -> 0.0296s701-- create_table("pages_domains", {:force=>:cascade})702 -> 0.0264s703-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})704 -> 0.0139s705-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})706 -> 0.0142s707-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})708 -> 0.0140s709-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})710 -> 0.0144s711-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})712 -> 0.0139s713-- create_table("personal_access_tokens", {:force=>:cascade})714 -> 0.0253s715-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})716 -> 0.0148s717-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})718 -> 0.0138s719-- create_table("programming_languages", {:force=>:cascade})720 -> 0.0241s721-- add_index("programming_languages", ["name"], {:name=>"index_programming_languages_on_name", :unique=>true, :using=>:btree})722 -> 0.0139s723-- create_table("project_authorizations", {:id=>false, :force=>:cascade})724 -> 0.0029s725-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})726 -> 0.0149s727-- 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})728 -> 0.0142s729-- create_table("project_auto_devops", {:force=>:cascade})730 -> 0.0244s731-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})732 -> 0.0140s733-- create_table("project_ci_cd_settings", {:force=>:cascade})734 -> 0.0145s735-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})736 -> 0.0138s737-- create_table("project_custom_attributes", {:force=>:cascade})738 -> 0.0243s739-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})740 -> 0.0140s741-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})742 -> 0.0140s743-- create_table("project_deploy_tokens", {:force=>:cascade})744 -> 0.0138s745-- 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})746 -> 0.0142s747-- create_table("project_features", {:force=>:cascade})748 -> 0.0155s749-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})750 -> 0.0142s751-- create_table("project_group_links", {:force=>:cascade})752 -> 0.0142s753-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})754 -> 0.0136s755-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})756 -> 0.0138s757-- create_table("project_import_data", {:force=>:cascade})758 -> 0.0239s759-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})760 -> 0.0141s761-- create_table("project_mirror_data", {:force=>:cascade})762 -> 0.0245s763-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})764 -> 0.0146s765-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})766 -> 0.0147s767-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})768 -> 0.0158s769-- create_table("project_statistics", {:force=>:cascade})770 -> 0.0164s771-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})772 -> 0.0144s773-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})774 -> 0.0145s775-- create_table("projects", {:force=>:cascade})776 -> 0.0246s777-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})778 -> 0.0141s779-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})780 -> 0.0142s781-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})782 -> 0.0140s783-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})784 -> 0.0040s785-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})786 -> 0.0149s787-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})788 -> 0.0137s789-- 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})790 -> 0.0139s791-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})792 -> 0.0138s793-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})794 -> 0.0138s795-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})796 -> 0.0040s797-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})798 -> 0.0144s799-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})800 -> 0.0135s801-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})802 -> 0.0040s803-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})804 -> 0.0133s805-- add_index("projects", ["repository_storage", "created_at"], {:name=>"idx_project_repository_check_partial", :where=>"(last_repository_check_at IS NULL)", :using=>:btree})806 -> 0.0140s807-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})808 -> 0.0139s809-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})810 -> 0.0135s811-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})812 -> 0.0140s813-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})814 -> 0.0134s815-- create_table("prometheus_metrics", {:force=>:cascade})816 -> 0.0244s817-- add_index("prometheus_metrics", ["common"], {:name=>"index_prometheus_metrics_on_common", :using=>:btree})818 -> 0.0133s819-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})820 -> 0.0141s821-- add_index("prometheus_metrics", ["identifier"], {:name=>"index_prometheus_metrics_on_identifier", :unique=>true, :using=>:btree})822 -> 0.0140s823-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})824 -> 0.0139s825-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})826 -> 0.0144s827-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})828 -> 0.0138s829-- create_table("protected_branch_push_access_levels", {:force=>:cascade})830 -> 0.0145s831-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})832 -> 0.0152s833-- create_table("protected_branches", {:force=>:cascade})834 -> 0.0241s835-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})836 -> 0.0140s837-- create_table("protected_tag_create_access_levels", {:force=>:cascade})838 -> 0.0146s839-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})840 -> 0.0139s841-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})842 -> 0.0136s843-- create_table("protected_tags", {:force=>:cascade})844 -> 0.0240s845-- add_index("protected_tags", ["project_id", "name"], {:name=>"index_protected_tags_on_project_id_and_name", :unique=>true, :using=>:btree})846 -> 0.0138s847-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})848 -> 0.0134s849-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})850 -> 0.0140s851-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})852 -> 0.0134s853-- create_table("redirect_routes", {:force=>:cascade})854 -> 0.0259s855-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})856 -> 0.0146s857-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})858 -> 0.0142s859-- create_table("releases", {:force=>:cascade})860 -> 0.0254s861-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})862 -> 0.0141s863-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})864 -> 0.0136s865-- create_table("remote_mirrors", {:force=>:cascade})866 -> 0.0251s867-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})868 -> 0.0141s869-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})870 -> 0.0143s871-- create_table("repository_languages", {:id=>false, :force=>:cascade})872 -> 0.0031s873-- add_index("repository_languages", ["project_id", "programming_language_id"], {:name=>"index_repository_languages_on_project_and_languages_id", :unique=>true, :using=>:btree})874 -> 0.0142s875-- create_table("resource_label_events", {:id=>:bigserial, :force=>:cascade})876 -> 0.0247s877-- add_index("resource_label_events", ["issue_id"], {:name=>"index_resource_label_events_on_issue_id", :using=>:btree})878 -> 0.0141s879-- add_index("resource_label_events", ["label_id"], {:name=>"index_resource_label_events_on_label_id", :using=>:btree})880 -> 0.0137s881-- add_index("resource_label_events", ["merge_request_id"], {:name=>"index_resource_label_events_on_merge_request_id", :using=>:btree})882 -> 0.0139s883-- add_index("resource_label_events", ["user_id"], {:name=>"index_resource_label_events_on_user_id", :using=>:btree})884 -> 0.0136s885-- create_table("routes", {:force=>:cascade})886 -> 0.0240s887-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})888 -> 0.0139s889-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})890 -> 0.0142s891-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})892 -> 0.0150s893-- create_table("sent_notifications", {:force=>:cascade})894 -> 0.0247s895-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})896 -> 0.0143s897-- create_table("services", {:force=>:cascade})898 -> 0.0309s899-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})900 -> 0.0139s901-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})902 -> 0.0147s903-- create_table("site_statistics", {:force=>:cascade})904 -> 0.0147s905-- create_table("snippets", {:force=>:cascade})906 -> 0.0249s907-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})908 -> 0.0140s909-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})910 -> 0.0038s911-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})912 -> 0.0132s913-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})914 -> 0.0037s915-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})916 -> 0.0134s917-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})918 -> 0.0135s919-- create_table("spam_logs", {:force=>:cascade})920 -> 0.0245s921-- create_table("subscriptions", {:force=>:cascade})922 -> 0.0240s923-- 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})924 -> 0.0142s925-- create_table("system_note_metadata", {:force=>:cascade})926 -> 0.0239s927-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})928 -> 0.0140s929-- create_table("taggings", {:force=>:cascade})930 -> 0.0240s931-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})932 -> 0.0141s933-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})934 -> 0.0136s935-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})936 -> 0.0139s937-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})938 -> 0.0138s939-- create_table("tags", {:force=>:cascade})940 -> 0.0244s941-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})942 -> 0.0149s943-- create_table("term_agreements", {:force=>:cascade})944 -> 0.0152s945-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})946 -> 0.0142s947-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})948 -> 0.0140s949-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})950 -> 0.0143s951-- create_table("timelogs", {:force=>:cascade})952 -> 0.0146s953-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})954 -> 0.0141s955-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})956 -> 0.0138s957-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})958 -> 0.0147s959-- create_table("todos", {:force=>:cascade})960 -> 0.0246s961-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})962 -> 0.0138s963-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})964 -> 0.0136s965-- add_index("todos", ["group_id"], {:name=>"index_todos_on_group_id", :using=>:btree})966 -> 0.0137s967-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})968 -> 0.0138s969-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})970 -> 0.0141s971-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})972 -> 0.0139s973-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})974 -> 0.0139s975-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})976 -> 0.0141s977-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})978 -> 0.0137s979-- create_table("trending_projects", {:force=>:cascade})980 -> 0.0137s981-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})982 -> 0.0140s983-- create_table("u2f_registrations", {:force=>:cascade})984 -> 0.0240s985-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})986 -> 0.0138s987-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})988 -> 0.0139s989-- create_table("uploads", {:force=>:cascade})990 -> 0.0238s991-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})992 -> 0.0141s993-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})994 -> 0.0137s995-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})996 -> 0.0147s997-- create_table("user_agent_details", {:force=>:cascade})998 -> 0.0252s999-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1000 -> 0.0138s1001-- create_table("user_callouts", {:force=>:cascade})1002 -> 0.0140s1003-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1004 -> 0.0138s1005-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1006 -> 0.0139s1007-- create_table("user_custom_attributes", {:force=>:cascade})1008 -> 0.0240s1009-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1010 -> 0.0139s1011-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1012 -> 0.0137s1013-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1014 -> 0.0030s1015-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1016 -> 0.0134s1017-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1018 -> 0.0135s1019-- create_table("user_preferences", {:force=>:cascade})1020 -> 0.0148s1021-- add_index("user_preferences", ["user_id"], {:name=>"index_user_preferences_on_user_id", :unique=>true, :using=>:btree})1022 -> 0.0139s1023-- create_table("user_statuses", {:primary_key=>"user_id", :force=>:cascade})1024 -> 0.0247s1025-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1026 -> 0.0257s1027-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1028 -> 0.0145s1029-- create_table("users", {:force=>:cascade})1030 -> 0.0365s1031-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1032 -> 0.0153s1033-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1034 -> 0.0148s1035-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1036 -> 0.0141s1037-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1038 -> 0.0146s1039-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1040 -> 0.0040s1041-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1042 -> 0.0136s1043-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1044 -> 0.0140s1045-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1046 -> 0.0144s1047-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1048 -> 0.0142s1049-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1050 -> 0.0039s1051-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1052 -> 0.0149s1053-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1054 -> 0.0145s1055-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1056 -> 0.0144s1057-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1058 -> 0.0041s1059-- create_table("users_star_projects", {:force=>:cascade})1060 -> 0.0137s1061-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1062 -> 0.0144s1063-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1064 -> 0.0141s1065-- create_table("web_hook_logs", {:force=>:cascade})1066 -> 0.0247s1067-- add_index("web_hook_logs", ["created_at", "web_hook_id"], {:name=>"index_web_hook_logs_on_created_at_and_web_hook_id", :using=>:btree})1068 -> 0.0153s1069-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1070 -> 0.0145s1071-- create_table("web_hooks", {:force=>:cascade})1072 -> 0.0291s1073-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1074 -> 0.0141s1075-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1076 -> 0.0135s1077-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})1078 -> 0.0049s1079-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1080 -> 0.0030s1081-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1082 -> 0.0032s1083-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})1084 -> 0.0026s1085-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1086 -> 0.0023s1087-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})1088 -> 0.0026s1089-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})1090 -> 0.0024s1091-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})1092 -> 0.0024s1093-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})1094 -> 0.0022s1095-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1096 -> 0.0021s1097-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1098 -> 0.0022s1099-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1100 -> 0.0024s1101-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1102 -> 0.0031s1103-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1104 -> 0.0028s1105-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1106 -> 0.0023s1107-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1108 -> 0.0022s1109-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1110 -> 0.0023s1111-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1112 -> 0.0035s1113-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1114 -> 0.0025s1115-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1116 -> 0.0027s1117-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1118 -> 0.0028s1119-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1120 -> 0.0027s1121-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1122 -> 0.0025s1123-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1124 -> 0.0024s1125-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1126 -> 0.0024s1127-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1128 -> 0.0025s1129-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1130 -> 0.0024s1131-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1132 -> 0.0023s1133-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1134 -> 0.0025s1135-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1136 -> 0.0021s1137-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1138 -> 0.0026s1139-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1140 -> 0.0024s1141-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1142 -> 0.0023s1143-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1144 -> 0.0024s1145-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1146 -> 0.0026s1147-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1148 -> 0.0023s1149-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1150 -> 0.0025s1151-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1152 -> 0.0023s1153-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1154 -> 0.0025s1155-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1156 -> 0.0023s1157-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1158 -> 0.0023s1159-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1160 -> 0.0027s1161-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1162 -> 0.0026s1163-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1164 -> 0.0027s1165-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1166 -> 0.0024s1167-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1168 -> 0.0026s1169-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1170 -> 0.0024s1171-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1172 -> 0.0026s1173-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1174 -> 0.0023s1175-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1176 -> 0.0021s1177-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1178 -> 0.0021s1179-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1180 -> 0.0024s1181-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1182 -> 0.0027s1183-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1184 -> 0.0024s1185-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1186 -> 0.0023s1187-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})1188 -> 0.0025s1189-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})1190 -> 0.0026s1191-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})1192 -> 0.0031s1193-- add_foreign_key("container_repositories", "projects")1194 -> 0.0026s1195-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1196 -> 0.0029s1197-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1198 -> 0.0029s1199-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1200 -> 0.0029s1201-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1202 -> 0.0028s1203-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1204 -> 0.0038s1205-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1206 -> 0.0023s1207-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1208 -> 0.0027s1209-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1210 -> 0.0026s1211-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1212 -> 0.0022s1213-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1214 -> 0.0025s1215-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1216 -> 0.0027s1217-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1218 -> 0.0028s1219-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1220 -> 0.0029s1221-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1222 -> 0.0024s1223-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1224 -> 0.0025s1225-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1226 -> 0.0026s1227-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1228 -> 0.0022s1229-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1230 -> 0.0025s1231-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1232 -> 0.0022s1233-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})1234 -> 0.0024s1235-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1236 -> 0.0027s1237-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1238 -> 0.0025s1239-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1240 -> 0.0030s1241-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1242 -> 0.0023s1243-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1244 -> 0.0024s1245-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1246 -> 0.0021s1247-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1248 -> 0.0024s1249-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1250 -> 0.0026s1251-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1252 -> 0.0025s1253-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1254 -> 0.0025s1255-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1256 -> 0.0024s1257-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1258 -> 0.0027s1259-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1260 -> 0.0025s1261-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1262 -> 0.0025s1263-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1264 -> 0.0023s1265-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1266 -> 0.0025s1267-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1268 -> 0.0029s1269-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1270 -> 0.0027s1271-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1272 -> 0.0024s1273-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1274 -> 0.0029s1275-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1276 -> 0.0031s1277-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1278 -> 0.0027s1279-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1280 -> 0.0030s1281-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1282 -> 0.0032s1283-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1284 -> 0.0026s1285-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1286 -> 0.0027s1287-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1288 -> 0.0027s1289-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1290 -> 0.0029s1291-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1292 -> 0.0026s1293-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1294 -> 0.0025s1295-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1296 -> 0.0029s1297-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1298 -> 0.0028s1299-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1300 -> 0.0026s1301-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1302 -> 0.0029s1303-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1304 -> 0.0029s1305-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1306 -> 0.0026s1307-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1308 -> 0.0028s1309-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1310 -> 0.0027s1311-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1312 -> 0.0027s1313-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1314 -> 0.0025s1315-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1316 -> 0.0027s1317-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1318 -> 0.0029s1319-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1320 -> 0.0030s1321-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1322 -> 0.0028s1323-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1324 -> 0.0025s1325-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1326 -> 0.0031s1327-- add_foreign_key("personal_access_tokens", "users")1328 -> 0.0027s1329-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1330 -> 0.0029s1331-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1332 -> 0.0026s1333-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1334 -> 0.0029s1335-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1336 -> 0.0041s1337-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1338 -> 0.0030s1339-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1340 -> 0.0027s1341-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1342 -> 0.0028s1343-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1344 -> 0.0039s1345-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1346 -> 0.0032s1347-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1348 -> 0.0030s1349-- add_foreign_key("project_mirror_data", "projects", {:on_delete=>:cascade})1350 -> 0.0030s1351-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1352 -> 0.0031s1353-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1354 -> 0.0030s1355-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1356 -> 0.0026s1357-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1358 -> 0.0023s1359-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1360 -> 0.0028s1361-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id"})1362 -> 0.0026s1363-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1364 -> 0.0025s1365-- add_foreign_key("protected_tag_create_access_levels", "users")1366 -> 0.0031s1367-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1368 -> 0.0028s1369-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1370 -> 0.0027s1371-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1372 -> 0.0029s1373-- add_foreign_key("remote_mirrors", "projects", {:on_delete=>:cascade})1374 -> 0.0029s1375-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1376 -> 0.0030s1377-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1378 -> 0.0031s1379-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1380 -> 0.0023s1381-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1382 -> 0.0025s1383-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1384 -> 0.0029s1385-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1386 -> 0.0029s1387-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1388 -> 0.0029s1389-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1390 -> 0.0028s1391-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1392 -> 0.0025s1393-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1394 -> 0.0024s1395-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1396 -> 0.0027s1397-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1398 -> 0.0026s1399-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1400 -> 0.0028s1401-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1402 -> 0.0030s1403-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1404 -> 0.0025s1405-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1406 -> 0.0029s1407-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1408 -> 0.0028s1409-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1410 -> 0.0026s1411-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1412 -> 0.0028s1413-- add_foreign_key("u2f_registrations", "users")1414 -> 0.0026s1415-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1416 -> 0.0030s1417-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1418 -> 0.0028s1419-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1420 -> 0.0030s1421-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1422 -> 0.0029s1423-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1424 -> 0.0029s1425-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1426 -> 0.0027s1427-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1428 -> 0.0028s1429-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1430 -> 0.0029s1431-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1432 -> 0.0032s1433-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1434 -> 0.0029s1435-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1436 -> 0.0032s1437-- initialize_schema_migrations_table()1438 -> 0.0316s1439$ date1440Sat Oct 27 12:57:41 UTC 20181441$ JOB_NAME=( $CI_JOB_NAME )1442$ export CI_NODE_INDEX=${JOB_NAME[-2]}1443$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1444$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1445$ export KNAPSACK_GENERATE_REPORT=true1446$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1447$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1448$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1449$ export FLAKY_RSPEC_GENERATE_REPORT=true1450$ export CACHE_CLASSES=true1451$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1452$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1453$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1454$ scripts/gitaly-test-spawn1455Checking gitaly-ruby bundle...1456The Gemfile's dependencies are satisfied1457Trying to connect to gitaly: ..... OK1458$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml"1459Report specs:1460spec/models/merge_request_spec.rb1461spec/services/auth/container_registry_authentication_service_spec.rb1462spec/features/task_lists_spec.rb1463spec/services/ci/process_pipeline_service_spec.rb1464spec/features/issues/filtered_search/dropdown_assignee_spec.rb1465spec/controllers/projects/notes_controller_spec.rb1466spec/models/concerns/resolvable_discussion_spec.rb1467spec/services/projects/import_service_spec.rb1468spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb1469spec/features/users/overview_spec.rb1470spec/policies/group_policy_spec.rb1471spec/rack_servers/puma_spec.rb1472spec/features/issuables/discussion_lock_spec.rb1473spec/lib/gitlab/diff/file_spec.rb1474spec/features/boards/new_issue_spec.rb1475spec/features/merge_requests/user_lists_merge_requests_spec.rb1476spec/controllers/projects/merge_requests/conflicts_controller_spec.rb1477spec/features/projects/labels/update_prioritization_spec.rb1478spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb1479spec/models/project_services/hipchat_service_spec.rb1480spec/models/concerns/mentionable_spec.rb1481spec/lib/gitlab/data_builder/note_spec.rb1482spec/features/profiles/active_sessions_spec.rb1483spec/controllers/sessions_controller_spec.rb1484spec/models/concerns/avatarable_spec.rb1485spec/features/merge_request/user_sees_discussions_spec.rb1486spec/controllers/snippets_controller_spec.rb1487spec/models/ci/group_spec.rb1488spec/features/projects/files/undo_template_spec.rb1489spec/features/boards/reload_boards_on_browser_back_spec.rb1490spec/controllers/projects/pages_domains_controller_spec.rb1491spec/controllers/projects/boards_controller_spec.rb1492spec/features/projects/remote_mirror_spec.rb1493spec/services/clusters/gcp/finalize_creation_service_spec.rb1494spec/services/ci/stop_environments_service_spec.rb1495spec/features/projects/services/user_activates_slack_slash_command_spec.rb1496spec/lib/gitlab/background_migration/populate_fork_networks_range_spec.rb1497spec/features/boards/keyboard_shortcut_spec.rb1498spec/models/route_spec.rb1499spec/controllers/projects/mirrors_controller_spec.rb1500spec/lib/gitlab/multi_collection_paginator_spec.rb1501spec/features/atom/issues_spec.rb1502spec/services/search/global_service_spec.rb1503spec/features/projects/milestones/user_interacts_with_labels_spec.rb1504spec/services/search/snippet_service_spec.rb1505spec/models/concerns/each_batch_spec.rb1506spec/services/users/build_service_spec.rb1507spec/lib/gitlab/plugin_spec.rb1508spec/lib/gitlab/url_builder_spec.rb1509spec/lib/gitlab/badge/coverage/metadata_spec.rb1510spec/serializers/deploy_key_entity_spec.rb1511spec/models/ci/build_trace_chunks/database_spec.rb1512spec/features/projects/services/disable_triggers_spec.rb1513spec/workers/auto_devops/disable_worker_spec.rb1514spec/helpers/merge_requests_helper_spec.rb1515spec/models/project_auto_devops_spec.rb1516spec/lib/gitlab/ci/config/external/mapper_spec.rb1517spec/migrations/remove_orphaned_label_links_spec.rb1518spec/policies/deploy_key_policy_spec.rb1519spec/features/snippets/public_snippets_spec.rb1520spec/services/milestones/close_service_spec.rb1521spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb1522spec/helpers/button_helper_spec.rb1523spec/services/tags/create_service_spec.rb1524spec/config/mail_room_spec.rb1525spec/features/groups/settings/ci_cd_spec.rb1526spec/services/projects/enable_deploy_key_service_spec.rb1527spec/migrations/issues_moved_to_id_foreign_key_spec.rb1528spec/features/security/admin_access_spec.rb1529spec/models/ci/build_metadata_spec.rb1530spec/lib/gitlab/import_export/wiki_restorer_spec.rb1531spec/controllers/profiles/notifications_controller_spec.rb1532spec/controllers/import/fogbugz_controller_spec.rb1533spec/services/verify_pages_domain_service_spec.rb1534spec/services/wiki_pages/create_service_spec.rb1535spec/services/protected_branches/create_service_spec.rb1536spec/features/groups/labels/edit_spec.rb1537spec/controllers/oauth/authorizations_controller_spec.rb1538spec/features/projects/files/files_sort_submodules_with_folders_spec.rb1539spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb1540spec/lib/gitlab/gitaly_client_spec.rb1541spec/policies/issuable_policy_spec.rb1542spec/views/shared/projects/_project.html.haml_spec.rb1543spec/controllers/dashboard/groups_controller_spec.rb1544spec/lib/gitlab/ci/build/credentials/factory_spec.rb1545spec/lib/gitlab/background_migration/rollback_import_state_data_spec.rb1546spec/requests/api/avatar_spec.rb1547spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb1548spec/lib/system_check/orphans/repository_check_spec.rb1549spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb1550spec/lib/gitlab/import/database_helpers_spec.rb1551spec/services/protected_tags/create_service_spec.rb1552spec/features/read_only_spec.rb1553spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb1554spec/rubocop/cop/migration/timestamps_spec.rb1555spec/models/lfs_object_spec.rb1556spec/lib/gitlab/metrics/methods_spec.rb1557spec/models/broadcast_message_spec.rb1558spec/lib/gitlab/manifest_import/manifest_spec.rb1559spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb1560spec/models/user_status_spec.rb1561spec/services/create_snippet_service_spec.rb1562spec/lib/gitlab/github_import/representation/issue_spec.rb1563spec/services/emails/confirm_service_spec.rb1564spec/rubocop/cop/ruby_interpolation_in_translation_spec.rb1565spec/lib/gitlab/auth/blocked_user_tracker_spec.rb1566spec/lib/backup/manager_spec.rb1567spec/db/production/import_common_metrics_spec.rb1568spec/rubocop/cop/migration/update_column_in_batches_spec.rb1569spec/helpers/page_layout_helper_spec.rb1570spec/lib/bitbucket/representation/pull_request_spec.rb1571spec/policies/base_policy_spec.rb1572spec/controllers/concerns/internal_redirect_spec.rb1573spec/lib/gitlab/health_checks/redis/queues_check_spec.rb1574spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb1575spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb1576spec/lib/gitlab/request_forgery_protection_spec.rb1577spec/models/chat_team_spec.rb1578spec/models/project_services/chat_message/wiki_page_message_spec.rb1579spec/lib/gitlab/cycle_analytics/test_stage_spec.rb1580spec/validators/js_regex_validator_spec.rb1581spec/migrations/move_system_upload_folder_spec.rb1582spec/lib/gitlab/kubernetes/namespace_spec.rb1583spec/lib/gitlab/ci/config/external/file/base_spec.rb1584spec/lib/container_registry/client_spec.rb1585spec/lib/bitbucket/representation/comment_spec.rb1586spec/lib/banzai/cross_project_reference_spec.rb1587spec/lib/gitlab/sentry_spec.rb1588spec/lib/gitlab/ci/mask_secret_spec.rb1589spec/lib/gitlab/kubernetes/helm/base_command_spec.rb1590spec/lib/gitlab/ci/config/entry/paths_spec.rb1591spec/lib/gitlab/ci_access_spec.rb1592spec/lib/gitlab/import_export/hash_util_spec.rb1593spec/workers/plugin_worker_spec.rb1594spec/lib/gitlab/kubernetes/role_binding_spec.rb1595spec/serializers/project_mirror_serializer_spec.rb1596spec/graphql/types/permission_types/merge_request_type_spec.rb1597spec/uploaders/uploader_helper_spec.rb1598Leftover specs:1599warning: parser/current is loading parser/ruby24, which recognizes1600warning: 2.4.4-compliant syntax, but you are running 2.4.5.1601warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.1602Knapsack report generator started!1603==> Setting up GitLab Shell...1604 GitLab Shell set up in 0.099180469 seconds...1605==> Setting up Gitaly...1606 Gitaly set up in 0.000247833 seconds...1607MergeRequest1608 associations1609 should belong to target_project class_name => Project1610 should belong to source_project class_name => Project1611 should belong to merge_user class_name => User1612 should belong to assignee1613 should have many merge_request_diffs1614 #squash_in_progress?1615 when Gitaly squash_in_progress is enabled1616 behaves like checking whether a squash is in progress1617Preparing worktree (detached HEAD b83d6e3)1618HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1619 returns true when there is a current squash directory1620Preparing worktree (detached HEAD b83d6e3)1621HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1622 returns false when there is no squash directory1623Preparing worktree (detached HEAD b83d6e3)1624HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1625 returns false when the squash directory has expired1626Preparing worktree (detached HEAD b83d6e3)1627HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1628 returns false when the source project has been removed1629 when Gitaly squash_in_progress is disabled1630 behaves like checking whether a squash is in progress1631Preparing worktree (detached HEAD b83d6e3)1632HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1633 returns true when there is a current squash directory1634Preparing worktree (detached HEAD b83d6e3)1635HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1636 returns false when there is no squash directory1637Preparing worktree (detached HEAD b83d6e3)1638HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1639 returns false when the squash directory has expired1640Preparing worktree (detached HEAD b83d6e3)1641HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'1642 returns false when the source project has been removed1643 #squash?1644 disabled in database1645 should be falsy1646 enabled in database1647 should be truthy1648 modules1649 should includes the Issuable module1650 should includes the Referable module1651 should includes the Sortable module1652 should includes the Taskable module1653 behaves like AtomicInternalId1654 .has_internal_id1655 Module inclusion1656 should includes the AtomicInternalId module1657 Validation1658 when presence validation is required1659 validates presence1660 when presence validation is not required1661 does not validate presence (PENDING: No reason given)1662 Creating an instance1663 saves a new instance properly1664 internal id generation1665 calls InternalId.generate_next and sets internal id attribute1666 does not overwrite an existing internal id1667 when the instance has an internal ID set1668 calls InternalId.update_last_value and sets the `last_value` to that of the instance1669 validation1670 should validate that :target_branch cannot be empty/falsy1671 should validate that :source_branch cannot be empty/falsy1672 Validation of merge user with Merge When Pipeline Succeeds1673 allows user to be nil when the feature is disabled1674 is invalid without merge user1675 is valid with merge user1676 for forks1677 allows merge requests for sibling-forks1678 callbacks1679 #ensure_merge_request_metrics1680 creates metrics after saving1681 does not duplicate metrics for a merge request1682 respond to1683 should respond to #unchecked?1684 should respond to #can_be_merged?1685 should respond to #cannot_be_merged?1686 should respond to #merge_params1687 should respond to #merge_when_pipeline_succeeds1688 .by_commit_sha1689 with sha contained in latest merge request diff1690 returns merge requests1691 with sha contained not in latest merge request diff1692 returns empty requests1693 with sha not contained in1694 returns empty result1695 .in_projects1696 returns the merge requests for a set of projects1697 .set_latest_merge_request_diff_ids!1698 sets IDs for merge requests, whether they are already set or not1699 #target_branch_sha1700 returns memoized value1701 when the target branch does not exist1702 returns nil1703 #card_attributes1704 includes the author name1705 includes the assignee name1706 #assignee_ids1707 returns an array of the assigned user id1708 #assignee_ids=1709 sets assignee_id to the last id in the array1710 #assignee_or_author?1711 returns true for a user that is assigned to a merge request1712 returns true for a user that is the author of a merge request1713 returns false for a user that is not the assignee or author1714 #visible_closing_issues_for1715 shows only allowed issues to guest1716 shows only allowed issues to developer1717 when external issue tracker is enabled1718 calls non #closes_issues to retrieve data1719 #cache_merge_request_closes_issues!1720 caches closed issues1721 does not cache closed issues when merge request is closed1722 does not cache closed issues when merge request is merged1723 when both internal and external issue trackers are enabled1724 does not cache issues from external trackers1725 caches an internal issue1726 when only external issue tracker enabled1727 does not cache issues from external trackers1728 does not cache an internal issue1729 #source_branch_sha1730 returns memoized value1731 with diffs1732 returns the sha of the source branch last commit1733 without diffs1734 returns the sha of the source branch last commit1735 when there is a tag name matching the branch name1736 returns the sha of the source branch last commit1737 when the merge request is being created1738 returns nil1739 #to_reference1740 returns a String reference to the object1741 supports a cross-project reference1742 returns a String reference with the full path1743 #raw_diffs1744 when there are MR diffs1745 delegates to the MR diffs1746 when there are no MR diffs1747 delegates to the compare object1748 #diffs1749 when there are MR diffs1750 delegates to the MR diffs1751 when there are no MR diffs1752 delegates to the compare object, setting expanded: true1753 #diff_size1754 when there are MR diffs1755 returns the correct count1756 returns the correct overflow count1757 does not perform highlighting1758 when there are no MR diffs1759 returns the correct count1760 returns the correct overflow count1761 does not perform highlighting1762 #related_notes1763 includes notes for commits1764 includes notes for commits from target project as well1765 #for_fork?1766 returns true if the merge request is for a fork1767 returns false if is not for a fork1768 #closes_issues1769 accesses the set of issues that will be closed on acceptance1770 only lists issues as to be closed if it targets the default branch1771 #issues_mentioned_but_not_closing1772 detects issues mentioned in description but not closed1773 when the project has an external issue tracker1774 detects issues mentioned in description but not closed1775 #work_in_progress?1776 detects the 'WIP ' prefix1777 detects the 'WIP:' prefix1778 detects the 'WIP: ' prefix1779 detects the '[WIP]' prefix1780 detects the '[WIP] ' prefix1781 detects the ' [WIP] WIP [WIP] WIP: WIP ' prefix1782 doesn't detect WIP for words starting with WIP1783 doesn't detect WIP for words containing with WIP1784 doesn't detect WIP by default1785 #wipless_title1786 removes the 'WIP ' prefix1787 is satisfies the #work_in_progress? method1788 removes the 'WIP:' prefix1789 is satisfies the #work_in_progress? method1790 removes the 'WIP: ' prefix1791 is satisfies the #work_in_progress? method1792 removes the '[WIP]' prefix1793 is satisfies the #work_in_progress? method1794 removes the '[WIP] ' prefix1795 is satisfies the #work_in_progress? method1796 removes the '[WIP] WIP [WIP] WIP: WIP ' prefix1797 is satisfies the #work_in_progress? method1798 #wip_title1799 adds the WIP: prefix to the title1800 does not add the WIP: prefix multiple times1801 is satisfies the #work_in_progress? method1802 #can_remove_source_branch?1803 can't be removed when its a protected branch1804 can't remove a root ref1805 is unable to remove the source branch for a project the user cannot push to1806 can be removed if the last commit is the head of the source branch1807 cannot be removed if the last commit is not also the head of the source branch1808 #merge_commit_message1809 includes merge information as the title1810 includes its title in the body1811 includes its closed issues in the body1812 includes its reference in the body1813 excludes multiple linebreak runs when description is blank1814 includes its description in the body1815 does not includes its description in the body1816 #reset_merge_when_pipeline_succeeds1817 sets the item to false1818 #hook_attrs1819 delegates to Gitlab::HookData::MergeRequestBuilder#build1820 #diverged_commits_count1821 when the target branch does not exist anymore1822 does not crash1823 returns 01824 diverged on same repository1825 counts commits that are on target branch but not on source branch1826 diverged on fork1827 counts commits that are on target branch but not on source branch1828 rebased on fork1829 counts commits that are on target branch but not on source branch1830 caching1831 caches the output1832 invalidates the cache when the source sha changes1833 invalidates the cache when the target sha changes1834 behaves like an editable mentionable1835 creates new cross-reference notes when the mentionable text is edited1836 behaves like a mentionable1837 generates a descriptive back-reference1838 extracts references from its reference property1839 creates cross-reference notes1840 behaves like a Taskable1841 with multiple tasks1842 returns the correct task status1843 #tasks?1844 returns true when object has tasks1845 returns false when object has no tasks1846 with nested tasks1847 returns the correct task status1848 with an incomplete task1849 returns the correct task status1850 with tasks that are not formatted correctly1851 returns the correct task status1852 with a complete task1853 returns the correct task status1854 #commit_shas1855 delegates to merge request diff1856 head pipeline1857 #head_pipeline1858 returns nil for MR without head_pipeline_id1859 when the source project does not exist1860 returns nil1861 #actual_head_pipeline1862 returns nil for MR with old pipeline1863 returns the pipeline for MR with recent pipeline1864 returns nil when source project does not exist1865 #has_ci?1866 has ci1867 returns true if MR has head_pipeline_id and commits1868 returns true if MR has any pipeline and commits1869 returns true if MR has CI service and commits1870 has no ci1871 returns false if MR has no CI service nor pipeline, and no commits1872 #all_pipelines1873 with single merge_request_diffs1874 behaves like returning pipelines with proper ordering1875 returns all pipelines1876 with multiple irrelevant merge_request_diffs1877 behaves like returning pipelines with proper ordering1878 returns all pipelines1879 with unsaved merge request1880 returns pipelines from diff_head_sha1881 #has_test_reports?1882 when head pipeline has test reports1883 should be truthy1884 when head pipeline does not have test reports1885 should be falsey1886 #compare_test_reports1887 when head pipeline has test reports1888 when reactive cache worker is parsing asynchronously1889 returns status1890 when reactive cache worker is inline1891 returns status and data1892 when cached results is not latest1893 raises and InvalidateReactiveCache error1894 when head pipeline does not have test reports1895 returns status and error message1896 #all_commit_shas1897 when merge request is persisted1898 with a completely different branch1899 behaves like returning all SHA1900 returns all SHAs from all merge_request_diffs1901 with a branch having no difference1902 behaves like returning all SHA1903 returns all SHAs from all merge_request_diffs1904 when merge request is not persisted1905 when compare commits are set in the service1906 returns commits from compare commits temporary data1907 when compare commits are not set in the service1908 returns array with diff head sha element only1909 #short_merge_commit_sha1910 returns short id when there is a merge_commit_sha1911 returns nil when there is no merge_commit_sha1912 #can_be_reverted?1913 when there is no merge_commit for the MR1914 returns false1915 when the MR has been merged1916 when there is no revert commit1917 returns true1918 when there is no merged_at for the MR1919 returns true1920 when there is a revert commit1921 but merged at timestamp cannot be found1922 returns false1923 when the revert commit is mentioned in a note after the MR was merged1924 returns false1925 when there is no merged_at for the MR1926 returns false1927 when the revert commit is mentioned in a note just before the MR was merged1928 returns false1929 when the revert commit is mentioned in a note long before the MR was merged1930 returns true1931 #merged_at1932 when MR is not merged1933 returns nil1934 when metrics has merged_at data1935 returns metrics merged_at1936 when merged event is persisted, but no metrics merged_at is persisted1937 returns merged event creation date1938 when merging note is persisted, but no metrics or merge event exists1939 returns merging note creation date1940 #participants1941 includes the merge request author1942 includes the authors of the notes1943 cached counts1944 updates when assignees change1945 #merge_async1946 enqueues MergeWorker job and updates merge_jid1947 #check_if_can_be_merged1948 when merge_status is unchecked1949 behaves like checking if can be merged1950 when it is not broken and has no conflicts1951 is marked as mergeable1952 when broken1953 becomes unmergeable1954 when it has conflicts1955 becomes unmergeable1956 when merge_status is unchecked1957 behaves like checking if can be merged1958 when it is not broken and has no conflicts1959 is marked as mergeable1960 when broken1961 becomes unmergeable1962 when it has conflicts1963 becomes unmergeable1964 #mergeable?1965 returns false if #mergeable_state? is false1966 return true if #mergeable_state? is true and the MR #can_be_merged? is true1967 #mergeable_state?1968 checks if merge request can be merged1969 when not open1970 returns false1971 when working in progress1972 returns false1973 when broken1974 returns false1975 when failed1976 when #mergeable_ci_state? is false1977 returns false1978 when #mergeable_discussions_state? is false1979 returns false1980 returns true when skipping discussions check1981 #mergeable_ci_state?1982 when it is only allowed to merge when build is green1983 and a failed pipeline is associated1984 should be falsey1985 and a successful pipeline is associated1986 should be truthy1987 and a skipped pipeline is associated1988 should be truthy1989 when no pipeline is associated1990 should be truthy1991 when merges are not restricted to green builds1992 and a failed pipeline is associated1993 should be truthy1994 when no pipeline is associated1995 should be truthy1996 #mergeable_discussions_state?1997 when project.only_allow_merge_if_all_discussions_are_resolved == true1998 with all discussions resolved1999 returns true2000 with unresolved discussions2001 returns false2002 with no discussions2003 returns true2004 when project.only_allow_merge_if_all_discussions_are_resolved == false2005 with unresolved discussions2006 returns true2007 #environments_for2008 with multiple environments2009 selects deployed environments2010 with environments on source project2011 selects deployed environments2012 with environments on target project2013 selects deployed environments2014 without a diff_head_commit2015 returns an empty array2016 #reload_diff2017 calls MergeRequests::ReloadDiffsService#execute with correct params2018 when using the after_update hook to update2019 when the branches are updated2020 uses the new heads to generate the diff2021 #update_diff_discussion_positions2022 updates diff discussion positions2023 when resolve_outdated_diff_discussions is set2024 calls MergeRequests::ResolvedDiscussionNotificationService2025 #branch_merge_base_commit2026 source and target branch exist2027 should eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2028 should be a kind of Commit2029 when the target branch does not exist2030 returns nil2031 #diff_refs2032 with diffs2033 does not touch the repository2034 returns expected diff_refs2035 #source_project_missing?2036 when the fork exists2037 should be falsey2038 when the source project is the same as the target project2039 should be falsey2040 when the fork does not exist2041 returns true2042 #merge_ongoing?2043 returns true when the merge request is locked2044 returns true when merge_id, MR is not merged and it has no running job2045 returns false when merge_jid is nil2046 returns false if MR is merged2047 returns false if there is no merge job running2048 #closed_without_fork?2049 when the merge request is closed2050 returns false if the fork exist2051 returns true if the fork does not exist2052 when the merge request is open2053 returns false2054 #reopenable?2055 when the merge request is closed2056 returns true2057 forked project2058 returns false if unforked2059 returns false if the source project is deleted2060 returns false if the merge request is merged2061 when the merge request is opened2062 returns false2063 #mergeable_with_quick_action?2064 when autocomplete_precheck is set to true2065 is mergeable by developer2066 is not mergeable by normal user2067 when autocomplete_precheck is set to false2068 is mergeable by developer2069 is not mergeable by normal user2070 closed MR2071 is not mergeable2072 MR with WIP2073 is not mergeable2074 sha differs from the MR diff_head_sha2075 is not mergeable2076 sha is not provided2077 is not mergeable2078 with pipeline ok2079 is mergeable2080 with failing pipeline2081 is not mergeable2082 with running pipeline2083 is mergeable2084 #base_pipeline2085 returns latest pipeline2086 #has_commits?2087 returns true when merge request diff has commits2088 #has_no_commits?2089 returns true when merge request diff has 0 commits2090 #merge_request_diff_for2091 runs a single query on the initial call, and none afterwards2092 with diff refs2093 returns the diffs2094 with a commit SHA2095 returns the diffs2096 #version_params_for2097 when the diff refs are for an older merge request version2098 returns the diff ID for the version to show2099 when the diff refs are for a comparison between merge request versions2100 returns the diff ID and start sha of the versions to compare2101 when the diff refs are not for a merge request version2102 returns nil2103 #fetch_ref!2104 fetches the ref correctly2105 removing a merge request2106 refreshes the number of open merge requests of the target project2107 behaves like throttled touch2108 #touch2109 updates the updated_at timestamp2110 updates the object at most once per minute2111 state machine transitions2112 #unlock_mr2113 updates merge request head pipeline and sets merge_jid to nil2114 transition to cannot_be_merged2115 opened2116 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2117 notifies conflict, whenever newly unmergeable2118 does not notify whenever merge request is newly unmergeable due to other reasons2119 locked2120 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2121 notifies conflict, whenever newly unmergeable2122 does not notify whenever merge request is newly unmergeable due to other reasons2123 closed2124 does not notify2125 merged2126 does not notify2127 source branch is missing2128 does not raise error2129 check_state?2130 indicates whether MR is still checking for mergeability2131 #should_be_rebased?2132 returns false for the same source and target branches2133 #rebase_in_progress?2134 when Gitaly rebase_in_progress is enabled2135 behaves like checking whether a rebase is in progress2136Preparing worktree (detached HEAD b83d6e3)2137HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2138 returns true when there is a current rebase directory2139Preparing worktree (detached HEAD b83d6e3)2140HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2141 returns false when there is no rebase directory2142Preparing worktree (detached HEAD b83d6e3)2143HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2144 returns false when the rebase directory has expired2145Preparing worktree (detached HEAD b83d6e3)2146HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2147 returns false when the source project has been removed2148 when Gitaly rebase_in_progress is enabled2149 behaves like checking whether a rebase is in progress2150Preparing worktree (detached HEAD b83d6e3)2151HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2152 returns true when there is a current rebase directory2153Preparing worktree (detached HEAD b83d6e3)2154HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2155 returns false when there is no rebase directory2156Preparing worktree (detached HEAD b83d6e3)2157HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2158 returns false when the rebase directory has expired2159Preparing worktree (detached HEAD b83d6e3)2160HEAD is now at b83d6e3 Merge branch 'branch-merged' into 'master'2161 returns false when the source project has been removed2162 #allow_collaboration2163 is false when pushing by a maintainer is not possible2164 is true when pushing by a maintainer is possible2165 #collaborative_push_possible?2166 does not allow maintainer to push if the source project is the same as the target2167 allows maintainer to push when both source and target are public2168 is not available for protected branches2169 #can_allow_collaboration?2170 is false if the user does not have push access to the source project2171 is true when the user has push access to the source project2172 #merge_participants2173 contains author2174 when merge_when_pipeline_succeeds? is true2175 when merge user is author2176 contains author only2177 when merge user and author are different users2178 contains author and merge user2179Auth::ContainerRegistryAuthenticationService2180 #full_access_token2181 behaves like an accessible2182 has the correct scope2183 behaves like a valid token2184 should include :token2185 should include "access"2186 a expirable2187 for default configuration2188 should not be within 2 of 2018-10-27 13:10:32 +00002189 for changed configuration2190 should be within 2 of 2018-10-27 13:10:33 +00002191 behaves like not a container repository factory2192 does not create a new container repository resource2193 user authorization2194 for registry catalog2195 disallow browsing for users without GitLab admin rights2196 behaves like an inaccessible2197 should include {"access" => []}2198 behaves like a valid token2199 should include :token2200 should include "access"2201 a expirable2202 for default configuration2203 should not be within 2 of 2018-10-27 13:10:33 +00002204 for changed configuration2205 should be within 2 of 2018-10-27 13:10:33 +00002206 behaves like not a container repository factory2207 does not create a new container repository resource2208 for private project2209 allow to use scope-less authentication2210 behaves like a valid token2211 should include :token2212 should include "access"2213 a expirable2214 for default configuration2215 should not be within 2 of 2018-10-27 13:10:33 +00002216 for changed configuration2217 should be within 2 of 2018-10-27 13:10:33 +00002218 allow developer to push images2219 behaves like a pushable2220 behaves like an accessible2221 has the correct scope2222 behaves like a valid token2223 should include :token2224 should include "access"2225 a expirable2226 for default configuration2227 should not be within 2 of 2018-10-27 13:10:35 +00002228 for changed configuration2229 should be within 2 of 2018-10-27 13:10:35 +00002230 behaves like container repository factory2231 creates a new container repository resource2232 disallow developer to delete images2233 behaves like an inaccessible2234 should include {"access" => []}2235 behaves like a valid token2236 should include :token2237 should include "access"2238 a expirable2239 for default configuration2240 should not be within 2 of 2018-10-27 13:10:36 +00002241 for changed configuration2242 should be within 2 of 2018-10-27 13:10:37 +00002243 behaves like not a container repository factory2244 does not create a new container repository resource2245 allow reporter to pull images2246 when pulling from root level repository2247 behaves like a pullable2248 behaves like an accessible2249 has the correct scope2250 behaves like a valid token2251 should include :token2252 should include "access"2253 a expirable2254 for default configuration2255 should not be within 2 of 2018-10-27 13:10:38 +00002256 for changed configuration2257 should be within 2 of 2018-10-27 13:10:38 +00002258 behaves like not a container repository factory2259 does not create a new container repository resource2260 disallow reporter to delete images2261 behaves like an inaccessible2262 should include {"access" => []}2263 behaves like a valid token2264 should include :token2265 should include "access"2266 a expirable2267 for default configuration2268 should not be within 2 of 2018-10-27 13:10:40 +00002269 for changed configuration2270 should be within 2 of 2018-10-27 13:10:40 +00002271 behaves like not a container repository factory2272 does not create a new container repository resource2273 return a least of privileges2274 behaves like a pullable2275 behaves like an accessible2276 has the correct scope2277 behaves like a valid token2278 should include :token2279 should include "access"2280 a expirable2281 for default configuration2282 should not be within 2 of 2018-10-27 13:10:42 +00002283 for changed configuration2284 should be within 2 of 2018-10-27 13:10:42 +00002285 behaves like not a container repository factory2286 does not create a new container repository resource2287 disallow guest to pull or push images2288 behaves like an inaccessible2289 should include {"access" => []}2290 behaves like a valid token2291 should include :token2292 should include "access"2293 a expirable2294 for default configuration2295 should not be within 2 of 2018-10-27 13:10:43 +00002296 for changed configuration2297 should be within 2 of 2018-10-27 13:10:44 +00002298 behaves like not a container repository factory2299 does not create a new container repository resource2300 disallow guest to delete images2301 behaves like an inaccessible2302 should include {"access" => []}2303 behaves like a valid token2304 should include :token2305 should include "access"2306 a expirable2307 for default configuration2308 should not be within 2 of 2018-10-27 13:10:45 +00002309 for changed configuration2310 should be within 2 of 2018-10-27 13:10:45 +00002311 behaves like not a container repository factory2312 does not create a new container repository resource2313 for public project2314 allow anyone to pull images2315 behaves like a pullable2316 behaves like an accessible2317 has the correct scope2318 behaves like a valid token2319 should include :token2320 should include "access"2321 a expirable2322 for default configuration2323 should not be within 2 of 2018-10-27 13:10:47 +00002324 for changed configuration2325 should be within 2 of 2018-10-27 13:10:47 +00002326 behaves like not a container repository factory2327 does not create a new container repository resource2328 disallow anyone to push images2329 behaves like an inaccessible2330 should include {"access" => []}2331 behaves like a valid token2332 should include :token2333 should include "access"2334 a expirable2335 for default configuration2336 should not be within 2 of 2018-10-27 13:10:49 +00002337 for changed configuration2338 should be within 2 of 2018-10-27 13:10:49 +00002339 behaves like not a container repository factory2340 does not create a new container repository resource2341 disallow anyone to delete images2342 behaves like an inaccessible2343 should include {"access" => []}2344 behaves like a valid token2345 should include :token2346 should include "access"2347 a expirable2348 for default configuration2349 should not be within 2 of 2018-10-27 13:10:50 +00002350 for changed configuration2351 should be within 2 of 2018-10-27 13:10:50 +00002352 behaves like not a container repository factory2353 does not create a new container repository resource2354 when repository name is invalid2355 behaves like an inaccessible2356 should include {"access" => []}2357 behaves like a valid token2358 should include :token2359 should include "access"2360 a expirable2361 for default configuration2362 should not be within 2 of 2018-10-27 13:10:50 +00002363 for changed configuration2364 should be within 2 of 2018-10-27 13:10:51 +00002365 behaves like not a container repository factory2366 does not create a new container repository resource2367 for internal project2368 for internal user2369 allow anyone to pull images2370 behaves like a pullable2371 behaves like an accessible2372 has the correct scope2373 behaves like a valid token2374 should include :token2375 should include "access"2376 a expirable2377 for default configuration2378 should not be within 2 of 2018-10-27 13:10:52 +00002379 for changed configuration2380 should be within 2 of 2018-10-27 13:10:52 +00002381 behaves like not a container repository factory2382 does not create a new container repository resource2383 disallow anyone to push images2384 behaves like an inaccessible2385 should include {"access" => []}2386 behaves like a valid token2387 should include :token2388 should include "access"2389 a expirable2390 for default configuration2391 should not be within 2 of 2018-10-27 13:10:53 +00002392 for changed configuration2393 should be within 2 of 2018-10-27 13:10:53 +00002394 behaves like not a container repository factory2395 does not create a new container repository resource2396 disallow anyone to delete images2397 behaves like an inaccessible2398 should include {"access" => []}2399 behaves like a valid token2400 should include :token2401 should include "access"2402 a expirable2403 for default configuration2404 should not be within 2 of 2018-10-27 13:10:54 +00002405 for changed configuration2406 should be within 2 of 2018-10-27 13:10:55 +00002407 behaves like not a container repository factory2408 does not create a new container repository resource2409 for external user2410 disallow anyone to pull or push images2411 behaves like an inaccessible2412 should include {"access" => []}2413 behaves like a valid token2414 should include :token2415 should include "access"2416 a expirable2417 for default configuration2418 should not be within 2 of 2018-10-27 13:10:56 +00002419 for changed configuration2420 should be within 2 of 2018-10-27 13:10:56 +00002421 behaves like not a container repository factory2422 does not create a new container repository resource2423 disallow anyone to delete images2424 behaves like an inaccessible2425 should include {"access" => []}2426 behaves like a valid token2427 should include :token2428 should include "access"2429 a expirable2430 for default configuration2431 should not be within 2 of 2018-10-27 13:10:57 +00002432 for changed configuration2433 should be within 2 of 2018-10-27 13:10:57 +00002434 behaves like not a container repository factory2435 does not create a new container repository resource2436 delete authorized as maintainer2437 behaves like a valid token2438 should include :token2439 should include "access"2440 a expirable2441 for default configuration2442 should not be within 2 of 2018-10-27 13:10:58 +00002443 for changed configuration2444 should be within 2 of 2018-10-27 13:10:59 +00002445 allow to delete images2446 behaves like a deletable2447 behaves like an accessible2448 has the correct scope2449 behaves like a valid token2450 should include :token2451 should include "access"2452 a expirable2453 for default configuration2454 should not be within 2 of 2018-10-27 13:11:00 +00002455 for changed configuration2456 should be within 2 of 2018-10-27 13:11:00 +00002457 build authorized as user2458 allow to use offline_token2459 behaves like an authenticated2460 should include :token2461 should include "access"2462 behaves like a valid token2463 should include :token2464 should include "access"2465 a expirable2466 for default configuration2467 should not be within 2 of 2018-10-27 13:11:01 +00002468 for changed configuration2469 should be within 2 of 2018-10-27 13:11:02 +00002470 allow to pull and push images2471 behaves like a pullable and pushable2472 behaves like an accessible2473 has the correct scope2474 behaves like a valid token2475 should include :token2476 should include "access"2477 a expirable2478 for default configuration2479 should not be within 2 of 2018-10-27 13:11:03 +00002480 for changed configuration2481 should be within 2 of 2018-10-27 13:11:03 +00002482 behaves like container repository factory2483 creates a new container repository resource2484 disallow to delete images2485 behaves like an inaccessible2486 should include {"access" => []}2487 behaves like a valid token2488 should include :token2489 should include "access"2490 a expirable2491 for default configuration2492 should not be within 2 of 2018-10-27 13:11:05 +00002493 for changed configuration2494 should be within 2 of 2018-10-27 13:11:05 +00002495 for other projects2496 when pulling2497 allow for public2498 behaves like a pullable2499 behaves like an accessible2500 has the correct scope2501 behaves like a valid token2502 should include :token2503 should include "access"2504 a expirable2505 for default configuration2506 should not be within 2 of 2018-10-27 13:11:07 +00002507 for changed configuration2508 should be within 2 of 2018-10-27 13:11:07 +00002509 behaves like not a container repository factory2510 does not create a new container repository resource2511 for private2512 behaves like pullable for being team member2513 when you are not member2514 behaves like an inaccessible2515 should include {"access" => []}2516 behaves like a valid token2517 should include :token2518 should include "access"2519 a expirable2520 for default configuration2521 should not be within 2 of 2018-10-27 13:11:09 +00002522 for changed configuration2523 should be within 2 of 2018-10-27 13:11:10 +00002524 behaves like not a container repository factory2525 does not create a new container repository resource2526 when you are member2527 behaves like a pullable2528 behaves like an accessible2529 has the correct scope2530 behaves like a valid token2531 should include :token2532 should include "access"2533 a expirable2534 for default configuration2535 should not be within 2 of 2018-10-27 13:11:12 +00002536 for changed configuration2537 should be within 2 of 2018-10-27 13:11:13 +00002538 behaves like not a container repository factory2539 does not create a new container repository resource2540 when you are owner2541 behaves like a pullable2542 behaves like an accessible2543 has the correct scope2544 behaves like a valid token2545 should include :token2546 should include "access"2547 a expirable2548 for default configuration2549 should not be within 2 of 2018-10-27 13:11:15 +00002550 for changed configuration2551 should be within 2 of 2018-10-27 13:11:16 +00002552 behaves like not a container repository factory2553 does not create a new container repository resource2554 when you are admin2555 when you are not member2556 behaves like an inaccessible2557 should include {"access" => []}2558 behaves like a valid token2559 should include :token2560 should include "access"2561 a expirable2562 for default configuration2563 should not be within 2 of 2018-10-27 13:11:18 +00002564 for changed configuration2565 should be within 2 of 2018-10-27 13:11:18 +00002566 behaves like not a container repository factory2567 does not create a new container repository resource2568 when you are member2569 behaves like a pullable2570 behaves like an accessible2571 has the correct scope2572 behaves like a valid token2573 should include :token2574 should include "access"2575 a expirable2576 for default configuration2577 should not be within 2 of 2018-10-27 13:11:21 +00002578 for changed configuration2579 should be within 2 of 2018-10-27 13:11:21 +00002580 behaves like not a container repository factory2581 does not create a new container repository resource2582 when you are owner2583 behaves like a pullable2584 behaves like an accessible2585 has the correct scope2586 behaves like a valid token2587 should include :token2588 should include "access"2589 a expirable2590 for default configuration2591 should not be within 2 of 2018-10-27 13:11:23 +00002592 for changed configuration2593 should be within 2 of 2018-10-27 13:11:24 +00002594 behaves like not a container repository factory2595 does not create a new container repository resource2596 when pushing2597 disallow for all2598 when you are member2599 behaves like an inaccessible2600 should include {"access" => []}2601 behaves like a valid token2602 should include :token2603 should include "access"2604 a expirable2605 for default configuration2606 should not be within 2 of 2018-10-27 13:11:26 +00002607 for changed configuration2608 should be within 2 of 2018-10-27 13:11:27 +00002609 behaves like not a container repository factory2610 does not create a new container repository resource2611 when you are owner2612 behaves like an inaccessible2613 should include {"access" => []}2614 behaves like a valid token2615 should include :token2616 should include "access"2617 a expirable2618 for default configuration2619 should not be within 2 of 2018-10-27 13:11:29 +00002620 for changed configuration2621 should be within 2 of 2018-10-27 13:11:29 +00002622 behaves like not a container repository factory2623 does not create a new container repository resource2624 for project without container registry2625 disallow when pulling2626 behaves like an inaccessible2627 should include {"access" => []}2628 behaves like a valid token2629 should include :token2630 should include "access"2631 a expirable2632 for default configuration2633 should not be within 2 of 2018-10-27 13:11:32 +00002634 for changed configuration2635 should be within 2 of 2018-10-27 13:11:32 +00002636 behaves like not a container repository factory2637 does not create a new container repository resource2638 registry catalog browsing authorized as admin2639 behaves like a browsable2640 has the correct scope2641 behaves like a valid token2642 should include :token2643 should include "access"2644 a expirable2645 for default configuration2646 should not be within 2 of 2018-10-27 13:11:33 +00002647 for changed configuration2648 should be within 2 of 2018-10-27 13:11:33 +00002649 behaves like not a container repository factory2650 does not create a new container repository resource2651 support for multiple scopes2652 user has access to all projects2653 behaves like a browsable2654 has the correct scope2655 behaves like a valid token2656 should include :token2657 should include "access"2658 a expirable2659 for default configuration2660 should not be within 2 of 2018-10-27 13:11:35 +00002661 for changed configuration2662 should be within 2 of 2018-10-27 13:11:35 +00002663 behaves like not a container repository factory2664 does not create a new container repository resource2665 user only has access to internal project2666 behaves like a browsable2667 has the correct scope2668 behaves like a valid token2669 should include :token2670 should include "access"2671 a expirable2672 for default configuration2673 should not be within 2 of 2018-10-27 13:11:37 +00002674 for changed configuration2675 should be within 2 of 2018-10-27 13:11:37 +00002676 behaves like not a container repository factory2677 does not create a new container repository resource2678 anonymous access is rejected2679 behaves like a forbidden2680 should include {:http_status => 403}2681 should not include :token2682 unauthorized2683 disallow to use scope-less authentication2684 behaves like a forbidden2685 should include {:http_status => 403}2686 should not include :token2687 behaves like not a container repository factory2688 does not create a new container repository resource2689 for invalid scope2690 behaves like a forbidden2691 should include {:http_status => 403}2692 should not include :token2693 behaves like not a container repository factory2694 does not create a new container repository resource2695 for private project2696 behaves like a forbidden2697 should include {:http_status => 403}2698 should not include :token2699 for public project2700 when pulling and pushing2701 behaves like a pullable2702 behaves like an accessible2703 has the correct scope2704 behaves like a valid token2705 should include :token2706 should include "access"2707 a expirable2708 for default configuration2709 should not be within 2 of 2018-10-27 13:11:40 +00002710 for changed configuration2711 should be within 2 of 2018-10-27 13:11:40 +00002712 behaves like not a container repository factory2713 does not create a new container repository resource2714 when pushing2715 behaves like a forbidden2716 should include {:http_status => 403}2717 should not include :token2718 behaves like not a container repository factory2719 does not create a new container repository resource2720 for registry catalog2721 behaves like a forbidden2722 should include {:http_status => 403}2723 should not include :token2724 behaves like not a container repository factory2725 does not create a new container repository resource2726 for deploy tokens2727 when deploy token has read_registry as a scope2728 for public project2729 when pulling2730 behaves like a pullable2731 behaves like an accessible2732 has the correct scope2733 behaves like a valid token2734 should include :token2735 should include "access"2736 a expirable2737 for default configuration2738 should not be within 2 of 2018-10-27 13:11:42 +00002739 for changed configuration2740 should be within 2 of 2018-10-27 13:11:42 +00002741 when pushing2742 behaves like an inaccessible2743 should include {"access" => []}2744 behaves like a valid token2745 should include :token2746 should include "access"2747 a expirable2748 for default configuration2749 should not be within 2 of 2018-10-27 13:11:43 +00002750 for changed configuration2751 should be within 2 of 2018-10-27 13:11:43 +00002752 for internal project2753 when pulling2754 behaves like a pullable2755 behaves like an accessible2756 has the correct scope2757 behaves like a valid token2758 should include :token2759 should include "access"2760 a expirable2761 for default configuration2762 should not be within 2 of 2018-10-27 13:11:44 +00002763 for changed configuration2764 should be within 2 of 2018-10-27 13:11:44 +00002765 when pushing2766 behaves like an inaccessible2767 should include {"access" => []}2768 behaves like a valid token2769 should include :token2770 should include "access"2771 a expirable2772 for default configuration2773 should not be within 2 of 2018-10-27 13:11:45 +00002774 for changed configuration2775 should be within 2 of 2018-10-27 13:11:45 +00002776 for private project2777 when pulling2778 behaves like a pullable2779 behaves like an accessible2780 has the correct scope2781 behaves like a valid token2782 should include :token2783 should include "access"2784 a expirable2785 for default configuration2786 should not be within 2 of 2018-10-27 13:11:46 +00002787 for changed configuration2788 should be within 2 of 2018-10-27 13:11:46 +00002789 when pushing2790 behaves like an inaccessible2791 should include {"access" => []}2792 behaves like a valid token2793 should include :token2794 should include "access"2795 a expirable2796 for default configuration2797 should not be within 2 of 2018-10-27 13:11:47 +00002798 for changed configuration2799 should be within 2 of 2018-10-27 13:11:47 +00002800 when deploy token does not have read_registry scope2801 for public project2802 when pulling2803 behaves like a pullable2804 behaves like an accessible2805 has the correct scope2806 behaves like a valid token2807 should include :token2808 should include "access"2809 a expirable2810 for default configuration2811 should not be within 2 of 2018-10-27 13:11:48 +00002812 for changed configuration2813 should be within 2 of 2018-10-27 13:11:48 +00002814 for internal project2815 when pulling2816 behaves like an inaccessible2817 should include {"access" => []}2818 behaves like a valid token2819 should include :token2820 should include "access"2821 a expirable2822 for default configuration2823 should not be within 2 of 2018-10-27 13:11:49 +00002824 for changed configuration2825 should be within 2 of 2018-10-27 13:11:49 +00002826 for private project2827 when pulling2828 behaves like an inaccessible2829 should include {"access" => []}2830 behaves like a valid token2831 should include :token2832 should include "access"2833 a expirable2834 for default configuration2835 should not be within 2 of 2018-10-27 13:11:50 +00002836 for changed configuration2837 should be within 2 of 2018-10-27 13:11:50 +00002838 when deploy token is not related to the project2839 for public project2840 when pulling2841 behaves like a pullable2842 behaves like an accessible2843 has the correct scope2844 behaves like a valid token2845 should include :token2846 should include "access"2847 a expirable2848 for default configuration2849 should not be within 2 of 2018-10-27 13:11:51 +00002850 for changed configuration2851 should be within 2 of 2018-10-27 13:11:51 +00002852 for internal project2853 when pulling2854 behaves like an inaccessible2855 should include {"access" => []}2856 behaves like a valid token2857 should include :token2858 should include "access"2859 a expirable2860 for default configuration2861 should not be within 2 of 2018-10-27 13:11:52 +00002862 for changed configuration2863 should be within 2 of 2018-10-27 13:11:52 +00002864 for private project2865 when pulling2866 behaves like an inaccessible2867 should include {"access" => []}2868 behaves like a valid token2869 should include :token2870 should include "access"2871 a expirable2872 for default configuration2873 should not be within 2 of 2018-10-27 13:11:53 +00002874 for changed configuration2875 should be within 2 of 2018-10-27 13:11:53 +00002876 when deploy token has been revoked2877 for public project2878 behaves like a pullable2879 behaves like an accessible2880 has the correct scope2881 behaves like a valid token2882 should include :token2883 should include "access"2884 a expirable2885 for default configuration2886 should not be within 2 of 2018-10-27 13:11:54 +00002887 for changed configuration2888 should be within 2 of 2018-10-27 13:11:55 +00002889 for internal project2890 behaves like an inaccessible2891 should include {"access" => []}2892 behaves like a valid token2893 should include :token2894 should include "access"2895 a expirable2896 for default configuration2897 should not be within 2 of 2018-10-27 13:11:55 +00002898 for changed configuration2899 should be within 2 of 2018-10-27 13:11:56 +00002900 for private project2901 behaves like an inaccessible2902 should include {"access" => []}2903 behaves like a valid token2904 should include :token2905 should include "access"2906 a expirable2907 for default configuration2908 should not be within 2 of 2018-10-27 13:11:56 +00002909 for changed configuration2910 should be within 2 of 2018-10-27 13:11:57 +00002911 user authorization2912 with multiple scopes2913 allow developer to push images2914 behaves like a pushable2915 behaves like an accessible2916 has the correct scope2917 behaves like a valid token2918 should include :token2919 should include "access"2920 a expirable2921 for default configuration2922 should not be within 2 of 2018-10-27 13:11:58 +00002923 for changed configuration2924 should be within 2 of 2018-10-27 13:11:58 +00002925 behaves like container repository factory2926 creates a new container repository resource2927Task Lists2928 for Issues2929 multiple tasks2930 renders2931 contains the required selectors2932 is only editable by author2933 provides a summary on Issues#index2934 single incomplete task2935 renders2936 provides a summary on Issues#index2937 single complete task2938 renders2939 provides a summary on Issues#index2940 nested tasks2941 with Redcarpet2942 behaves like shared nested tasks2943 renders2944 solves tasks2945 with CommonMark2946 behaves like shared nested tasks2947 renders2948 solves tasks2949 for Notes2950 multiple tasks2951 renders for note body2952 contains the required selectors2953 is only editable by author2954 single incomplete task2955 renders for note body2956 single complete task2957 renders for note body2958 for Merge Requests2959 multiple tasks2960 renders for description2961 contains the required selectors2962 is only editable by author2963 provides a summary on MergeRequests#index2964 single incomplete task2965 renders for description2966 provides a summary on MergeRequests#index2967 single complete task2968 renders for description2969 provides a summary on MergeRequests#index2970Ci::ProcessPipelineService#execute2971 when simple pipeline is defined2972 processes a pipeline2973 does not process pipeline if existing stage is running2974 custom stage with first job allowed to fail2975 automatically triggers a next stage when build finishes2976 when optional manual actions are defined2977 when builds are successful2978 properly processes the pipeline2979 when test job fails2980 properly processes the pipeline2981 when test and test_failure jobs fail2982 properly processes the pipeline2983 when deploy job fails2984 properly processes the pipeline2985 when build is canceled in the second stage2986 does not schedule builds after build has been canceled2987 when listing optional manual actions2988 returns only for skipped builds2989 when delayed jobs are defined2990 when the scene is timed incremental rollout2991 when builds are successful2992 properly processes the pipeline2993 when build job fails2994 properly processes the pipeline2995 when rollout 10% is unscheduled2996 properly processes the pipeline2997 when user plays rollout 10%2998 schedules rollout100%2999 when rollout 10% fails3000 properly processes the pipeline3001 when user retries rollout 10%3002 does not schedule rollout10% again3003 when rollout 10% is played immidiately3004 properly processes the pipeline3005 when only one scheduled job exists in a pipeline3006 properly processes the pipeline3007 when there are two delayed jobs in a stage3008 blocks the stage until all scheduled jobs finished3009 when a delayed job is allowed to fail3010 blocks the stage and continues after it failed3011 when there are manual action in earlier stages3012 when first stage has only optional manual actions3013 starts from the second stage3014 when second stage has only optional manual actions3015 skips second stage and continues on third stage3016 when there are only manual actions in stages3017 processes all jobs until blocking actions encountered3018 when there is only one manual action3019 skips the pipeline3020 when the action was played3021 queues the action and pipeline3022 when blocking manual actions are defined3023 when first stage succeeds3024 blocks pipeline on stage with first manual action3025 when first stage fails3026 does not take blocking action into account3027 when pipeline is promoted sequentially up to the end3028 properly processes entire pipeline3029 when second stage has only on_failure jobs3030 skips second stage and continues on third stage3031 when failed build in the middle stage is retried3032 when failed build is the only unsuccessful build in the stage3033 does trigger builds in the next stage3034 updates a list of retried builds3035 returns unique statuses3036 when builds with auto-retries are configured3037 automatically retries builds in a valid order3038Dropdown assignee3039 behavior3040 opens when the search bar has assignee:3041 closes when the search bar is unfocused3042 should show loading indicator when opened3043 should hide loading indicator when loaded3044 should load all the assignees when opened3045 shows current user at top of dropdown3046 filtering3047 filters by name3048 filters by case insensitive name3049 filters by username with symbol3050 filters by case insensitive username with symbol3051 filters by username without symbol3052 filters by case insensitive username without symbol3053 selecting from dropdown3054 fills in the assignee username when the assignee has not been filtered3055 fills in the assignee username when the assignee has been filtered3056 selects `no assignee`3057 selecting from dropdown without Ajax call3058 selects current user3059 input has existing content3060 opens assignee dropdown with existing search term3061 opens assignee dropdown with existing author3062 opens assignee dropdown with existing label3063 opens assignee dropdown with existing milestone3064 opens assignee dropdown with existing my-reaction3065 caching requests3066 caches requests after the first load3067Projects::NotesController3068 GET index3069 passes last_fetched_at from headers to NotesFinder3070 when user notes_filter is present3071 filters system notes by comments3072 returns all notes3073 does not merge label event notes3074 for a discussion note3075 responds with the expected attributes3076 for a diff discussion note3077 responds with the expected attributes3078 for a commit note3079 when displayed on a merge request3080 responds with the expected attributes3081 when displayed on the commit3082 responds with the expected attributes3083 when user cannot read commit3084 renders 4043085 for a regular note3086 responds with the expected attributes3087 with cross-reference system note3088 filters notes that the user should not see3089 does not result in N+1 queries3090 POST create3091 returns status 302 for html3092 returns status 200 for json3093 returns discussion JSON when the return_discussion param is set3094 when merge_request_diff_head_sha present3095 returns status 302 for html3096 when creating a commit comment from an MR fork3097 when the note_project_id is not correct3098 returns a 4043099 when the user has no access to the fork3100 returns a 4043101 when the user has access to the fork3102 creates the note3103 when the merge request discussion is locked3104 when a noteable is not found3105 returns 404 status3106 when a user is a team member3107 returns 302 status for html3108 returns 200 status for json3109 creates a new note3110 when a user is not a team member3111 returns 404 status3112 does not create a new note3113 PUT update3114 updates the note3115 DELETE destroy3116 user is the author of a note3117 returns status 200 for html3118 deletes the note3119 user is not the author of a note3120 returns status 4043121 POST toggle_award_emoji3122 toggles the award emoji3123 removes the already awarded emoji3124 resolving and unresolving3125 POST resolve3126 when the user is not authorized to resolve the note3127 returns status 4043128 when the user is authorized to resolve the note3129 when the note is not resolvable3130 returns status 4043131 when the note is resolvable3132 resolves the note3133 sends notifications if all discussions are resolved3134 returns the name of the resolving user3135 returns status 2003136 DELETE unresolve3137 when the user is not authorized to resolve the note3138 returns status 4043139 when the user is authorized to resolve the note3140 when the note is not resolvable3141 returns status 4043142 when the note is resolvable3143 unresolves the note3144 returns status 2003145Discussion ResolvableDiscussion3146 #resolvable?3147 when potentially resolvable3148 when all notes are unresolvable3149 returns false3150 when some notes are unresolvable and some notes are resolvable3151 returns true3152 when all notes are resolvable3153 returns true3154 when not potentially resolvable3155 returns false3156 #resolved?3157 when not resolvable3158 returns false3159 when resolvable3160 when all resolvable notes are resolved3161 returns true3162 when some resolvable notes are not resolved3163 returns false3164 #to_be_resolved?3165 when not resolvable3166 returns false3167 when resolvable3168 when all resolvable notes are resolved3169 returns false3170 when some resolvable notes are not resolved3171 returns true3172 #can_resolve?3173 when not resolvable3174 returns false3175 when resolvable3176 when not signed in3177 returns false3178 when signed in3179 when the signed in user is the noteable author3180 returns true3181 when the signed in user can push to the project3182 returns true3183 when the signed in user is a random user3184 returns false3185 #resolve!3186 when not resolvable3187 returns nil3188 doesn't set resolved_at3189 doesn't set resolved_by3190 doesn't mark as resolved3191 when resolvable3192 when all resolvable notes are resolved3193 doesn't change resolved_at on the resolved notes3194 doesn't change resolved_by on the resolved notes3195 doesn't change the resolved state on the resolved notes3196 doesn't change resolved_at3197 doesn't change resolved_by3198 doesn't change resolved state3199 when some resolvable notes are resolved3200 doesn't change resolved_at on the resolved note3201 doesn't change resolved_by on the resolved note3202 doesn't change the resolved state on the resolved note3203 sets resolved_at on the unresolved note3204 sets resolved_by on the unresolved note3205 marks the unresolved note as resolved3206 sets resolved_at3207 sets resolved_by3208 marks as resolved3209 when no resolvable notes are resolved3210 sets resolved_at on the unresolved notes3211 sets resolved_by on the unresolved notes3212 marks the unresolved notes as resolved3213 sets resolved_at3214 sets resolved_by3215 marks as resolved3216 #unresolve!3217 when not resolvable3218 returns nil3219 when resolvable3220 when all resolvable notes are resolved3221 unsets resolved_at on the resolved notes3222 unsets resolved_by on the resolved notes3223 unmarks the resolved notes as resolved3224 unsets resolved_at3225 unsets resolved_by3226 unmarks as resolved3227 when some resolvable notes are resolved3228 unsets resolved_at on the resolved note3229 unsets resolved_by on the resolved note3230 unmarks the resolved note as resolved3231 #first_note_to_resolve3232 returns the first note that still needs to be resolved3233 #last_resolved_note3234 returns the last note that was resolved3235Projects::ImportService3236 #async?3237 returns true for an asynchronous importer3238 returns false for a regular importer3239 returns false when the importer does not define #async?3240 returns false when the importer does not exist3241 #execute3242 with unknown url3243 succeeds if repository is created successfully3244 fails if repository creation fails3245 when repository creation succeeds3246 does not download lfs files3247 with known url3248 with a Github repository3249 succeeds if repository import was scheduled3250 fails if repository import was not scheduled3251 when repository import scheduled3252 does not download lfs objects3253 with a non Github repository3254 succeeds if repository import is successfull3255 fails if repository import fails3256 when repository import scheduled3257 downloads lfs objects if lfs_enabled is enabled for project3258 does not download lfs objects if lfs_enabled is not enabled for project3259 with valid importer3260 succeeds if importer succeeds3261 fails if importer fails3262 when importer3263 has a custom repository importer it does not download lfs objects3264 does not have a custom repository importer downloads lfs objects3265 with blocked import_URL3266 fails with localhost3267 fails with port 253268Set up Mattermost slash commands3269 user visits the mattermost slash command config page3270 shows a help message3271 shows a token placeholder3272 redirects to the integrations page after saving but not activating3273 redirects to the integrations page after activating3274 shows the add to mattermost button3275 shows an explanation if user is a member of no teams3276 shows an explanation if user is a member of 1 team3277 shows a disabled prefilled select if user is a member of 1 team3278 has a hidden input for the prefilled value if user is a member of 1 team3279 shows an explanation user is a member of multiple teams3280 shows a select with team options user is a member of multiple teams3281 shows an error alert with the error message if there is an error requesting teams3282 enables the submit button if the required fields are provided3283 disables the submit button if the required fields are not provided3284 mattermost service is not enabled3285 shows the correct trigger url3286 shows a token placeholder3287 stable logo url3288 shows a publicly available logo3289Overview tab on a user profile3290 activities section3291 user has no activities3292 does not show any entries in the list of activities3293 does not show a link to the activity list3294 user has 3 activities3295 display 3 entries in the list of activities3296 user has 10 activities3297 displays 5 entries in the list of activities3298 shows a link to the activity list3299 links to the activity tab3300 projects section3301 user has no personal projects3302 it shows an empty project list with an info message3303 does not show a link to the project list3304 user has a personal project3305 it shows one entry in the list of projects3306 shows a link to the project list3307 user has more than ten personal projects3308 it shows max. ten entries in the list of projects3309 shows a link to the project list3310 does not show pagination3311GroupPolicy3312 with no user3313 should not be allowed :read_namespace3314 has projects3315 should be allowed :read_label3316 in subgroups3317 should be allowed :read_label3318 guests3319 should not be allowed :create_subgroup3320 reporter3321 should not be allowed :create_subgroup3322 developer3323 should not be allowed :create_subgroup3324 maintainer3325 should not be allowed :create_subgroup3326 owner3327 should be allowed :create_subgroup3328 admin3329 should be allowed :create_subgroup3330 when nested group support feature is disabled3331 admin3332 allows every owner permission except creating subgroups3333 owner3334 allows every owner permission except creating subgroups3335 private nested group use the highest access level from the group and inherited permissions3336 with no user3337 should not be allowed :create_subgroup3338 guests3339 should not be allowed :create_subgroup3340 reporter3341 should not be allowed :create_subgroup3342 developer3343 should not be allowed :create_subgroup3344 maintainer3345 should not be allowed :create_subgroup3346 owner3347 should be allowed :create_subgroup3348 change_share_with_group_lock3349 when the current_user owns the group3350 when the group share_with_group_lock is enabled3351 when the parent group share_with_group_lock is enabled3352 when the group has a grandparent3353 when the grandparent share_with_group_lock is enabled3354 when the current_user owns the parent3355 when the current_user owns the grandparent3356 should be allowed :change_share_with_group_lock3357 when the current_user does not own the grandparent3358 should not be allowed :change_share_with_group_lock3359 when the current_user does not own the parent3360 should not be allowed :change_share_with_group_lock3361 when the grandparent share_with_group_lock is disabled3362 when the current_user owns the parent3363 should be allowed :change_share_with_group_lock3364 when the current_user does not own the parent3365 should not be allowed :change_share_with_group_lock3366 when the group does not have a grandparent3367 when the current_user owns the parent3368 should be allowed :change_share_with_group_lock3369 when the current_user does not own the parent3370 should not be allowed :change_share_with_group_lock3371 when the parent group share_with_group_lock is disabled3372 should be allowed :change_share_with_group_lock3373 when the group share_with_group_lock is disabled3374 should be allowed :change_share_with_group_lock3375 when the current_user does not own the group3376 should not be allowed :change_share_with_group_lock3377Puma3378[12937] Puma starting in cluster mode...3379[12937] * Version 3.12.0 (ruby 2.4.5-p335), codename: Llamas in Pajamas3380[12937] * Min threads: 1, max threads: 103381[12937] * Environment: test3382[12937] * Process workers: 13383[12937] * Preloading application3384[12937] * Listening on unix:///builds/gitlab-org/gitlab-ce/tmp/tests/puma.socket3385[12937] Use Ctrl-C to stop3386[12937] - Worker 0 (pid: 12940) booted, phase: 03387[12937] - Worker 0 (pid: 12949) booted, phase: 03388 has a worker that self-terminates on signal SIGQUIT3389[12937] - Worker 0 (pid: 12958) booted, phase: 03390 has a worker that self-terminates on signal SIGTERM3391[12937] - Worker 0 (pid: 12969) booted, phase: 03392 has a worker that self-terminates on signal SIGKILL3393[12937] - Gracefully shutting down workers...3394Discussion Lock3395 when a user is a team member3396 when the discussion is unlocked3397 the user can lock the issue3398 when the discussion is locked3399 the user can unlock the issue3400 the user can create a comment3401 when a user is not a team member3402 when the discussion is unlocked3403 the user can not lock the issue3404 the user can create a comment3405 when the discussion is locked3406 the user can not unlock the issue3407 the user can not create a comment3408Gitlab::Diff::File3409 #diff_lines3410 should eq 303411 should be a kind of Gitlab::Diff::Line3412 #highlighted_diff_lines3413 highlights the diff and memoises the result3414 #diff_lines_for_serializer3415 includes bottom match line if not in the end3416 when deleted3417 does not include bottom match line3418 #mode_changed?3419 should be falsey3420 #too_large?3421 returns true for a file that is too large3422 returns false for a file that is small enough3423 #collapsed?3424 returns true for a file that is quite big3425 returns false for a file that is small enough3426 #old_blob3427 returns blob of commit of base commit3428 #new_blob3429 returns blob of new commit3430 #diffable?3431 returns true for files that do not have attributes3432 returns false for files that have been marked as not being diffable in attributes3433 #content_changed?3434 when created3435 returns false3436 when deleted3437 returns false3438 when renamed3439 returns false3440 when content changed3441 when binary3442 when the blobs are different3443 returns true3444 when there are no diff refs3445 returns false3446 when not binary3447 when the blobs are different3448 returns true3449 when there are no diff refs3450 returns true3451 diff file stats3452 #added_lines3453 when stats argument given3454 returns added lines from stats3455 when stats argument not given3456 returns added lines by parsing raw diff3457 #removed_lines3458 when stats argument given3459 returns removed lines from stats3460 when stats argument not given3461 returns removed lines by parsing raw diff3462 #simple_viewer3463 when the file is not diffable3464 returns a Not Diffable viewer3465 when the content changed3466 when the file represented by the diff file is binary3467 returns a No Preview viewer3468 when the diff file old and new blob types are different3469 returns a No Preview viewer3470 when the file represented by the diff file is text-based3471 returns a text viewer3472 when created3473 when the file represented by the diff file is binary3474 returns an Added viewer3475 when the diff file old and new blob types are different3476 returns an Added viewer3477 when the file represented by the diff file is text-based3478 returns a text viewer3479 when deleted3480 when the file represented by the diff file is binary3481 returns a Deleted viewer3482 when the diff file old and new blob types are different3483 returns a Deleted viewer3484 when the file represented by the diff file is text-based3485 returns a text viewer3486 when renamed3487 returns a Renamed viewer3488 when mode changed3489 returns a Mode Changed viewer3490 when no other conditions apply3491 returns a No Preview viewer3492 #rich_viewer3493 when the diff file has a matching viewer3494 when the diff file content did not change3495 returns nil3496 when the diff file is not diffable3497 returns nil3498 when the diff file old and new blob types are different3499 returns nil3500 when the diff file has an external storage error3501 returns nil3502 when everything is right3503 returns the viewer3504 when the diff file does not have a matching viewer3505 returns nil3506 #rendered_as_text?3507 when the simple viewer is text-based3508 when ignoring errors3509 when the viewer has render errors3510 returns true3511 when the viewer doesn't have render errors3512 returns true3513 when not ignoring errors3514 when the viewer has render errors3515 returns false3516 when the viewer doesn't have render errors3517 returns true3518 when the simple viewer is binary3519 returns false3520 when neither blob exists3521 #blob3522 returns a concrete nil so it can be used in boolean expressions3523 #binary?3524 returns false3525 #size3526 returns zero3527 #different_type?3528 returns false3529 #content_changed?3530 returns false3531 #diff_hunk3532 when first line is a match3533 returns raw diff up to given line index3534 when first line is not a match3535 returns raw diff up to given line index3536Issue Boards new issue3537 authorized user3538 displays new issue button3539 does not display new issue button in closed list3540 shows form when clicking button3541 hides form when clicking cancel3542 creates new issue3543 shows sidebar when creating new issue3544 unauthorized user3545 displays new issue button in open list3546 does not display new issue button in label list3547Merge requests > User lists merge requests3548 filters on no assignee3549 filters on a specific assignee3550 sorts by newest3551 sorts by last updated3552 sorts by milestone3553 filters on one label and sorts by due date3554 while filtering on two labels3555 sorts by due date3556 filter on assignee and3557 sorts by due soon3558 sorts by recently due milestone3559Projects::MergeRequests::ConflictsController3560 GET show3561 when the conflicts cannot be resolved in the UI3562 returns a 200 status code3563 returns JSON with a message3564 with valid conflicts3565 matches the schema3566 includes meta info about the MR3567 includes each file that has conflicts3568 splits files into sections with lines3569 has unique section IDs across files3570 GET conflict_for_path3571 when the conflicts cannot be resolved in the UI3572 returns a 404 status code3573 when the file does not exist cannot be resolved in the UI3574 returns a 404 status code3575 with an existing file3576 returns a 200 status code3577 returns the file in JSON format3578 POST resolve_conflicts3579 with valid params3580 creates a new commit on the branch3581 returns an OK response3582 when sections are missing3583 returns a 400 error3584 has a message with the name of the first missing section3585 does not create a new commit3586 when files are missing3587 returns a 400 error3588 has a message with the name of the missing file3589 does not create a new commit3590 when a file has identical content to the conflict3591 returns a 400 error3592 has a message with the path of the problem file3593 does not create a new commit3594Prioritize labels3595 when user belongs to project team3596 user can prioritize a group label3597 user can unprioritize a group label3598 user can prioritize a project label3599 user can unprioritize a project label3600 user can sort prioritized labels and persist across reloads3601 shows a help message about prioritized labels3602 as a guest3603 does not prioritize labels3604 as a non signed in user3605 does not prioritize labels3606User creates blob in new project3607 as a maintainer3608 behaves like creating a file3609 allows the user to add a new file3610 as an admin3611 behaves like creating a file3612 allows the user to add a new file3613 as a developer3614 does not allow pushing to the default branch3615HipchatService3616 Associations3617 should belong to project3618 should have one service_hook3619 Validations3620 when service is active3621 should validate that :token cannot be empty/falsy3622 when service is inactive3623 should not validate that :token cannot be empty/falsy3624 Execute3625 tests and return errors3626 uses v1 if version is provided3627 uses v2 as the version when nothing is provided3628 push events3629 calls Hipchat API for push events3630 creates a push message3631 tag_push events3632 calls Hipchat API for tag push events3633 creates a tag push message3634 issue events3635 calls Hipchat API for issue events3636 creates an issue message3637 merge request events3638 calls Hipchat API for merge requests events3639 creates a merge request message3640 Note events3641 when commit comment event triggered3642 calls Hipchat API for commit comment events3643 when merge request comment event triggered3644 calls Hipchat API for merge request comment events3645 when issue comment event triggered3646 calls Hipchat API for issue comment events3647 with confidential issue3648 calls Hipchat API with issue comment3649 when snippet comment event triggered3650 calls Hipchat API for snippet comment events3651 pipeline events3652 for failed3653 calls Hipchat API3654 creates a build message3655 for succeeded3656 calls Hipchat API3657 notifies only broken3658 #message_options3659 is set to the defaults3660 sets notify to true3661 sets the color3662 with a successful build3663 uses the green color3664 with a failed build3665 uses the red color3666Mentionable3667 references3668 excludes JIRA references3669Issue Mentionable3670 #mentioned_users3671 should contain exactly #<User id:1789 @stranger>3672 when a note on personal snippet3673 should contain exactly #<User id:1793 @stranger> and #<User id:1795 @jim>3674 #referenced_mentionables3675 with an issue on a private project3676 when the current user can see the issue3677 includes the reference3678 when the current user cannot see the issue3679 does not include the reference3680 when there is no current user3681 does not include the reference3682 #create_cross_references!3683 correctly removes already-mentioned Commits3684 #create_new_cross_references!3685 before changes are persisted3686 ignores pre-existing references3687 notifies new references3688 after changes are persisted3689 ignores pre-existing references3690 notifies new references3691 notifies new references from project snippet note3692Commit Mentionable3693 #matches_cross_reference_regex?3694 is false when message doesn't reference anything3695 is true if issue #number mentioned in title3696 is true if references an MR3697 is true if references a commit3698 is true if issue referenced by url3699 with external issue tracker3700 is true if external issues referenced3701 is true if internal issues referenced3702Gitlab::DataBuilder::Note3703 When asking for a note on commit3704 returns the note and commit-specific data3705 contains project data3706 contains deprecated repository data3707 When asking for a note on commit diff3708 returns the note and commit-specific data3709 contains project data3710 contains deprecated repository data3711 When asking for a note on issue3712 returns the note and issue-specific data3713 contains project data3714 contains deprecated repository data3715 with confidential issue3716 sets event_type to confidential_note3717 When asking for a note on merge request3718 returns the note and merge request data3719 contains project data3720 contains deprecated repository data3721 When asking for a note on merge request diff3722 returns the note and merge request diff data3723 contains project data3724 contains deprecated repository data3725 When asking for a note on project snippet3726 returns the note and project snippet data3727 contains project data3728 contains deprecated repository data3729Profile > Active Sessions3730 User sees their active sessions3731 User can revoke a session3732SessionsController3733 #new3734 when auto sign-in is enabled3735 and no auto_sign_in param is passed3736 redirects to :omniauth_authorize_path3737 and auto_sign_in=false param is passed3738 responds with 2003739 #create3740 when using standard authentications3741 invalid password3742 does not authenticate user3743 when using valid password3744 authenticates user correctly3745 creates an audit log record3746 allows user authenticating from the same ip3747 blocks user authenticating from two distinct ips3748 updates the user activity3749 when reCAPTCHA is enabled3750 displays an error when the reCAPTCHA is not solved3751 successfully logs in a user when reCAPTCHA is solved3752 when using two-factor authentication via OTP3753 creates an audit log record3754 remember_me field3755 sets a remember_user_token cookie when enabled3756 does nothing when disabled3757 when authenticating with login and OTP of another user3758 when another user has 2FA enabled3759 when OTP is valid for another user3760 does not authenticate3761 when OTP is invalid for another user3762 does not authenticate3763 when authenticating with OTP3764 when OTP is valid3765 authenticates correctly3766 when OTP is invalid3767 does not authenticate3768 warns about invalid OTP code3769 when the user is on their last attempt3770 when OTP is valid3771 authenticates correctly3772 when OTP is invalid3773 does not authenticate3774 warns about invalid login3775 locks the user3776 keeps the user locked on future login attempts3777 when another user does not have 2FA enabled3778 does not leak that 2FA is disabled for another user3779 when using two-factor authentication via U2F device3780 creates an audit log record3781 remember_me field3782 sets a remember_user_token cookie when enabled3783 does nothing when disabled3784 #new3785 redirects correctly for referer on same host with params3786Avatarable3787 #update3788 when avatar changed3789 validates the file size3790 when avatar was not changed3791 skips validation of file size3792 #avatar_path3793 has_asset_host: true, visibility_level: 0, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3794 returns the expected avatar path3795 returns the expected avatar path with width parameter3796 when avatar is stored remotely3797 returns the expected avatar path3798 has_asset_host: true, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3799 returns the expected avatar path3800 returns the expected avatar path with width parameter3801 when avatar is stored remotely3802 returns the expected avatar path3803 has_asset_host: true, visibility_level: 10, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3804 returns the expected avatar path3805 returns the expected avatar path with width parameter3806 when avatar is stored remotely3807 returns the expected avatar path3808 has_asset_host: true, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3809 returns the expected avatar path3810 returns the expected avatar path with width parameter3811 when avatar is stored remotely3812 returns the expected avatar path3813 has_asset_host: true, visibility_level: 20, only_path: true, avatar_path_prefix: []3814 returns the expected avatar path3815 returns the expected avatar path with width parameter3816 when avatar is stored remotely3817 returns the expected avatar path3818 has_asset_host: true, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab-assets.example.com"]3819 returns the expected avatar path3820 returns the expected avatar path with width parameter3821 when avatar is stored remotely3822 returns the expected avatar path3823 has_asset_host: false, visibility_level: 0, only_path: true, avatar_path_prefix: ["/gitlab"]3824 returns the expected avatar path3825 returns the expected avatar path with width parameter3826 when avatar is stored remotely3827 returns the expected avatar path3828 has_asset_host: false, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3829 returns the expected avatar path3830 returns the expected avatar path with width parameter3831 when avatar is stored remotely3832 returns the expected avatar path3833 has_asset_host: false, visibility_level: 10, only_path: true, avatar_path_prefix: ["/gitlab"]3834 returns the expected avatar path3835 returns the expected avatar path with width parameter3836 when avatar is stored remotely3837 returns the expected avatar path3838 has_asset_host: false, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3839 returns the expected avatar path3840 returns the expected avatar path with width parameter3841 when avatar is stored remotely3842 returns the expected avatar path3843 has_asset_host: false, visibility_level: 20, only_path: true, avatar_path_prefix: ["/gitlab"]3844 returns the expected avatar path3845 returns the expected avatar path with width parameter3846 when avatar is stored remotely3847 returns the expected avatar path3848 has_asset_host: false, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3849 returns the expected avatar path3850 returns the expected avatar path with width parameter3851 when avatar is stored remotely3852 returns the expected avatar path3853Merge request > User sees discussions3854 Diff discussions3855 active discussions3856 shows a link to the diff3857 outdated discussions3858 shows a link to the outdated diff3859 Commit comments displayed in MR context3860 a regular commit comment3861 behaves like a functional discussion3862 is displayed (PENDING: Temporarily skipped with xit)3863 can be replied to (PENDING: Temporarily skipped with xit)3864 a commit diff comment3865 behaves like a functional discussion3866 is displayed (PENDING: Temporarily skipped with xit)3867 can be replied to (PENDING: Temporarily skipped with xit)3868SnippetsController3869 GET #index3870 when username parameter is present3871 renders snippets of a user when username is present3872 when username parameter is not present3873 redirects to explore snippets page when user is not logged in3874 redirects to snippets dashboard page when user is logged in3875 GET #new3876 when signed in3877 responds with status 2003878 when not signed in3879 redirects to the sign in page3880 GET #show3881 when the personal snippet is private3882 when signed in3883 when signed in user is not the author3884 responds with status 4043885 when signed in user is the author3886 renders the snippet3887 when not signed in3888 redirects to the sign in page3889 when the personal snippet is internal3890 when signed in3891 renders the snippet3892 when not signed in3893 redirects to the sign in page3894 when the personal snippet is public3895 when signed in3896 renders the snippet3897 when not signed in3898 renders the snippet3899 when the personal snippet does not exist3900 when signed in3901 responds with status 4043902 when not signed in3903 responds with status 4043904 POST #create3905 creates the snippet correctly3906 when the snippet description contains a file3907 creates the snippet3908 stores the snippet description correctly3909 when the snippet is spam3910 when the snippet is private3911 creates the snippet3912 when the snippet is public3913 rejects the shippet3914 creates a spam log3915 renders :new with recaptcha disabled3916 recaptcha enabled3917 renders :verify with recaptcha enabled3918 renders snippet page when recaptcha verified3919 PUT #update3920 when the snippet is spam3921 when the snippet is private3922 updates the snippet3923 when a private snippet is made public3924 rejects the snippet3925 creates a spam log3926 renders :edit with recaptcha disabled3927 recaptcha enabled3928 renders :verify with recaptcha enabled3929 renders snippet page when recaptcha verified3930 when the snippet is public3931 rejects the shippet3932 creates a spam log3933 renders :edit with recaptcha disabled3934 recaptcha enabled3935 renders :verify with recaptcha enabled3936 renders snippet page when recaptcha verified3937 POST #mark_as_spam3938 updates the snippet3939 GET #raw3940 when the personal snippet is private3941 when signed in3942 when signed in user is not the author3943 responds with status 4043944 when signed in user is the author3945 responds with status 2003946 has expected headers3947 when not signed in3948 redirects to the sign in page3949 when the personal snippet is internal3950 when signed in3951 responds with status 2003952 when not signed in3953 redirects to the sign in page3954 when the personal snippet is public3955 when signed in3956 responds with status 2003957 CRLF line ending3958 returns LF line endings by default3959 does not convert line endings when parameter present3960 when not signed in3961 responds with status 2003962 when the personal snippet does not exist3963 when signed in3964 responds with status 4043965 when not signed in3966 redirects to the sign in path3967 award emoji on snippets3968 POST #toggle_award_emoji3969 toggles the award emoji3970 removes the already awarded emoji3971 POST #preview_markdown3972 renders json in a correct format3973Ci::Group3974 should includes the StaticModel module3975 should respond to #stage3976 should respond to #name3977 should respond to #jobs3978 should respond to #status3979 #size3980 returns the number of statuses in the group3981 #detailed_status3982 when there is only one item in the group3983 calls the status from the object itself3984 when there are more than one commit status in the group3985 fabricates a new detailed status object3986 .fabricate3987 returns an array of three groups3988 returns groups with correctly ordered statuses3989 returns groups with correct names3990 when a name is nil on legacy pipelines3991 returns an array of three groups3992Projects > Files > Template Undo Button3993 editing a matching file and applying a template3994 reverts template application3995 creating a non-matching file3996 reverts template application3997Ensure Boards do not show stale data on browser back3998 authorized user3999 created issue is listed on board4000Projects::PagesDomainsController4001 GET show4002 displays the 'show' page4003 GET new4004 displays the 'new' page4005 POST create4006 creates a new pages domain4007 GET edit4008 displays the 'edit' page4009 PATCH update4010 updates the domain4011 redirects to the project page4012 the domain is invalid4013 renders the edit action4014 the parameters include the domain4015 renders 400 Bad Request4016 POST verify4017 handles verification success4018 handles verification failure4019 returns a 404 response for an unknown domain4020 DELETE destroy4021 deletes the pages domain4022 pages disabled4023 GET show4024 returns 404 status4025 GET new4026 returns 404 status4027 POST create4028 returns 404 status4029 DELETE destroy4030 deletes the pages domain4031Projects::BoardsController4032 GET index4033 creates a new project board when project does not have one4034 sets boards_endpoint instance variable to a boards path4035 when format is HTML4036 renders template4037 redirects to latest visited board4038 renders template if visited board is not found4039 with unauthorized user4040 returns a not found 404 response4041 when user is signed out4042 renders template4043 when format is JSON4044 returns a list of project boards4045 with unauthorized user4046 returns a not found 404 response4047 issues are disabled4048 returns a not found 404 response4049 GET show4050 sets boards_endpoint instance variable to a boards path4051 when format is HTML4052 renders template4053 with unauthorized user4054 returns a not found 404 response4055 when user is signed out4056 does not save visit4057 when format is JSON4058 returns project board4059 with unauthorized user4060 returns a not found 404 response4061 when board does not belong to project4062 returns a not found 404 response4063Project remote mirror4064 On a project4065 when last_error is present but last_update_at is not40662018-10-27T13:10:29.271Z 150 TID-gmsnhi9xe INFO: Removing remote remote_mirror_1 from project 127140672018-10-27T13:10:29.278Z 150 TID-gmsnhi9xe ERROR: Could not remove remote remote_mirror_1 from project 12714068 renders error message without timstamp4069 when last_error and last_update_at are present40702018-10-27T13:10:31.043Z 150 TID-gmsnhi9xe INFO: Removing remote remote_mirror_2 from project 127240712018-10-27T13:10:31.048Z 150 TID-gmsnhi9xe ERROR: Could not remove remote remote_mirror_2 from project 12724072 renders error message with timestamp4073Clusters::Gcp::FinalizeCreationService4074 #execute4075 when suceeded to fetch gke cluster info4076 service account and token created4077 provider legacy_abac is enabled4078 properly configures database models4079 behaves like success4080 configures provider and kubernetes4081 provider legacy_abac is disabled4082 cluster role binding created4083 properly configures database models4084 behaves like success4085 configures provider and kubernetes4086 when token is empty4087 behaves like error4088 sets an error to provider object4089 when failed to fetch kubernetes token4090 behaves like error4091 sets an error to provider object4092 when service account fails to create4093 behaves like error4094 sets an error to provider object4095 when failed to fetch gke cluster info4096 behaves like error4097 sets an error to provider object4098Ci::StopEnvironmentsService4099 #execute4100 when environment with review app exists4101 when user has permission to stop environment4102 when environment is associated with removed branch4103 stops environment4104 when environment is associated with different branch4105 does not stop environment4106 when specified branch does not exist4107 does not stop environment4108 when no branch not specified4109 does not stop environment4110 when environment is not stopped4111 does not stop environment4112 when user does not have permission to stop environment4113 when user has no access to manage deployments4114 does not stop environment4115 when branch for stop action is protected4116 does not stop environment4117 when there is no environment associated with review app4118 when user has permission to stop environments4119 does not stop environment4120 when environment does not exist4121 does not raise error4122Slack slash commands4123 shows a token placeholder4124 shows a help message4125 redirects to the integrations page after saving but not activating4126 redirects to the integrations page after activating4127 shows the correct trigger url4128Gitlab::BackgroundMigration::PopulateForkNetworksRange4129NOTICE: index "index_projects_on_lower_name" does not exist, skipping4130NOTICE: index "index_on_users_name_lower" does not exist, skipping4131NOTICE: index "index_redirect_routes_on_path_unique_text_pattern_ops" does not exist, skipping4132NOTICE: index "index_on_namespaces_lower_name" does not exist, skipping4133 it creates the fork network4134 does not create a fork network for a fork-of-fork4135 creates memberships for the root of fork networks4136 creates a fork network for the fork of which the source was deleted4137 schedules a job for inserting memberships for forks-of-forks4138 only processes a single batch of links at a time4139 can be repeated without effect4140Issue Boards shortcut4141 issues are enabled4142 takes user to issue board index4143 issues are not enabled4144 does not take user to the issue board index4145Route4146 relationships4147 should belong to source4148 validations4149 should validate that :source cannot be empty/falsy4150 should validate that :path cannot be empty/falsy4151 should validate that :path is case-insensitively unique4152 callbacks4153 before validation4154 calls #delete_conflicting_orphaned_routes4155 after update4156 calls #create_redirect_for_old_path4157 calls #delete_conflicting_redirects4158 after create4159 calls #delete_conflicting_redirects4160 .inside_path4161 returns correct routes4162 #rename_descendants4163 path update4164 when route name is set4165 updates children routes with new path4166 when route name is nil4167 does not fail4168 when conflicting redirects exist4169 deletes the conflicting redirects4170 name update4171 updates children routes with new path4172 handles a rename from nil4173 #create_redirect_for_old_path4174 if the path changed4175 creates a RedirectRoute for the old path4176 #create_redirect4177 creates a RedirectRoute with the same source4178 when the source is a Project4179 creates a RedirectRoute4180 when the source is not a project4181 creates a RedirectRoute4182 #delete_conflicting_redirects4183 deletes the redirect4184 when a redirect route with the same path exists4185 when the redirect route has matching case4186 deletes the redirect4187 when redirect routes with paths descending from the route path exists4188 deletes all redirects with paths that descend from the route path4189 when the redirect route is differently cased4190 deletes the redirect4191 #conflicting_redirects4192 returns an ActiveRecord::Relation4193 returns the redirect routes4194 when a redirect route with the same path exists4195 when the redirect route has matching case4196 returns the redirect route4197 when redirect routes with paths descending from the route path exists4198 returns the redirect routes4199 when the redirect route is differently cased4200 returns the redirect route4201 #delete_conflicting_orphaned_routes4202 when there is a conflicting route4203 when the route is orphaned4204 deletes the orphaned route4205 passes validation, as usual4206 when the route is not orphaned4207 does not delete the conflicting route4208 fails validation, as usual4209 when there are no conflicting routes4210 does not delete any routes4211 passes validation, as usual4212Projects::MirrorsController4213 setting up a remote mirror4214 when the current project is not a mirror42152018-10-27T13:11:03.009Z 150 TID-gmsnhi9xe INFO: Removing remote remote_mirror_1 from project 136542162018-10-27T13:11:03.014Z 150 TID-gmsnhi9xe ERROR: Could not remove remote remote_mirror_1 from project 13654217 allows to create a remote mirror4218 #update4219 With valid URL for a push4220 processes a successful update4221 should create a RemoteMirror object4222 With invalid URL for a push4223 processes an unsuccessful update4224 should not create a RemoteMirror object4225 #ssh_host_keys4226 invalid URLs4227 returns an error with a 400 response for URL "INVALID"4228 returns an error with a 400 response for URL "git@example.com:foo/bar.git"4229 returns an error with a 400 response for URL "ssh://git@example.com:foo/bar.git"4230 no data in cache4231 requests the cache to be filled and returns a 204 response4232 error in the cache4233 returns the error with a 400 response4234 data in the cache4235 returns the data with a 200 response4236Gitlab::MultiCollectionPaginator4237 combines both collections4238 includes elements second collection if first collection is empty4239 with a full first page4240 knows the total count of the collection4241 fills the first page with elements of the first collection4242 fils the second page with a mixture of of the first & second collection4243 fils the last page with elements from the second collection4244Issues Feed4245 GET /issues4246 renders atom feed with url parameters for project issues4247 renders atom feed with url parameters for group issues4248 when authenticated4249 renders atom feed4250 when authenticated via personal access token4251 renders atom feed4252 when authenticated via feed token4253 renders atom feed4254Search::GlobalService4255 #execute4256 unauthenticated4257 returns public projects only4258 authenticated4259 returns public, internal and private projects4260 returns only public & internal projects4261 project name is searchable4262User interacts with labels4263 shows the list of labels4264Search::SnippetService4265 #execute4266 unauthenticated4267 returns public snippets only4268 authenticated4269 returns only public & internal snippets for regular users4270 returns public, internal snippets and project private snippets for project members4271 returns public, internal and private snippets where user is the author4272 returns all snippets when user is admin4273EachBatch4274 .each_batch4275 yields an ActiveRecord::Relation when a block is given4276 yields a batch index as the second argument4277 accepts a custom batch size4278 does not include ORDER BYs in the yielded relations4279 allows updating of the yielded relations4280Users::BuildService4281 #execute4282 with an admin user4283 returns a valid user4284 allowed params4285 sets all allowed attributes4286 with "user_default_external" application setting4287 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4288 correctly sets user.external4289 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4290 correctly sets user.external4291 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4292 correctly sets user.external4293 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4294 correctly sets user.external4295 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4296 correctly sets user.external4297 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4298 correctly sets user.external4299 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4300 correctly sets user.external4301 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4302 correctly sets user.external4303 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4304 correctly sets user.external4305 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4306 correctly sets user.external4307 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4308 correctly sets user.external4309 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4310 correctly sets user.external4311 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4312 correctly sets user.external4313 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4314 correctly sets user.external4315 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4316 correctly sets user.external4317 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4318 correctly sets user.external4319 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4320 correctly sets user.external4321 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4322 correctly sets user.external4323 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4324 correctly sets user.external4325 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4326 correctly sets user.external4327 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4328 correctly sets user.external4329 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4330 correctly sets user.external4331 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4332 correctly sets user.external4333 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4334 correctly sets user.external4335 with non admin user4336 raises AccessDeniedError exception4337 with nil user4338 returns a valid user4339 when "send_user_confirmation_email" application setting is true4340 does not confirm the user4341 when "send_user_confirmation_email" application setting is false4342 confirms the user4343 with "user_default_external" application setting4344 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4345 sets the value of Gitlab::CurrentSettings.user_default_external4346 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4347 sets the value of Gitlab::CurrentSettings.user_default_external4348 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true4349 sets the value of Gitlab::CurrentSettings.user_default_external4350 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4351 sets the value of Gitlab::CurrentSettings.user_default_external4352 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4353 sets the value of Gitlab::CurrentSettings.user_default_external4354 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true4355 sets the value of Gitlab::CurrentSettings.user_default_external4356 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4357 sets the value of Gitlab::CurrentSettings.user_default_external4358 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4359 sets the value of Gitlab::CurrentSettings.user_default_external4360 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4361 sets the value of Gitlab::CurrentSettings.user_default_external4362 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4363 sets the value of Gitlab::CurrentSettings.user_default_external4364 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4365 sets the value of Gitlab::CurrentSettings.user_default_external4366 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4367 sets the value of Gitlab::CurrentSettings.user_default_external4368 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4369 sets the value of Gitlab::CurrentSettings.user_default_external4370 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false4371 sets the value of Gitlab::CurrentSettings.user_default_external4372 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4373 sets the value of Gitlab::CurrentSettings.user_default_external4374 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4375 sets the value of Gitlab::CurrentSettings.user_default_external4376 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false4377 sets the value of Gitlab::CurrentSettings.user_default_external4378 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4379 sets the value of Gitlab::CurrentSettings.user_default_external4380 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4381 sets the value of Gitlab::CurrentSettings.user_default_external4382 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4383 sets the value of Gitlab::CurrentSettings.user_default_external4384 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4385 sets the value of Gitlab::CurrentSettings.user_default_external4386 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4387 sets the value of Gitlab::CurrentSettings.user_default_external4388 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4389 sets the value of Gitlab::CurrentSettings.user_default_external4390 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4391 sets the value of Gitlab::CurrentSettings.user_default_external4392Gitlab::Plugin4393 .execute4394 successful execution4395 should equal true4396 should be empty4397 ensures plugin received data via stdin4398 non-executable4399 should equal false4400 should include "Permission denied"4401 non-zero exit4402 should equal false4403 should be empty4404Gitlab::UrlBuilder4405 .build4406 when passing a Commit4407 returns a proper URL4408 when passing an Issue4409 returns a proper URL4410 when passing a Milestone4411 belonging to a project4412 returns a proper URL4413 belonging to a group4414 returns a proper URL4415 when passing a MergeRequest4416 returns a proper URL4417 when passing a Note4418 on a Commit4419 returns a proper URL4420 on a Commit Diff4421 returns a proper URL4422 on an Issue4423 returns a proper URL4424 on a MergeRequest4425 returns a proper URL4426 on a MergeRequest Diff4427 returns a proper URL4428 on a ProjectSnippet4429 returns a proper URL4430 on a PersonalSnippet4431 returns a proper URL4432 on another object4433 returns a proper URL4434 when passing a WikiPage4435 returns a proper URL4436Gitlab::Badge::Coverage::Metadata4437 behaves like badge metadata4438 #to_html4439 points to link4440 contains clickable image4441 #to_markdown4443 should include "http://localhost/namespace1319/project1367/commits/feature"4444 #to_asciidoc4446 should include "http://localhost/namespace1321/project1369/commits/feature"4447 should include "image:"4448 should include "link="4449 should include "title="4450 #title4451 returns coverage report title4452 #image_url4453 returns valid url4454 #link_url4455 returns valid link4456DeployKeyEntity4457 returns deploy keys with projects a user can read4458 should eq {:id=>1, :user_id=>nil, :title=>"My title 977", :fingerprint=>"71:c9:c4:ee:29:d7:a6:cf:cc:15:1d:56:b8...project1377", :full_path=>"/namespace1329/project1377", :full_name=>"John Doe2294 / project1377"}}]}4459 returns can_edit true if user is a maintainer of project4460 should include {:can_edit => true}4461 returns can_edit true if a user admin4462 should include {:can_edit => true}4463Ci::BuildTraceChunks::Database4464 #available?4465 should be truthy4466 #data4467 when data exists4468 returns the data4469 when data does not exist4470 returns nil4471 #set_data4472 when data exists4473 overwrites data4474 when data does not exist4475 sets new data4476 #delete_data4477 when data exists4478 deletes data4479 when data does not exist4480 does nothing4481 #keys4482 returns empty array4483Disable individual triggers4484 service has multiple supported events4485 shows trigger checkboxes4486 services only has one supported event4487 doesn't show unnecessary Trigger checkboxes4488AutoDevops::DisableWorker#perform4489 disables auto devops for project4490 when project owner is a user4491 sends an email to pipeline user and project owner4492 when project does not have owner4493 sends an email to pipeline user4494 when pipeline is not related to a user and project does not have owner4495 does not send an email4496MergeRequestsHelper4497 ci_build_details_path4498 does not include api credentials in a link4499 #format_mr_branch_names4500 within the same project4501 should eq ["master", "feature"]4502 within different projects4503 should eq ["group110/project1404:master", "namespace1354/project1404:feature"]4504 #tab_link_for4505 supports the :force_link option4506 removes the data-toggle attributes4507ProjectAutoDevops4508 should belong to project4509 should define :deploy_strategy as an enum and store the value in a column with an integer type4510 should respond to #created_at4511 should respond to #updated_at4512 #has_domain?4513 when domain is defined4514 should have domain4515 when domain is empty4516 when there is an instance domain specified4517 should have domain4518 when there is no instance domain specified4519 should not have domain4520 #predefined_variables4521 when domain is defined4522 returns AUTO_DEVOPS_DOMAIN4523 when domain is not defined4524 when there is an instance domain specified4525 should include {:key => "AUTO_DEVOPS_DOMAIN", :value => "example.com", :public => true}4526 when there is no instance domain specified4527 should not include {:key => "AUTO_DEVOPS_DOMAIN", :value => "example.com", :public => true}4528 when deploy_strategy is manual4529 should include {:key => "INCREMENTAL_ROLLOUT_ENABLED", :value => "1"}4530 when deploy_strategy is continuous4531 should not include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"4532 when deploy_strategy is timed_incremental4533 should include {:key => "INCREMENTAL_ROLLOUT_MODE", :value => "timed"}4534 should not include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"4535 #create_gitlab_deploy_token4536 when the project is public4537 should not create a gitlab deploy token4538 when the project is internal4539 should create a gitlab deploy token4540 when the project is private4541 should create a gitlab deploy token4542 when autodevops is enabled at project level4543 should create a deploy token4544 when autodevops is enabled at instance level4545 should create a deploy token4546 when autodevops is disabled4547 should not create a deploy token4548 when the project already has an active gitlab-deploy-token4549 should not create a deploy token4550 when the project already has a revoked gitlab-deploy-token4551 should not create a deploy token4552Gitlab::Ci::Config::External::Mapper4553 #process4554 when 'include' keyword is defined as string4555 when the string is a local file4556 returns an array4557 returns File instances4558 when the string is a remote file4559 returns an array4560 returns File instances4561 when 'include' is defined as an array4562 returns an array4563 returns Files instances4564 when 'include' is not defined4565 returns an empty array4566RemoveOrphanedLabelLinks4567 add foreign key on label_id4568 removes orphaned labels without corresponding label4569 does not remove entries with valid label_id4570DeployKeyPolicy4571 updating a deploy_key4572 when a regular user4573 tries to update private deploy key attached to project4574 should be allowed :update_deploy_key4575 tries to update private deploy key attached to other project4576 should be disallowed :update_deploy_key4577 tries to update public deploy key4578 should be disallowed :update_deploy_key4579 when an admin user4580 tries to update private deploy key4581 should be allowed :update_deploy_key4582 when an admin user tries to update public deploy key4583 should be allowed :update_deploy_key4584Public Snippets4585 Unauthenticated user should see public snippets4586 Unauthenticated user should see raw public snippets4587Milestones::CloseService4588 #execute4589 should be valid4590 should be closed4591 event4592 should be truthy4593 should eq #<Milestone id:25 namespace1379/project1429%"Milestone v1.2">4594 should eq "closed"4595Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnWebhooks4596 #perform4597 migrates hooks where note_events is true4598 ignores hooks where note_events is false4599 ignores hooks where confidential_note_events has already been set4600ButtonHelper4601 http_clone_button4602 with internal auth enabled4603 when user has a password4604 shows no tooltip4605 when user has password automatically set4606 shows the password text on the dropdown4607 with internal auth disabled4608 when user has no personal access tokens4609 has a personal access token text on the dropdown description4610 when user has personal access tokens4611 does not have a personal access token text on the dropdown description4612 when user is ldap user4613 shows no tooltip4614 ssh_button4615 without an ssh key on the user4616 shows a warning on the dropdown description4617 without an ssh key on the user and user_show_add_ssh_key_message unset4618 there is no warning on the dropdown description4619 with an ssh key on the user4620 there is no warning on the dropdown description4621 ssh and http clone buttons4622 only shows the title of any of the clone buttons when append_link is false4623 clipboard_button4624 with default options4625 when no `text` attribute is not provided4626 shows copy to clipboard button with default configuration and no text set to copy4627 when `text` attribute is provided4628 shows copy to clipboard button with provided `text` to copy4629 when `title` attribute is provided4630 shows copy to clipboard button with provided `title` as tooltip4631 with `button_text` attribute provided4632 shows copy to clipboard button with provided `button_text` as button label4633 with `hide_tooltip` attribute provided4634 shows copy to clipboard button without tooltip support4635 with `hide_button_icon` attribute provided4636 shows copy to clipboard button without tooltip support4637Tags::CreateService4638 #execute4639 creates the tag and returns success4640 when target is invalid4641 returns an error4642 when tag already exists4643 returns an error4644 when pre-receive hook fails4645 returns an error4646mail_room.yml4647 when incoming email is disabled4648 contains no configuration4649 when incoming email is enabled4650 contains the intended configuration4651Group CI/CD settings4652 runners registration token4653 has a registration token4654 reload registration token4655 changes registration token4656Projects::EnableDeployKeyService4657 enables the key4658 trying to add an unaccessable key4659 returns nil if the key cannot be added4660 add the same key twice4661 returns existing key4662IssuesMovedToIdForeignKey4663 removes the orphaned moved_to_id4664Admin::Projects4665 GET /admin/projects4666 should be allowed for admin4667 should be denied for user4668 should be denied for visitor4669 GET /admin/users4670 should be allowed for admin4671 should be denied for user4672 should be denied for visitor4673 GET /admin/hooks4674 should be allowed for admin4675 should be denied for user4676 should be denied for visitor4677Ci::BuildMetadata4678 #update_timeout_state4679 when runner is not assigned to the job4680 doesn't change timeout value4681 doesn't change timeout_source value4682 when runner is assigned to the job4683 when runner timeout is lower than project timeout4684 sets runner timeout4685 sets runner_timeout_source4686 when runner timeout is higher than project timeout4687 sets project timeout4688 sets project_timeout_source4689Gitlab::ImportExport::WikiRestorer4690 restore a wiki Git repo4691 restores the wiki repo successfully4692 no wiki in the bundle4693 creates an empty wiki4694Profiles::NotificationsController4695 GET show4696 renders4697 POST update4698 updates only permitted attributes4699 shows an error message if the params are invalid4700Import::FogbugzController4701 GET status4702 assigns variables4703 does not show already added project4704VerifyPagesDomainService4705 #execute4706 verification code recognition (verified domain)4707 domain_sym: :domain, code_sym: :verification_code4708 verifies and enables the domain4709 verifies and enables when the code is contained partway through a TXT record4710 does not verify when the code is not present4711 domain_sym: :domain, code_sym: :keyed_verification_code4712 verifies and enables the domain4713 verifies and enables when the code is contained partway through a TXT record4714 does not verify when the code is not present4715 domain_sym: :verification_domain, code_sym: :verification_code4716 verifies and enables the domain4717 verifies and enables when the code is contained partway through a TXT record4718 does not verify when the code is not present4719 domain_sym: :verification_domain, code_sym: :keyed_verification_code4720 verifies and enables the domain4721 verifies and enables when the code is contained partway through a TXT record4722 does not verify when the code is not present4723 verified domain4724 unverifies (but does not disable) when the right code is not present4725 unverifies (but does not disable) when no records are present4726 expired domain4727 verifies and enables when the right code is present4728 disables when the right code is not present4729 invalid domain4730 can be disabled4731 timeout behaviour4732 sets a timeout on the DNS query4733 email notifications4734 factory: nil, verification_succeeds: true, expected_notification: nil4735 sends a notification if appropriate4736 factory: nil, verification_succeeds: false, expected_notification: :verification_failed4737 sends a notification if appropriate4738 factory: :reverify, verification_succeeds: true, expected_notification: nil4739 sends a notification if appropriate4740 factory: :reverify, verification_succeeds: false, expected_notification: :verification_failed4741 sends a notification if appropriate4742 factory: :unverified, verification_succeeds: true, expected_notification: :verification_succeeded4743 sends a notification if appropriate4744 factory: :unverified, verification_succeeds: false, expected_notification: nil4745 sends a notification if appropriate4746 factory: :expired, verification_succeeds: true, expected_notification: nil4747 sends a notification if appropriate4748 factory: :expired, verification_succeeds: false, expected_notification: :disabled4749 sends a notification if appropriate4750 factory: :disabled, verification_succeeds: true, expected_notification: :enabled4751 sends a notification if appropriate4752 factory: :disabled, verification_succeeds: false, expected_notification: nil4753 sends a notification if appropriate4754 pages verification disabled4755 skips email notifications4756 pages configuration updates4757 enabling a disabled domain4758 schedules an update4759 verifying an enabled domain4760 schedules an update4761 disabling an expired domain4762 schedules an update4763 failing to verify a disabled domain4764 does not schedule an update4765 no verification code4766 returns an error4767 pages domain verification is disabled4768 extends domain validity by unconditionally reverifying4769 does not shorten any grace period4770WikiPages::CreateService4771 #execute4772 creates wiki page with valid attributes4773 executes webhooks4774ProtectedBranches::CreateService4775 #execute4776 creates a new protected branch4777 when user does not have permission4778 creates a new protected branch if we skip authorization step4779 raises Gitlab::Access:AccessDeniedError4780 when a policy restricts rule creation4781 prevents creation of the protected branch rule4782Edit group label4783 update label with new title4784Oauth::AuthorizationsController4785 GET #new4786 without valid params4787 returns 200 code and renders error view4788 with valid params4789 returns 200 code and renders view4790 deletes session.user_return_to and redirects when skip authorization4791 when there is already an access token for the application4792 when the request scope matches any of the created token scopes4793 authorizes the request and redirects4794Projects > Files > User views files page4795 user sees folders and submodules sorted together, followed by files4796Gitlab::GithubImport::RefreshImportJidWorker4797 .perform_in_the_future4798 schedules a job in the future4799 #perform4800 when the project does not exist4801 does nothing4802 when the job is running4803 refreshes the import JID and reschedules itself4804 when the job is no longer running4805 returns4806 #find_project4807 returns a Project4808 returns nil for a project for which the import process failed4809 returns nil for a non-existing project4810Gitlab::GitalyClient4811 .stub_class4812 returns the gRPC health check stub4813 returns a Gitaly stub4814 .stub_address4815 returns the same result after being called multiple times4816 .stub4817 when passed a UNIX socket address4818 passes the address as-is to GRPC4819 when passed a TCP address4820 strips tcp:// prefix before passing it to GRPC::Core::Channel initializer4821 allow_n_plus_1_calls4822 when RequestStore is enabled4823 returns the result of the allow_n_plus_1_calls block4824 when RequestStore is not active4825 returns the result of the allow_n_plus_1_calls block4826 enforce_gitaly_request_limits?4827 when RequestStore is enabled4828 allows up the maximum number of allowed calls4829 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block4830 when the maximum number of calls has been reached4831 fails on the next call4832 when the maximum number of calls has been reached within an allow_n_plus_1_calls block4833 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block4834 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block4835 when RequestStore is not active4836 does not raise errors when the maximum number of allowed calls is exceeded4837 does not fail when the maximum number of calls is exceeded within an allow_n_plus_1_calls block4838 get_request_count4839 when RequestStore is enabled4840 when enforce_gitaly_request_limits is called outside of allow_n_plus_1_calls blocks4841 counts gitaly calls4842 when enforce_gitaly_request_limits is called inside and outside of allow_n_plus_1_calls blocks4843 counts gitaly calls4844 when reset_counts is called4845 resets counts4846 when RequestStore is not active4847 returns zero4848 feature_enabled?4849 when Gitaly is disabled4850 returns false4851 when the feature status is DISABLED4852 returns false4853 when the feature_status is OPT_IN4854 when the feature flag hasn't been set4855 returns false4856 when the feature flag is set to disable4857 returns false4858 when the feature flag is set to enable4859 returns true4860 when the feature flag is set to a percentage of time4861 bases the result on pseudo-random numbers4862 when a feature is not persisted4863 returns false when opt_into_all_features is off4864 returns true when the override is on4865 when the feature_status is OPT_OUT4866 when the feature flag hasn't been set4867 returns true4868 when the feature flag is set to disable4869 returns false4870 timeouts4871 with default values4872 returns expected values4873IssuablePolicy4874 #rules4875 when discussion is locked for the issuable4876 when the user is not a project member4877 can not create a note4878 when the user is a project member4879 can create a note4880shared/projects/_project.html.haml4881 should render creator avatar if project has a creator4882 should render a generic avatar if project does not have a creator4883Dashboard::GroupsController4884 renders group trees4885 only includes projects the user is a member of4886 when rendering an expanded hierarchy with public groups you are not a member of4887 renders only groups the user is a member of when searching hierarchy correctly4888Gitlab::Ci::Build::Credentials::Factory4889 when provider is valid4890 generates an array of credentials objects4891 when provider is not valid4892 generates an array without specific credential object4893Gitlab::BackgroundMigration::RollbackImportStateData4894 creates new import_state records with project's import data4895API::Avatar4896 GET /avatar4897 avatar uploaded to GitLab4898 user with matching public email address4899 returns the avatar url4900 no user with matching public email address4901 returns the avatar url from Gravatar4902 avatar uploaded to Gravatar4903 user with matching public email address4904 returns the avatar url from Gravatar4905 no user with matching public email address4906 returns the avatar url from Gravatar4907 public visibility level restricted4908 when authenticated4909 returns the avatar url4910 when unauthenticated4911 behaves like 403 response4912 returns 4034913Projects > Members > Owner cannot request access to his project4914 owner does not see the request access button4915SystemCheck::Orphans::RepositoryCheck4916 #multi_check4917 all orphans4918 prints list of all orphaned namespaces except @hashed4919 few orphans with existing namespace4920 prints list of orphaned namespaces4921 few orphans with existing namespace and parents with same name as orphans4922 prints list of orphaned namespaces ignoring parents with same namespace as orphans4923 no orphans4924 prints an empty list ignoring @hashed4925Gitlab::CycleAnalytics::ProductionEventFetcher4926 behaves like default query config4927 has the stage attribute4928 has the projection attributes4929Gitlab::Import::DatabaseHelpers4930 .insert_and_return_id4931 on PostgreSQL4932 returns the ID returned by the query4933 on MySQL4934 uses a separate query to retrieve the ID4935ProtectedTags::CreateService4936 #execute4937 creates a new protected tag4938read-only message4939 shows read-only banner when database is read-only4940 does not show read-only banner when database is able to read-write4941InstanceStatistics::ConversationalDevelopmentIndexController4942 behaves like instance statistics availability4943 GET #index4944 is available when the feature is available publicly4945 renders a 404 when the feature is not available publicly4946 for admins4947 allows access when the feature is not available publicly4948RuboCop::Cop::Migration::Timestamps4949 in migration4950 registers an offense when the "timestamps" method is used4951 does not register an offense when the "timestamps" method is not used4952 does not register an offense when the "timestamps_with_timezone" method is used4953 outside of migration4954 registers no offense4955LfsObject4956 #local_store?4957 returns true when file_store is nil4958 returns true when file_store is equal to LfsObjectUploader::Store::LOCAL4959 returns false whe file_store is equal to LfsObjectUploader::Store::REMOTE4960 #schedule_background_upload4961 when object storage is disabled4962 does not schedule the migration4963 when object storage is enabled4964 when background upload is enabled4965 when is licensed4966 schedules the model for migration4967 schedules the model for migration once4968 when background upload is disabled4969 schedules the model for migration4970 file is being stored4971 when object has nil store4972 is stored locally4973 when existing object has local store4974 is stored locally4975 when direct upload is enabled4976 when file is stored4977 is stored remotely4978Gitlab::Metrics::Methods4979 #define_counter4980 metrics access method not defined4981 defines metrics accessing method4982 metrics access method defined4983 raises error when trying to redefine method4984 metric is not cached4985 calls fetch_metric4986 metric is cached4987 returns cached metric4988 #fetch_counter4989 when counter is not cached4990 initializes counter metric4991 when counter is cached4992 uses class metric cache4993 when metric is reloaded4994 initializes counter metric4995 when metric is configured with feature4996 when feature is enabled4997 initializes counter metric4998 when feature is disabled4999 returns NullMetric5000 #define_gauge5001 metrics access method not defined5002 defines metrics accessing method5003 metrics access method defined5004 raises error when trying to redefine method5005 metric is not cached5006 calls fetch_metric5007 metric is cached5008 returns cached metric5009 #fetch_gauge5010 when gauge is not cached5011 initializes counter metric5012 when gauge is cached5013 uses class metric cache5014 when metric is reloaded5015 initializes gauge metric5016 when metric is configured with feature5017 when feature is enabled5018 initializes gauge metric5019 when feature is disabled5020 returns NullMetric5021 #define_histogram5022 metrics access method not defined5023 defines metrics accessing method5024 metrics access method defined5025 raises error when trying to redefine method5026 metric is not cached5027 calls fetch_metric5028 metric is cached5029 returns cached metric5030 #fetch_histogram5031 when histogram is not cached5032 initializes counter metric5033 when histogram is cached5034 uses class metric cache5035 when metric is reloaded5036 initializes histogram metric5037 when metric is configured with feature5038 when feature is enabled5039 initializes histogram metric5040 when feature is disabled5041 returns NullMetric5042BroadcastMessage5043 should be valid5044 validations5045 should allow :color to be ‹nil›5046 should allow :color to be ‹"#000"›5047 should allow :color to be ‹"#AABBCC"›5048 should not allow :color to be ‹"000"›5049 should allow :font to be ‹nil›5050 should allow :font to be ‹"#000"›5051 should allow :font to be ‹"#AABBCC"›5052 should not allow :font to be ‹"000"›5053 .current5054 returns message if time match5055 returns multiple messages if time match5056 returns empty list if time not come5057 returns empty list if time has passed5058 caches the output of the query5059 includes messages that need to be displayed in the future5060 does not clear the cache if only a future message should be displayed5061 #active?5062 is truthy when started and not ended5063 is falsey when ended5064 is falsey when not started5065 #started?5066 is truthy when starts_at has passed5067 is falsey when starts_at is in the future5068 #ended?5069 is truthy when ends_at has passed5070 is falsey when ends_at is in the future5071 #flush_redis_cache5072 flushes the Redis cache5073Gitlab::ManifestImport::Manifest5074 #valid?5075 valid file5076 should equal true5077 missing or invalid attributes5078 should equal false5079 errors5080 should include "Make sure a <remote> tag is present and is valid."5081 should include "Make sure every <project> tag has name and path attributes."5082 #projects5083 should eq 6605084 should eq "platform/build"5085 should eq "build/make"5087Gitlab::GitalyClient::ConflictFilesStitcher5088 enumeration5089 combines segregated ConflictFile messages together5090UserStatus5091 should validate that :user cannot be empty/falsy5092 should allow :emoji to be ‹"smirk"›5093 should not allow :emoji to be ‹"hello world"›5094 should not allow :emoji to be ‹""›5095 should validate that the length of :message is at most 1005096 should allow :message to be ‹""›5097 is expected to be deleted when the user is deleted5098CreateSnippetService5099 When public visibility is restricted5100 non-admins are not able to create a public snippet5101 admins are able to create a public snippet5102Gitlab::GithubImport::Representation::Issue5103 .from_api_response5104 does not set the user if the response did not include a user5105 behaves like an Issue5106 returns an instance of Issue5107 the returned Issue5108 includes the issue number5109 includes the issue title5110 includes the issue description5111 includes the milestone number5112 includes the issue state5113 includes the issue assignees5114 includes the label names5115 includes the author details5116 includes the created timestamp5117 includes the updated timestamp5118 is not a pull request5119 .from_json_hash5120 does not convert the author if it was not specified5121 behaves like an Issue5122 returns an instance of Issue5123 the returned Issue5124 includes the issue number5125 includes the issue title5126 includes the issue description5127 includes the milestone number5128 includes the issue state5129 includes the issue assignees5130 includes the label names5131 includes the author details5132 includes the created timestamp5133 includes the updated timestamp5134 is not a pull request5135 #labels?5136 returns true when the issue has labels assigned5137 returns false when the issue has no labels assigned5138 #pull_request?5139 returns false for an issue5140 returns true for a pull request5141 #truncated_title5142 truncates the title to 255 characters5143 does not truncate the title if it is shorter than 255 characters5144Emails::ConfirmService5145 #execute5146 sends a confirmation email again5147RuboCop::Cop::RubyInterpolationInTranslation5148 does not add an offence for a regular messages5149 adds the correct offence when using interpolation in a string5150 detects when using a ruby interpolation in the first argument of a pluralized string5151 detects when using a ruby interpolation in the second argument of a pluralized string5152 detects when using interpolation in a namespaced translation5153 does not add an offence for messages defined over multiple lines5154 adds an offence for violations in a message defined over multiple lines5155Gitlab::Auth::BlockedUserTracker5156 #log_blocked_user_activity!5157 when user is not blocked5158 does not log blocked user activity5159 when user is not blocked5160 logs blocked user activity5161Backup::Manager5162 #remove_old5163 when keep_time is zero5164 removes no files5165 prints a skipped message5166 when no valid file is found5167 removes no files5168 prints a done message5169 when there are no files older than keep_time5170 removes no files5171 prints a done message5172 when keep_time is set to remove files5173 removes matching files with a human-readable versioned timestamp5174 removes matching files with a human-readable versioned timestamp with tagged EE5175 removes matching files with a human-readable non-versioned timestamp5176 removes matching files without a human-readable timestamp5177 does not remove files that are not old enough5178 does not remove non-matching files5179 prints a done message5180 when removing a file fails5181 removes the remaining expected files5182 sets the correct removed count5183 prints the error from file that could not be removed5184 #unpack5185 when there are no backup files in the directory5186 fails the operation and prints an error5187 when there are two backup files in the directory and BACKUP variable is not set5188 prints the list of available backups5189 fails the operation and prints an error5190 when BACKUP variable is set to a non-existing file5191 fails the operation and prints an error5192 when BACKUP variable is set to a correct file5193 unpacks the file5194 #upload5195 target path5196 uses the tar filename by default5197 adds the DIRECTORY environment variable if present5198Import metrics on production seed5199 imports all prometheus metrics5200RuboCop::Cop::Migration::UpdateColumnInBatches5201 outside of a migration5202 does not register any offenses5203 in a migration5204 behaves like a migration file with no spec file5205 registers an offense when using update_column_in_batches5206 behaves like a migration file with a spec file5207 does not register any offenses5208 in a post migration5209 behaves like a migration file with no spec file5210 registers an offense when using update_column_in_batches5211 behaves like a migration file with a spec file5212 does not register any offenses5213PageLayoutHelper5214 page_description5215 defaults to nil5216 returns the last-pushed description5217 squishes multiple newlines5218 truncates5219 sanitizes all HTML5220 page_image5221 defaults to the GitLab logo5222 with @project assigned5223 uses Project avatar if available5224 falls back to the default when avatar_url is nil5225 with no assignments5226 falls back to the default5227 with @user assigned5228 uses User avatar if available5229 falls back to the default when avatar_url is nil5230 with no assignments5231 falls back to the default5232 with @group assigned5233 uses Group avatar if available5234 falls back to the default when avatar_url is nil5235 with no assignments5236 falls back to the default5237 page_card_attributes5238 raises ArgumentError when given more than two attributes5239 rejects blank values5240 page_card_meta_tags5241 returns the twitter:label and twitter:data tags5242 escapes content5243Bitbucket::Representation::PullRequest5244 #iid5245 should eq 15246 #author5247 should eq "Ben"5248 should be nil5249 #description5250 should eq "Text"5251 should be nil5252 #state5253 should eq "merged"5254 should eq "closed"5255 should eq "opened"5256 #title5257 should eq "Issue"5258 #source_branch_name5259 should eq "feature"5260 should be nil5261 #source_branch_sha5262 should eq "abcd123"5263 should be nil5264 #target_branch_name5265 should eq "master"5266 should be nil5267 #target_branch_sha5268 should eq "abcd123"5269 should be nil5270BasePolicy5271 .class_for5272 detects policy class based on the subject ancestors5273 detects policy class for a presented subject5274 uses GlobalPolicy when :global is given5275InternalRedirect5276 #safe_redirect_path5277 is `nil` for invalid uris5278 is `nil` for paths trying to include a host5279 returns the path if it is valid5280 returns the path with querystring if it is valid5281 #safe_redirect_path_for_url5282 is `nil` for invalid urls5283 is `nil` for urls from a with a different host5284 is `nil` for urls from a with a different port5285 returns the path if the url is on the same host5286 returns the path including querystring if the url is on the same host5287 #sanitize_redirect5288 returns `nil` for invalid paths5289 returns `nil` for invalid urls5290 returns input for valid paths5291 returns path for valid urls5292 #host_allowed?5293 allows uris with the same host and port5294 rejects uris with other host and port5295Gitlab::HealthChecks::Redis::QueuesCheck5296 #metrics5297 Check is passing5298 should include (have attributes {:name => "redis_queues_ping_success", :value => 1})5299 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})5300 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5301 Check is misbehaving5302 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})5303 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})5304 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5305 Check is timeouting5306 should include (have attributes {:name => "redis_queues_ping_success", :value => 0})5307 should include (have attributes {:name => "redis_queues_ping_timeout", :value => 1})5308 should include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})5309 #readiness5310 Check returns ok5311 should have attributes {:success => true}5312 Check is misbehaving5313 should have attributes {:success => false, :message => "unexpected Queues check result: error!"}5314 Check is timeouting5315 should have attributes {:success => false, :message => "Queues check timed out"}5316 #liveness5317 should eq #<struct Gitlab::HealthChecks::Result success=true, message=nil, labels=nil>5318Gitlab::DependencyLinker::GemfileLinker5319 .support?5320 supports Gemfile5321 supports gems.rb5322 does not support other files5323 #link5324 links sources5325 links dependencies5326 links GitHub repos5327 links Git repos5328Gitlab::Metrics::Samplers::RubySampler5329 #sample5330 samples various statistics5331 adds a metric containing the memory usage5332 adds a metric containing the amount of open file descriptors5333 clears any GC profiles5334 #sample_gc5335 adds a metric containing garbage collection time statistics5336 adds a metric containing garbage collection statistics5337Gitlab::RequestForgeryProtection5338 .call5339 when the request method is GET5340 does not raise an exception5341 when the request method is POST5342 when the CSRF token is valid5343 does not raise an exception5344 when the CSRF token is invalid5345 raises an ActionController::InvalidAuthenticityToken exception5346 .verified?5347 when the request method is GET5348 returns true5349 when the request method is POST5350 when the CSRF token is valid5351 returns true5352 when the CSRF token is invalid5353 returns false5354ChatTeam5355 should belong to namespace5356 should validate that :namespace is case-sensitively unique5357 should respond to #name5358 should respond to #team_id5359ChatMessage::WikiPageMessage5360 without markdown5361 #pretext5362 when :action == "create"5363 returns a message that a new wiki page was created5364 when :action == "update"5365 returns a message that a wiki page was updated5366 #attachments5367 when :action == "create"5368 returns the attachment for a new wiki page5369 when :action == "update"5370 returns the attachment for an updated wiki page5371 with markdown5372 #pretext5373 when :action == "create"5374 returns a message that a new wiki page was created5375 when :action == "update"5376 returns a message that a wiki page was updated5377 #attachments5378 when :action == "create"5379 returns the attachment for a new wiki page5380 when :action == "update"5381 returns the attachment for an updated wiki page5382 #activity5383 when :action == "create"5384 returns the attachment for a new wiki page5385 when :action == "update"5386 returns the attachment for an updated wiki page5387Gitlab::CycleAnalytics::TestStage5388 behaves like base stage5389 has the median data value5390 has the median data stage5391 has the median data description5392 has the title5393 has the events5394JsRegexValidator5395 #validates_each5396 user_default_internal_regex: nil, result: []5397 generates correct errors5398 user_default_internal_regex: "", result: []5399 generates correct errors5400 user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]5401 generates correct errors5402 user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]5403 generates correct errors5404 user_default_internal_regex: "[a-z&&[^uo]]", result: ["Dropped unsupported set intersection '[a-z&&[^uo]]' at index 0", "Dropped unsupported nested negative set data '[^uo]' at index 6"]5405 generates correct errors5406MoveSystemUploadFolder5407 #up5408 moves the related folder5409 creates a symlink linking making the new folder available on the old path5410 does not move if the target directory already exists5411 #down5412 moves the system folder back to the old location5413 removes the symlink if it existed5414 does not move if the old directory already exists5415Gitlab::Kubernetes::Namespace5416 should eq "a_namespace"5417 #exists?5418 when namespace do not exits5419 returns false5420 when namespace exits5421 returns true5422 when cluster cannot be reached5423 raises exception5424 #create!5425 creates a namespace5426 #ensure_exists!5427 checks for existing namespace before creating5428 do not re-create an existing namespace5429Gitlab::Ci::Config::External::File::Base5430 #valid?5431 when location is not a YAML file5432 should not be valid5433 when location has not a valid naming scheme5434 should not be valid5435 when location is a valid .yml extension5436 should be valid5437 when location is a valid .yaml extension5438 should be valid5439 when there are YAML syntax errors5440 is not a valid file5441ContainerRegistry::Client5442 #blob5443 GET /v2/:name/blobs/:digest5444 follows 307 redirect for GET /v2/:name/blobs/:digest5445Bitbucket::Representation::Comment5446 #author5447 should eq "Ben"5448 should be nil5449 #note5450 should eq "Text"5451 should be nil5452 #created_at5453 should eq Sat, 27 Oct 20185454 #updated_at5455 should eq Sat, 27 Oct 20185456 should eq Sat, 27 Oct 20185457Banzai::CrossProjectReference5458 #parent_from_ref5459 when no project was referenced5460 returns the project from context5461 when no project was referenced in group context5462 returns the group from context5463 when referenced project does not exist5464 returns nil5465 when referenced project exists5466 returns the referenced project5467Gitlab::Sentry5468 .context5469 adds the locale to the tags5470 .track_exception5471 raises the exception if it should5472 when exceptions should not be raised5473 logs the exception with all attributes passed5474 sets the context5475Gitlab::Ci::MaskSecret5476 #mask5477 masks exact number of characters5478 masks multiple occurrences5479 does not mask if not found5480 does support null token5481Gitlab::Kubernetes::Helm::BaseCommand5482 behaves like helm commands5483 #generate_script5484 should return appropriate command5485 #pod_resource5486 should returns a kubeclient resoure with pod content for application5487 when rbac is true5488 also returns a kubeclient resource5489 #pod_name5490 should eq "install-test-class-name"5491Gitlab::Ci::Config::Entry::Paths5492 validations5493 when entry config value is valid5494 #value5495 returns key value5496 #valid?5497 is valid5498 when entry value is not valid5499 #errors5500 saves errors5501Gitlab::CiAccess5502 #can_do_action?5503 when action is :build_download_code5504 should be truthy5505 when action is not :build_download_code5506 should be falsey5507Gitlab::ImportExport::HashUtil5508 .deep_symbolize_array!5509 symbolizes keys5510 .deep_symbolize_array_with_date!5511 symbolizes keys5512 transforms date strings into Time objects5513PluginWorker5514 #perform5515 executes Gitlab::Plugin with expected values5516 logs message in case of plugin execution failure5517Gitlab::Kubernetes::RoleBinding#generate5518 should build a Kubeclient Resource5519ProjectMirrorSerializer5520 represents ProjectMirror entities5521Types::MergeRequestType5522 should expose permissions using Types::PermissionTypes::MergeRequest5523UploaderHelper5524 #extension_match?5525 returns false if file does not exists5526Knapsack report was generated. Preview:5527{5528 "spec/models/merge_request_spec.rb": 141.23418164253235,5529 "spec/services/auth/container_registry_authentication_service_spec.rb": 85.84328937530518,5530 "spec/features/task_lists_spec.rb": 67.07801604270935,5531 "spec/services/ci/process_pipeline_service_spec.rb": 44.310922145843506,5532 "spec/features/issues/filtered_search/dropdown_assignee_spec.rb": 39.10414743423462,5533 "spec/controllers/projects/notes_controller_spec.rb": 27.398582458496094,5534 "spec/models/concerns/resolvable_discussion_spec.rb": 33.6198844909668,5535 "spec/services/projects/import_service_spec.rb": 27.156850337982178,5536 "spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb": 24.621423721313477,5537 "spec/features/users/overview_spec.rb": 20.03309392929077,5538 "spec/policies/group_policy_spec.rb": 16.31074833869934,5539 "spec/rack_servers/puma_spec.rb": 18.027135848999023,5540 "spec/features/issuables/discussion_lock_spec.rb": 16.83280873298645,5541 "spec/lib/gitlab/diff/file_spec.rb": 12.135040998458862,5542 "spec/features/boards/new_issue_spec.rb": 13.838268518447876,5543 "spec/features/merge_requests/user_lists_merge_requests_spec.rb": 10.883260250091553,5544 "spec/controllers/projects/merge_requests/conflicts_controller_spec.rb": 11.569063901901245,5545 "spec/features/projects/labels/update_prioritization_spec.rb": 11.02751874923706,5546 "spec/features/projects/blobs/user_creates_new_blob_in_new_project_spec.rb": 8.211160898208618,5547 "spec/models/project_services/hipchat_service_spec.rb": 9.248743295669556,5548 "spec/models/concerns/mentionable_spec.rb": 6.0361714363098145,5549 "spec/lib/gitlab/data_builder/note_spec.rb": 7.317946910858154,5550 "spec/features/profiles/active_sessions_spec.rb": 7.540604829788208,5551 "spec/controllers/sessions_controller_spec.rb": 5.809182167053223,5552 "spec/models/concerns/avatarable_spec.rb": 6.714177846908569,5553 "spec/features/merge_request/user_sees_discussions_spec.rb": 6.463111400604248,5554 "spec/controllers/snippets_controller_spec.rb": 6.017487525939941,5555 "spec/models/ci/group_spec.rb": 4.293017387390137,5556 "spec/features/projects/files/undo_template_spec.rb": 5.200485706329346,5557 "spec/features/boards/reload_boards_on_browser_back_spec.rb": 5.654826641082764,5558 "spec/controllers/projects/pages_domains_controller_spec.rb": 4.675196647644043,5559 "spec/controllers/projects/boards_controller_spec.rb": 4.845353841781616,5560 "spec/features/projects/remote_mirror_spec.rb": 2.989640712738037,5561 "spec/services/clusters/gcp/finalize_creation_service_spec.rb": 3.626272201538086,5562 "spec/services/ci/stop_environments_service_spec.rb": 3.858690023422241,5563 "spec/features/projects/services/user_activates_slack_slash_command_spec.rb": 2.924893856048584,5564 "spec/lib/gitlab/background_migration/populate_fork_networks_range_spec.rb": 3.7827494144439697,5565 "spec/features/boards/keyboard_shortcut_spec.rb": 3.19579815864563,5566 "spec/models/route_spec.rb": 2.8401236534118652,5567 "spec/controllers/projects/mirrors_controller_spec.rb": 2.449951171875,5568 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 2.730396032333374,5569 "spec/features/atom/issues_spec.rb": 2.4684410095214844,5570 "spec/services/search/global_service_spec.rb": 2.9694342613220215,5571 "spec/features/projects/milestones/user_interacts_with_labels_spec.rb": 2.7107763290405273,5572 "spec/services/search/snippet_service_spec.rb": 2.381906509399414,5573 "spec/models/concerns/each_batch_spec.rb": 2.9657845497131348,5574 "spec/services/users/build_service_spec.rb": 1.659153699874878,5575 "spec/lib/gitlab/plugin_spec.rb": 2.293457269668579,5576 "spec/lib/gitlab/url_builder_spec.rb": 1.8661129474639893,5577 "spec/lib/gitlab/badge/coverage/metadata_spec.rb": 1.8911373615264893,5578 "spec/serializers/deploy_key_entity_spec.rb": 2.1808552742004395,5579 "spec/models/ci/build_trace_chunks/database_spec.rb": 1.779381275177002,5580 "spec/features/projects/services/disable_triggers_spec.rb": 1.5769906044006348,5581 "spec/workers/auto_devops/disable_worker_spec.rb": 1.9172379970550537,5582 "spec/helpers/merge_requests_helper_spec.rb": 1.5063340663909912,5583 "spec/models/project_auto_devops_spec.rb": 1.9308125972747803,5584 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 1.522507667541504,5585 "spec/migrations/remove_orphaned_label_links_spec.rb": 1.8294589519500732,5586 "spec/policies/deploy_key_policy_spec.rb": 1.8779473304748535,5587 "spec/features/snippets/public_snippets_spec.rb": 1.3909823894500732,5588 "spec/services/milestones/close_service_spec.rb": 1.4210786819458008,5589 "spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb": 1.283322811126709,5590 "spec/helpers/button_helper_spec.rb": 1.037639856338501,5591 "spec/services/tags/create_service_spec.rb": 1.139976978302002,5592 "spec/config/mail_room_spec.rb": 1.3574488162994385,5593 "spec/features/groups/settings/ci_cd_spec.rb": 0.9206023216247559,5594 "spec/services/projects/enable_deploy_key_service_spec.rb": 1.096775770187378,5595 "spec/migrations/issues_moved_to_id_foreign_key_spec.rb": 1.182539701461792,5596 "spec/features/security/admin_access_spec.rb": 1.2939867973327637,5597 "spec/models/ci/build_metadata_spec.rb": 0.7518970966339111,5598 "spec/lib/gitlab/import_export/wiki_restorer_spec.rb": 1.0036218166351318,5599 "spec/controllers/profiles/notifications_controller_spec.rb": 1.0256075859069824,5600 "spec/controllers/import/fogbugz_controller_spec.rb": 0.5217025279998779,5601 "spec/services/verify_pages_domain_service_spec.rb": 0.5933246612548828,5602 "spec/services/wiki_pages/create_service_spec.rb": 0.6958227157592773,5603 "spec/services/protected_branches/create_service_spec.rb": 0.8693618774414062,5604 "spec/features/groups/labels/edit_spec.rb": 0.4497396945953369,5605 "spec/controllers/oauth/authorizations_controller_spec.rb": 0.4889051914215088,5606 "spec/features/projects/files/files_sort_submodules_with_folders_spec.rb": 0.9103929996490479,5607 "spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb": 0.6715407371520996,5608 "spec/lib/gitlab/gitaly_client_spec.rb": 0.2223207950592041,5609 "spec/policies/issuable_policy_spec.rb": 0.5211012363433838,5610 "spec/views/shared/projects/_project.html.haml_spec.rb": 0.4085569381713867,5611 "spec/controllers/dashboard/groups_controller_spec.rb": 0.5134692192077637,5612 "spec/lib/gitlab/ci/build/credentials/factory_spec.rb": 0.5574705600738525,5613 "spec/lib/gitlab/background_migration/rollback_import_state_data_spec.rb": 0.6870956420898438,5614 "spec/requests/api/avatar_spec.rb": 0.5909264087677002,5615 "spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb": 0.5171864032745361,5616 "spec/lib/system_check/orphans/repository_check_spec.rb": 0.3696553707122803,5617 "spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb": 0.3721945285797119,5618 "spec/lib/gitlab/import/database_helpers_spec.rb": 0.4655749797821045,5619 "spec/services/protected_tags/create_service_spec.rb": 0.21972179412841797,5620 "spec/features/read_only_spec.rb": 0.26775193214416504,5621 "spec/controllers/instance_statistics/conversational_development_index_controller_spec.rb": 0.2488107681274414,5622 "spec/rubocop/cop/migration/timestamps_spec.rb": 0.29335713386535645,5623 "spec/models/lfs_object_spec.rb": 0.11300945281982422,5624 "spec/lib/gitlab/metrics/methods_spec.rb": 0.12825679779052734,5625 "spec/models/broadcast_message_spec.rb": 0.1784658432006836,5626 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 0.17063164710998535,5627 "spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb": 0.2293248176574707,5628 "spec/models/user_status_spec.rb": 0.19754719734191895,5629 "spec/services/create_snippet_service_spec.rb": 0.1985149383544922,5630 "spec/lib/gitlab/github_import/representation/issue_spec.rb": 0.07932519912719727,5631 "spec/services/emails/confirm_service_spec.rb": 0.12832856178283691,5632 "spec/rubocop/cop/ruby_interpolation_in_translation_spec.rb": 0.04358816146850586,5633 "spec/lib/gitlab/auth/blocked_user_tracker_spec.rb": 0.0994253158569336,5634 "spec/lib/backup/manager_spec.rb": 0.0979149341583252,5635 "spec/db/production/import_common_metrics_spec.rb": 0.1411728858947754,5636 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 0.09279584884643555,5637 "spec/helpers/page_layout_helper_spec.rb": 0.05413651466369629,5638 "spec/lib/bitbucket/representation/pull_request_spec.rb": 0.03946566581726074,5639 "spec/policies/base_policy_spec.rb": 0.09205865859985352,5640 "spec/controllers/concerns/internal_redirect_spec.rb": 0.037972211837768555,5641 "spec/lib/gitlab/health_checks/redis/queues_check_spec.rb": 0.044744253158569336,5642 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.05601000785827637,5643 "spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb": 0.034966230392456055,5644 "spec/lib/gitlab/request_forgery_protection_spec.rb": 0.03172874450683594,5645 "spec/models/chat_team_spec.rb": 0.03676581382751465,5646 "spec/models/project_services/chat_message/wiki_page_message_spec.rb": 0.023419618606567383,5647 "spec/lib/gitlab/cycle_analytics/test_stage_spec.rb": 0.02059459686279297,5648 "spec/validators/js_regex_validator_spec.rb": 0.02220296859741211,5649 "spec/migrations/move_system_upload_folder_spec.rb": 0.02135491371154785,5650 "spec/lib/gitlab/kubernetes/namespace_spec.rb": 0.017644166946411133,5651 "spec/lib/gitlab/ci/config/external/file/base_spec.rb": 0.014597415924072266,5652 "spec/lib/container_registry/client_spec.rb": 0.019883394241333008,5653 "spec/lib/bitbucket/representation/comment_spec.rb": 0.015059709548950195,5654 "spec/lib/banzai/cross_project_reference_spec.rb": 0.01506185531616211,5655 "spec/lib/gitlab/sentry_spec.rb": 0.010335922241210938,5656 "spec/lib/gitlab/ci/mask_secret_spec.rb": 0.009023904800415039,5657 "spec/lib/gitlab/kubernetes/helm/base_command_spec.rb": 0.0093994140625,5658 "spec/lib/gitlab/ci/config/entry/paths_spec.rb": 0.007466554641723633,5659 "spec/lib/gitlab/ci_access_spec.rb": 0.004213571548461914,5660 "spec/lib/gitlab/import_export/hash_util_spec.rb": 0.007049560546875,5661 "spec/workers/plugin_worker_spec.rb": 0.005869865417480469,5662 "spec/lib/gitlab/kubernetes/role_binding_spec.rb": 0.002887248992919922,5663 "spec/serializers/project_mirror_serializer_spec.rb": 0.0027997493743896484,5664 "spec/graphql/types/permission_types/merge_request_type_spec.rb": 0.003467082977294922,5665 "spec/uploaders/uploader_helper_spec.rb": 0.0034518241882324225666}5667Knapsack global time execution for tests: 13m 23s5668Pending: (Failures listed here are expected and do not affect your suite's status)5669 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required does not validate presence5670 # No reason given5671 # ./spec/support/shared_examples/models/atomic_internal_id_spec.rb:335672 2) Merge request > User sees discussions Commit comments displayed in MR context a regular commit comment behaves like a functional discussion is displayed5673 # Temporarily skipped with xit5674 # ./spec/features/merge_request/user_sees_discussions_spec.rb:575675 3) Merge request > User sees discussions Commit comments displayed in MR context a regular commit comment behaves like a functional discussion can be replied to5676 # Temporarily skipped with xit5677 # ./spec/features/merge_request/user_sees_discussions_spec.rb:625678 4) Merge request > User sees discussions Commit comments displayed in MR context a commit diff comment behaves like a functional discussion is displayed5679 # Temporarily skipped with xit5680 # ./spec/features/merge_request/user_sees_discussions_spec.rb:575681 5) Merge request > User sees discussions Commit comments displayed in MR context a commit diff comment behaves like a functional discussion can be replied to5682 # Temporarily skipped with xit5683 # ./spec/features/merge_request/user_sees_discussions_spec.rb:625684Finished in 14 minutes 48 seconds (files took 16.16 seconds to load)56851959 examples, 0 failures, 5 pending5687$ date5688Sat Oct 27 13:13:01 UTC 20185691coverage/: found 5 matching files 5692knapsack/: found 4 matching files 5693rspec_flaky/: found 4 matching files 5694WARNING: tmp/capybara/: no matching files 5695Uploading artifacts to coordinator... ok id=113407430 responseStatus=201 Created token=fmMte57V5696Uploading artifacts...5697junit_rspec.xml: found 1 matching files 5698Uploading artifacts to coordinator... ok id=113407430 responseStatus=201 Created token=fmMte57V5699Job succeeded