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

Gilbert Roulot
1Running with gitlab-runner 11.0.0-rc1 (6dcccded)2 on docker-auto-scale-com 30d62d593Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...4Starting service postgres:9.2 ...5Pulling docker image postgres:9.2 ...6Using docker image sha256:18cdbca56093c841d28e629eb8acd4224afe0aa4c57c839351fc181888b8a470 for postgres:9.2 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:caaeda72bf8fe795b75382088b6de0db742b512921061e838450127579ce3e1e for redis:alpine ...10Starting service docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...11Pulling docker image docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...12Using docker image sha256:ca27036dd5e7fb5aaaa0401342f8160aaff408422cd3b19af85be83478256745 for docker.elastic.co/elasticsearch/elasticsearch:5.5.2 ...13Waiting for services to be up and running...14Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...15Using docker image sha256:fe85dded4608c09093048de599b86386241171fcc0e1e6ed66bd48d927e8c932 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ... 16 Running on runner-30d62d59-project-278964-concurrent-0 via runner-30d62d59-prm-1530021429-ea785cfc...
00:01
17 Cloning repository for 5488_license_management_app_blacklist_backend with git depth set to 20...
00:09
18Cloning into '/builds/gitlab-org/gitlab-ee'...19Checking out 9b412872 as 5488_license_management_app_blacklist_backend...20Skipping Git submodules setup22Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/278964/ruby-2.4.4-debian-stretch-with-yarn-1 23Successfully extracted cache25Downloading artifacts from coordinator... ok id=77521866 responseStatus=200 OK token=tTkyAyhq26Downloading artifacts for compile-assets (77521867)...27Downloading artifacts from coordinator... ok id=77521867 responseStatus=200 OK token=wmuNn8yw28Downloading artifacts for setup-test-env (77521869)...29Downloading artifacts from coordinator... ok id=77521869 responseStatus=200 OK token=1w6WnMuM30WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 32Bundler version 1.16.233$ date34Tue Jun 26 14:01:31 UTC 201835$ source scripts/utils.sh36$ date37Tue Jun 26 14:01:31 UTC 201838$ source scripts/prepare_build.sh39The Gemfile's dependencies are satisfied40Successfully installed knapsack-1.16.0411 gem installed42CREATE ROLE43GRANT44-- enable_extension("plpgsql")45 -> 0.0078s46-- enable_extension("pg_trgm")47 -> 0.0100s48-- create_table("abuse_reports", {:force=>:cascade})49 -> 0.0165s50-- create_table("appearances", {:force=>:cascade})51 -> 0.0057s52-- create_table("application_setting_terms", {:force=>:cascade})53 -> 0.0080s54-- create_table("application_settings", {:force=>:cascade})55 -> 0.0264s56-- create_table("approvals", {:force=>:cascade})57 -> 0.0639s58-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})59 -> 0.0230s60-- create_table("approver_groups", {:force=>:cascade})61 -> 0.0072s62-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})63 -> 0.0031s64-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})65 -> 0.0028s66-- create_table("approvers", {:force=>:cascade})67 -> 0.0047s68-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})69 -> 0.0027s70-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})71 -> 0.0027s72-- create_table("audit_events", {:force=>:cascade})73 -> 0.0044s74-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})75 -> 0.0047s76-- create_table("award_emoji", {:force=>:cascade})77 -> 0.0046s78-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})79 -> 0.0153s80-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})81 -> 0.0104s82-- create_table("badges", {:force=>:cascade})83 -> 0.0183s84-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})85 -> 0.0037s86-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})87 -> 0.0035s88-- create_table("board_assignees", {:force=>:cascade})89 -> 0.0038s90-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})91 -> 0.0040s92-- create_table("board_labels", {:force=>:cascade})93 -> 0.0178s94-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})95 -> 0.0043s96-- create_table("boards", {:force=>:cascade})97 -> 0.0105s98-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})99 -> 0.0059s100-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})101 -> 0.0036s102-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})103 -> 0.0035s104-- create_table("broadcast_messages", {:force=>:cascade})105 -> 0.0059s106-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})107 -> 0.0040s108-- create_table("chat_names", {:force=>:cascade})109 -> 0.0059s110-- 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})111 -> 0.0048s112-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})113 -> 0.0031s114-- create_table("chat_teams", {:force=>:cascade})115 -> 0.0084s116-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})117 -> 0.0040s118-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})119 -> 0.0066s120-- 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})121 -> 0.0038s122-- create_table("ci_build_trace_section_names", {:force=>:cascade})123 -> 0.0157s124-- 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})125 -> 0.0034s126-- create_table("ci_build_trace_sections", {:force=>:cascade})127 -> 0.0030s128-- 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})129 -> 0.0027s130-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})131 -> 0.0214s132-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})133 -> 0.0028s134-- create_table("ci_builds", {:force=>:cascade})135 -> 0.0156s136-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})137 -> 0.0028s138-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})139 -> 0.0032s140-- 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})141 -> 0.0033s142-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})143 -> 0.0065s144-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})145 -> 0.0188s146-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})147 -> 0.0034s148-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})149 -> 0.0034s150-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})151 -> 0.0031s152-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})153 -> 0.0032s154-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})155 -> 0.0034s156-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})157 -> 0.0032s158-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})159 -> 0.0038s160-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})161 -> 0.0032s162-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})163 -> 0.0032s164-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})165 -> 0.0032s166-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})167 -> 0.0027s168-- create_table("ci_builds_metadata", {:force=>:cascade})169 -> 0.0032s170-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})171 -> 0.0028s172-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})173 -> 0.0026s174-- create_table("ci_group_variables", {:force=>:cascade})175 -> 0.0050s176-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})177 -> 0.0030s178-- create_table("ci_job_artifacts", {:force=>:cascade})179 -> 0.0073s180-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})181 -> 0.0027s182-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})183 -> 0.0025s184-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})185 -> 0.0045s186-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})187 -> 0.0035s188-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})189 -> 0.0048s190-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})191 -> 0.0025s192-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})193 -> 0.0059s194-- 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})195 -> 0.0134s196-- create_table("ci_pipeline_schedules", {:force=>:cascade})197 -> 0.0062s198-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})199 -> 0.0033s200-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})201 -> 0.0030s202-- create_table("ci_pipeline_variables", {:force=>:cascade})203 -> 0.0110s204-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})205 -> 0.0043s206-- create_table("ci_pipelines", {:force=>:cascade})207 -> 0.0076s208-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})209 -> 0.0036s210-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})211 -> 0.0038s212-- 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})213 -> 0.0039s214-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})215 -> 0.0038s216-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})217 -> 0.0269s218-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})219 -> 0.0040s220-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})221 -> 0.0031s222-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})223 -> 0.0038s224-- create_table("ci_runner_namespaces", {:force=>:cascade})225 -> 0.0046s226-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})227 -> 0.0045s228-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})229 -> 0.0048s230-- create_table("ci_runner_projects", {:force=>:cascade})231 -> 0.0033s232-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})233 -> 0.0025s234-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})235 -> 0.0027s236-- create_table("ci_runners", {:force=>:cascade})237 -> 0.0075s238-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})239 -> 0.0025s240-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})241 -> 0.0024s242-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})243 -> 0.0025s244-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})245 -> 0.0024s246-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})247 -> 0.0028s248-- create_table("ci_sources_pipelines", {:force=>:cascade})249 -> 0.0035s250-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})251 -> 0.0026s252-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})253 -> 0.0095s254-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})255 -> 0.0059s256-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})257 -> 0.0026s258-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})259 -> 0.0028s260-- create_table("ci_stages", {:force=>:cascade})261 -> 0.0095s262-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})263 -> 0.0027s264-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})265 -> 0.0060s266-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})267 -> 0.0026s268-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})269 -> 0.0025s270-- create_table("ci_trigger_requests", {:force=>:cascade})271 -> 0.0073s272-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})273 -> 0.0025s274-- create_table("ci_triggers", {:force=>:cascade})275 -> 0.0062s276-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})277 -> 0.0029s278-- create_table("ci_variables", {:force=>:cascade})279 -> 0.0091s280-- 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})281 -> 0.0053s282-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})283 -> 0.0087s284-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})285 -> 0.0042s286-- create_table("cluster_projects", {:force=>:cascade})287 -> 0.0034s288-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})289 -> 0.0331s290-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})291 -> 0.0041s292-- create_table("cluster_providers_gcp", {:force=>:cascade})293 -> 0.0095s294-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})295 -> 0.0033s296-- create_table("clusters", {:force=>:cascade})297 -> 0.0170s298-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})299 -> 0.0033s300-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})301 -> 0.0045s302-- create_table("clusters_applications_helm", {:force=>:cascade})303 -> 0.0059s304-- create_table("clusters_applications_ingress", {:force=>:cascade})305 -> 0.0093s306-- create_table("clusters_applications_jupyter", {:force=>:cascade})307 -> 0.0056s308-- create_table("clusters_applications_prometheus", {:force=>:cascade})309 -> 0.0101s310-- create_table("clusters_applications_runners", {:force=>:cascade})311 -> 0.0062s312-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})313 -> 0.0028s314-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})315 -> 0.0029s316-- create_table("container_repositories", {:force=>:cascade})317 -> 0.0037s318-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})319 -> 0.0024s320-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})321 -> 0.0023s322-- create_table("conversational_development_index_metrics", {:force=>:cascade})323 -> 0.0050s324-- create_table("deploy_keys_projects", {:force=>:cascade})325 -> 0.0034s326-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})327 -> 0.0033s328-- create_table("deploy_tokens", {:force=>:cascade})329 -> 0.0060s330-- 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})331 -> 0.0061s332-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})333 -> 0.0028s334-- create_table("deployments", {:force=>:cascade})335 -> 0.0053s336-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})337 -> 0.0031s338-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})339 -> 0.0029s340-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})341 -> 0.0030s342-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})343 -> 0.0027s344-- create_table("emails", {:force=>:cascade})345 -> 0.0046s346-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})347 -> 0.0024s348-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})349 -> 0.0022s350-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})351 -> 0.0022s352-- create_table("environments", {:force=>:cascade})353 -> 0.0040s354-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})355 -> 0.0024s356-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})357 -> 0.0024s358-- create_table("epic_issues", {:force=>:cascade})359 -> 0.0027s360-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})361 -> 0.0023s362-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})363 -> 0.0022s364-- create_table("epic_metrics", {:force=>:cascade})365 -> 0.0026s366-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})367 -> 0.0356s368-- create_table("epics", {:force=>:cascade})369 -> 0.0052s370-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})371 -> 0.0028s372-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})373 -> 0.0025s374-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})375 -> 0.0027s376-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})377 -> 0.0024s378-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})379 -> 0.0025s380-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})381 -> 0.0025s382-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})383 -> 0.0026s384-- create_table("events", {:force=>:cascade})385 -> 0.0047s386-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})387 -> 0.0032s388-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})389 -> 0.0029s390-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})391 -> 0.0050s392-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})393 -> 0.0038s394-- create_table("feature_gates", {:force=>:cascade})395 -> 0.0097s396-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})397 -> 0.0072s398-- create_table("features", {:force=>:cascade})399 -> 0.0086s400-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})401 -> 0.0035s402-- create_table("fork_network_members", {:force=>:cascade})403 -> 0.0041s404-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})405 -> 0.0035s406-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})407 -> 0.0048s408-- create_table("fork_networks", {:force=>:cascade})409 -> 0.0067s410-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})411 -> 0.0029s412-- create_table("forked_project_links", {:force=>:cascade})413 -> 0.0030s414-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})415 -> 0.0028s416-- create_table("gcp_clusters", {:force=>:cascade})417 -> 0.0056s418-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})419 -> 0.0045s420-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})421 -> 0.0028s422-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})423 -> 0.0024s424-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})425 -> 0.0022s426-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})427 -> 0.0023s428-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})429 -> 0.0027s430-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})431 -> 0.0130s432-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})433 -> 0.0040s434-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})435 -> 0.0026s436-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})437 -> 0.0043s438-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})439 -> 0.0024s440-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})441 -> 0.0157s442-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})443 -> 0.0024s444-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})445 -> 0.0039s446-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})447 -> 0.0023s448-- create_table("geo_node_namespace_links", {:force=>:cascade})449 -> 0.0026s450-- add_index("geo_node_namespace_links", ["geo_node_id", "namespace_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id_and_namespace_id", :unique=>true, :using=>:btree})451 -> 0.0029s452-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})453 -> 0.0026s454-- create_table("geo_node_statuses", {:force=>:cascade})455 -> 0.0055s456-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})457 -> 0.0030s458-- create_table("geo_nodes", {:force=>:cascade})459 -> 0.0152s460-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})461 -> 0.0117s462-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})463 -> 0.0029s464-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})465 -> 0.0032s466-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})467 -> 0.0032s468-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})469 -> 0.0034s470-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})471 -> 0.0049s472-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})473 -> 0.0023s474-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})475 -> 0.0038s476-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})477 -> 0.0023s478-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})479 -> 0.0040s480-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})481 -> 0.0027s482-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})483 -> 0.0052s484-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})485 -> 0.0028s486-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})487 -> 0.0033s488-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})489 -> 0.0051s490-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})491 -> 0.0143s492-- create_table("gpg_key_subkeys", {:force=>:cascade})493 -> 0.0058s494-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})495 -> 0.0046s496-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})497 -> 0.0028s498-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})499 -> 0.0026s500-- create_table("gpg_keys", {:force=>:cascade})501 -> 0.0055s502-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})503 -> 0.0031s504-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})505 -> 0.0028s506-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})507 -> 0.0027s508-- create_table("gpg_signatures", {:force=>:cascade})509 -> 0.0100s510-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})511 -> 0.0040s512-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})513 -> 0.0161s514-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})515 -> 0.0035s516-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})517 -> 0.0035s518-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})519 -> 0.0030s520-- create_table("group_custom_attributes", {:force=>:cascade})521 -> 0.0060s522-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})523 -> 0.0046s524-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})525 -> 0.0038s526-- create_table("historical_data", {:force=>:cascade})527 -> 0.0040s528-- create_table("identities", {:force=>:cascade})529 -> 0.0053s530-- add_index("identities", ["saml_provider_id"], {:name=>"index_identities_on_saml_provider_id", :where=>"(saml_provider_id IS NOT NULL)", :using=>:btree})531 -> 0.0027s532-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})533 -> 0.0024s534-- create_table("index_statuses", {:force=>:cascade})535 -> 0.0049s536-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})537 -> 0.0036s538-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})539 -> 0.0157s540-- 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})541 -> 0.0027s542-- 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})543 -> 0.0028s544-- create_table("issue_assignees", {:id=>false, :force=>:cascade})545 -> 0.0012s546-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})547 -> 0.0024s548-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})549 -> 0.0024s550-- create_table("issue_links", {:force=>:cascade})551 -> 0.0032s552-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})553 -> 0.0259s554-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})555 -> 0.0053s556-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})557 -> 0.0028s558-- create_table("issue_metrics", {:force=>:cascade})559 -> 0.0031s560-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})561 -> 0.0024s562-- create_table("issues", {:force=>:cascade})563 -> 0.0050s564-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})565 -> 0.0024s566-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})567 -> 0.0026s568-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})569 -> 0.0015s570-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})571 -> 0.0023s572-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})573 -> 0.0043s574-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})575 -> 0.0026s576-- 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})577 -> 0.0027s578-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})579 -> 0.0025s580-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})581 -> 0.0031s582-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})583 -> 0.0048s584-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})585 -> 0.0030s586-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})587 -> 0.0014s588-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})589 -> 0.0033s590-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})591 -> 0.0086s592-- create_table("keys", {:force=>:cascade})593 -> 0.0095s594-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})595 -> 0.0034s596-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})597 -> 0.0035s598-- create_table("label_links", {:force=>:cascade})599 -> 0.0061s600-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})601 -> 0.0071s602-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})603 -> 0.0043s604-- create_table("label_priorities", {:force=>:cascade})605 -> 0.0041s606-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})607 -> 0.0039s608-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})609 -> 0.0040s610-- create_table("labels", {:force=>:cascade})611 -> 0.0084s612-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})613 -> 0.0030s614-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})615 -> 0.0029s616-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})617 -> 0.0028s618-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})619 -> 0.0029s620-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})621 -> 0.0032s622-- create_table("ldap_group_links", {:force=>:cascade})623 -> 0.0290s624-- create_table("lfs_file_locks", {:force=>:cascade})625 -> 0.0045s626-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})627 -> 0.0025s628-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})629 -> 0.0022s630-- create_table("lfs_objects", {:force=>:cascade})631 -> 0.0039s632-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})633 -> 0.0023s634-- create_table("lfs_objects_projects", {:force=>:cascade})635 -> 0.0025s636-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})637 -> 0.0022s638-- create_table("licenses", {:force=>:cascade})639 -> 0.0036s640-- create_table("lists", {:force=>:cascade})641 -> 0.0027s642-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})643 -> 0.0023s644-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})645 -> 0.0027s646-- add_index("lists", ["user_id"], {:name=>"index_lists_on_user_id", :using=>:btree})647 -> 0.0026s648-- create_table("managed_licenses", {:force=>:cascade})649 -> 0.0171s650-- add_index("managed_licenses", ["project_id", "name"], {:name=>"index_managed_licenses_on_project_id_and_name", :unique=>true, :using=>:btree})651 -> 0.0028s652-- add_index("managed_licenses", ["project_id"], {:name=>"index_managed_licenses_on_project_id", :using=>:btree})653 -> 0.0030s654-- create_table("members", {:force=>:cascade})655 -> 0.0054s656-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})657 -> 0.0026s658-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})659 -> 0.0027s660-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})661 -> 0.0122s662-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})663 -> 0.0046s664-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})665 -> 0.0031s666-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})667 -> 0.0027s668-- 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})669 -> 0.0024s670-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})671 -> 0.0024s672-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})673 -> 0.0023s674-- 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})675 -> 0.0022s676-- create_table("merge_request_diffs", {:force=>:cascade})677 -> 0.0038s678-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})679 -> 0.0022s680-- create_table("merge_request_metrics", {:force=>:cascade})681 -> 0.0025s682-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})683 -> 0.0022s684-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})685 -> 0.0023s686-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})687 -> 0.0023s688-- create_table("merge_requests", {:force=>:cascade})689 -> 0.0056s690-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})691 -> 0.0030s692-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})693 -> 0.0125s694-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})695 -> 0.0034s696-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})697 -> 0.0015s698-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})699 -> 0.0026s700-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})701 -> 0.0026s702-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})703 -> 0.0028s704-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})705 -> 0.0028s706-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})707 -> 0.0029s708-- 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})709 -> 0.0028s710-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})711 -> 0.0026s712-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})713 -> 0.0027s714-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})715 -> 0.0028s716-- 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})717 -> 0.0029s718-- 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})719 -> 0.0033s720-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})721 -> 0.0041s722-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})723 -> 0.0014s724-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})725 -> 0.0130s726-- create_table("merge_requests_closing_issues", {:force=>:cascade})727 -> 0.0063s728-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})729 -> 0.0046s730-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})731 -> 0.0033s732-- create_table("milestones", {:force=>:cascade})733 -> 0.0063s734-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})735 -> 0.0021s736-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})737 -> 0.0065s738-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})739 -> 0.0028s740-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})741 -> 0.0028s742-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})743 -> 0.0027s744-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})745 -> 0.0014s746-- create_table("namespace_statistics", {:force=>:cascade})747 -> 0.0034s748-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})749 -> 0.0022s750-- create_table("namespaces", {:force=>:cascade})751 -> 0.0055s752-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})753 -> 0.0023s754-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})755 -> 0.0023s756-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})757 -> 0.0203s758-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})759 -> 0.0026s760-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})761 -> 0.0014s762-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})763 -> 0.0024s764-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})765 -> 0.0025s766-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})767 -> 0.0110s768-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})769 -> 0.0015s770-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})771 -> 0.0022s772-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})773 -> 0.0022s774-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})775 -> 0.0023s776-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})777 -> 0.0022s778-- create_table("note_diff_files", {:force=>:cascade})779 -> 0.0041s780-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})781 -> 0.0023s782-- create_table("notes", {:force=>:cascade})783 -> 0.0046s784-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})785 -> 0.0023s786-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})787 -> 0.0022s788-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})789 -> 0.0022s790-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})791 -> 0.0022s792-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})793 -> 0.0024s794-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})795 -> 0.0067s796-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})797 -> 0.0024s798-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})799 -> 0.0025s800-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})801 -> 0.0026s802-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})803 -> 0.0027s804-- create_table("notification_settings", {:force=>:cascade})805 -> 0.0054s806-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})807 -> 0.0028s808-- 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})809 -> 0.0028s810-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})811 -> 0.0027s812-- create_table("oauth_access_grants", {:force=>:cascade})813 -> 0.0052s814-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})815 -> 0.0053s816-- create_table("oauth_access_tokens", {:force=>:cascade})817 -> 0.0058s818-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})819 -> 0.0047s820-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})821 -> 0.0029s822-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})823 -> 0.0027s824-- create_table("oauth_applications", {:force=>:cascade})825 -> 0.0184s826-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})827 -> 0.0029s828-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})829 -> 0.0026s830-- create_table("oauth_openid_requests", {:force=>:cascade})831 -> 0.0045s832-- create_table("pages_domains", {:force=>:cascade})833 -> 0.0068s834-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})835 -> 0.0028s836-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})837 -> 0.0028s838-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})839 -> 0.0225s840-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})841 -> 0.0032s842-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})843 -> 0.0044s844-- create_table("path_locks", {:force=>:cascade})845 -> 0.0039s846-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})847 -> 0.0023s848-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})849 -> 0.0022s850-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})851 -> 0.0022s852-- create_table("personal_access_tokens", {:force=>:cascade})853 -> 0.0045s854-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})855 -> 0.0023s856-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})857 -> 0.0023s858-- create_table("plans", {:force=>:cascade})859 -> 0.0050s860-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})861 -> 0.0032s862-- create_table("project_authorizations", {:id=>false, :force=>:cascade})863 -> 0.0010s864-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})865 -> 0.0123s866-- 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})867 -> 0.0045s868-- create_table("project_auto_devops", {:force=>:cascade})869 -> 0.0087s870-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})871 -> 0.0029s872-- create_table("project_ci_cd_settings", {:force=>:cascade})873 -> 0.0045s874-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})875 -> 0.0033s876-- create_table("project_custom_attributes", {:force=>:cascade})877 -> 0.0058s878-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})879 -> 0.0032s880-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})881 -> 0.0028s882-- create_table("project_deploy_tokens", {:force=>:cascade})883 -> 0.0027s884-- 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})885 -> 0.0026s886-- create_table("project_features", {:force=>:cascade})887 -> 0.0033s888-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})889 -> 0.0026s890-- create_table("project_group_links", {:force=>:cascade})891 -> 0.0031s892-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})893 -> 0.0025s894-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})895 -> 0.0026s896-- create_table("project_import_data", {:force=>:cascade})897 -> 0.0043s898-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})899 -> 0.0025s900-- create_table("project_mirror_data", {:force=>:cascade})901 -> 0.0053s902-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})903 -> 0.0024s904-- add_index("project_mirror_data", ["last_successful_update_at"], {:name=>"index_project_mirror_data_on_last_successful_update_at", :using=>:btree})905 -> 0.0024s906-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})907 -> 0.0024s908-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})909 -> 0.0025s910-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})911 -> 0.0027s912-- create_table("project_repository_states", {:force=>:cascade})913 -> 0.0141s914-- add_index("project_repository_states", ["last_repository_verification_failure"], {:name=>"idx_repository_states_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})915 -> 0.0084s916-- add_index("project_repository_states", ["last_wiki_verification_failure"], {:name=>"idx_repository_states_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})917 -> 0.0049s918-- add_index("project_repository_states", ["project_id"], {:name=>"idx_repository_states_outdated_checksums", :where=>"(((repository_verification_checksum IS NULL) AND (last_repository_verification_failure IS NULL)) OR ((wiki_verification_checksum IS NULL) AND (last_wiki_verification_failure IS NULL)))", :using=>:btree})919 -> 0.0031s920-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})921 -> 0.0032s922-- create_table("project_statistics", {:force=>:cascade})923 -> 0.0186s924-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})925 -> 0.0049s926-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})927 -> 0.0038s928-- create_table("projects", {:force=>:cascade})929 -> 0.0150s930-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})931 -> 0.0072s932-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})933 -> 0.0037s934-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})935 -> 0.0064s936-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})937 -> 0.0014s938-- add_index("projects", ["id", "repository_storage", "last_repository_updated_at"], {:name=>"idx_projects_on_repository_storage_last_repository_updated_at", :using=>:btree})939 -> 0.0074s940-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})941 -> 0.0038s942-- add_index("projects", ["id"], {:name=>"index_projects_on_mirror_and_mirror_trigger_builds_both_true", :where=>"((mirror IS TRUE) AND (mirror_trigger_builds IS TRUE))", :using=>:btree})943 -> 0.0037s944-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})945 -> 0.0045s946-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})947 -> 0.0040s948-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})949 -> 0.0039s950-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})951 -> 0.0163s952-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})953 -> 0.0016s954-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})955 -> 0.0032s956-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})957 -> 0.0116s958-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})959 -> 0.0014s960-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})961 -> 0.0033s962-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})963 -> 0.0025s964-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})965 -> 0.0026s966-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})967 -> 0.0027s968-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})969 -> 0.0029s970-- create_table("prometheus_metrics", {:force=>:cascade})971 -> 0.0063s972-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})973 -> 0.0026s974-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})975 -> 0.0044s976-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})977 -> 0.0038s978-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})979 -> 0.0025s980-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})981 -> 0.0025s982-- create_table("protected_branch_push_access_levels", {:force=>:cascade})983 -> 0.0034s984-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})985 -> 0.0025s986-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})987 -> 0.0024s988-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})989 -> 0.0321s990-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})991 -> 0.0029s992-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})993 -> 0.0027s994-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})995 -> 0.0031s996-- create_table("protected_branches", {:force=>:cascade})997 -> 0.0064s998-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})999 -> 0.0036s1000-- create_table("protected_tag_create_access_levels", {:force=>:cascade})1001 -> 0.0039s1002-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})1003 -> 0.0031s1004-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})1005 -> 0.0031s1006-- create_table("protected_tags", {:force=>:cascade})1007 -> 0.0058s1008-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})1009 -> 0.0028s1010-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})1011 -> 0.0034s1012-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})1013 -> 0.0032s1014-- create_table("push_rules", {:force=>:cascade})1015 -> 0.0069s1016-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})1017 -> 0.0032s1018-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})1019 -> 0.0142s1020-- create_table("redirect_routes", {:force=>:cascade})1021 -> 0.0060s1022-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1023 -> 0.0051s1024-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1025 -> 0.0026s1026-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1027 -> 0.0041s1028-- create_table("releases", {:force=>:cascade})1029 -> 0.0060s1030-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1031 -> 0.0035s1032-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1033 -> 0.0032s1034-- create_table("remote_mirrors", {:force=>:cascade})1035 -> 0.0091s1036-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1037 -> 0.0035s1038-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1039 -> 0.0142s1040-- create_table("routes", {:force=>:cascade})1041 -> 0.0085s1042-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1043 -> 0.0036s1044-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1045 -> 0.0032s1046-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1047 -> 0.0031s1048-- create_table("saml_providers", {:force=>:cascade})1049 -> 0.0055s1050-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1051 -> 0.0039s1052-- create_table("sent_notifications", {:force=>:cascade})1053 -> 0.0063s1054-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1055 -> 0.0159s1056-- create_table("services", {:force=>:cascade})1057 -> 0.0193s1058-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1059 -> 0.0127s1060-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1061 -> 0.0067s1062-- create_table("slack_integrations", {:force=>:cascade})1063 -> 0.0084s1064-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1065 -> 0.0031s1066-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1067 -> 0.0031s1068-- create_table("snippets", {:force=>:cascade})1069 -> 0.0056s1070-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1071 -> 0.0031s1072-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1073 -> 0.0019s1074-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1075 -> 0.0030s1076-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1077 -> 0.0017s1078-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1079 -> 0.0032s1080-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1081 -> 0.0030s1082-- create_table("spam_logs", {:force=>:cascade})1083 -> 0.0055s1084-- create_table("subscriptions", {:force=>:cascade})1085 -> 0.0040s1086-- 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})1087 -> 0.0026s1088-- create_table("system_note_metadata", {:force=>:cascade})1089 -> 0.0039s1090-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1091 -> 0.0024s1092-- create_table("taggings", {:force=>:cascade})1093 -> 0.0040s1094-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1095 -> 0.0027s1096-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1097 -> 0.0023s1098-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1099 -> 0.0024s1100-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1101 -> 0.0025s1102-- create_table("tags", {:force=>:cascade})1103 -> 0.0043s1104-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1105 -> 0.0024s1106-- create_table("term_agreements", {:force=>:cascade})1107 -> 0.0029s1108-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})1109 -> 0.0024s1110-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})1111 -> 0.0024s1112-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})1113 -> 0.0024s1114-- create_table("timelogs", {:force=>:cascade})1115 -> 0.0027s1116-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1117 -> 0.0023s1118-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1119 -> 0.0023s1120-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1121 -> 0.0024s1122-- create_table("todos", {:force=>:cascade})1123 -> 0.0045s1124-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1125 -> 0.0064s1126-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1127 -> 0.0032s1128-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1129 -> 0.0034s1130-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1131 -> 0.0032s1132-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1133 -> 0.0035s1134-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1135 -> 0.0381s1136-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1137 -> 0.0078s1138-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1139 -> 0.0092s1140-- create_table("trending_projects", {:force=>:cascade})1141 -> 0.0104s1142-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1143 -> 0.0036s1144-- create_table("u2f_registrations", {:force=>:cascade})1145 -> 0.0097s1146-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1147 -> 0.0034s1148-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1149 -> 0.0041s1150-- create_table("uploads", {:force=>:cascade})1151 -> 0.0061s1152-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1153 -> 0.0032s1154-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1155 -> 0.0030s1156-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1157 -> 0.0029s1158-- create_table("user_agent_details", {:force=>:cascade})1159 -> 0.0043s1160-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1161 -> 0.0026s1162-- create_table("user_callouts", {:force=>:cascade})1163 -> 0.0027s1164-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1165 -> 0.0026s1166-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1167 -> 0.0025s1168-- create_table("user_custom_attributes", {:force=>:cascade})1169 -> 0.0043s1170-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1171 -> 0.0026s1172-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1173 -> 0.0025s1174-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1175 -> 0.0011s1176-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1177 -> 0.0025s1178-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1179 -> 0.0025s1180-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1181 -> 0.0050s1182-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1183 -> 0.0026s1184-- create_table("users", {:force=>:cascade})1185 -> 0.0104s1186-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1187 -> 0.0038s1188-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1189 -> 0.0033s1190-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1191 -> 0.0031s1192-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1193 -> 0.0033s1194-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1195 -> 0.0015s1196-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1197 -> 0.0031s1198-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1199 -> 0.0033s1200-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1201 -> 0.0034s1202-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1203 -> 0.0111s1204-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1205 -> 0.0016s1206-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1207 -> 0.0033s1208-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1209 -> 0.0034s1210-- add_index("users", ["state"], {:name=>"index_users_on_state_and_internal_attrs", :where=>"((ghost <> true) AND (support_bot <> true))", :using=>:btree})1211 -> 0.0032s1212-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1213 -> 0.0032s1214-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1215 -> 0.0155s1216-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1217 -> 0.0019s1218-- create_table("users_star_projects", {:force=>:cascade})1219 -> 0.0157s1220-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1221 -> 0.0062s1222-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1223 -> 0.0028s1224-- create_table("vulnerability_feedback", {:force=>:cascade})1225 -> 0.0039s1226-- add_index("vulnerability_feedback", ["author_id"], {:name=>"index_vulnerability_feedback_on_author_id", :using=>:btree})1227 -> 0.0059s1228-- add_index("vulnerability_feedback", ["issue_id"], {:name=>"index_vulnerability_feedback_on_issue_id", :using=>:btree})1229 -> 0.0027s1230-- add_index("vulnerability_feedback", ["pipeline_id"], {:name=>"index_vulnerability_feedback_on_pipeline_id", :using=>:btree})1231 -> 0.0032s1232-- add_index("vulnerability_feedback", ["project_id", "category", "feedback_type", "project_fingerprint"], {:name=>"vulnerability_feedback_unique_idx", :unique=>true, :using=>:btree})1233 -> 0.0027s1234-- create_table("web_hook_logs", {:force=>:cascade})1235 -> 0.0079s1236-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1237 -> 0.0031s1238-- create_table("web_hooks", {:force=>:cascade})1239 -> 0.0094s1240-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1241 -> 0.0036s1242-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1243 -> 0.0032s1244-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1245 -> 0.0019s1246-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1247 -> 0.0013s1248-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1249 -> 0.0010s1250-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1251 -> 0.0016s1252-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1253 -> 0.0010s1254-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1255 -> 0.0014s1256-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1257 -> 0.0010s1258-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1259 -> 0.0009s1260-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1261 -> 0.0009s1262-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1263 -> 0.0010s1264-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1265 -> 0.0010s1266-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1267 -> 0.0013s1268-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1269 -> 0.0011s1270-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1271 -> 0.0009s1272-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1273 -> 0.0010s1274-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1275 -> 0.0010s1276-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1277 -> 0.0012s1278-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1279 -> 0.0010s1280-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1281 -> 0.0010s1282-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1283 -> 0.0016s1284-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1285 -> 0.0012s1286-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1287 -> 0.0014s1288-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1289 -> 0.0011s1290-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1291 -> 0.0011s1292-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1293 -> 0.0046s1294-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1295 -> 0.0035s1296-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1297 -> 0.0031s1298-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1299 -> 0.0011s1300-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1301 -> 0.0013s1302-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1303 -> 0.0014s1304-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1305 -> 0.0010s1306-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1307 -> 0.0011s1308-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1309 -> 0.0012s1310-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1311 -> 0.0011s1312-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1313 -> 0.0013s1314-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1315 -> 0.0010s1316-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1317 -> 0.0014s1318-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1319 -> 0.0012s1320-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1321 -> 0.0010s1322-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1323 -> 0.0011s1324-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1325 -> 0.0011s1326-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1327 -> 0.0011s1328-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1329 -> 0.0010s1330-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1331 -> 0.0012s1332-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1333 -> 0.0012s1334-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1335 -> 0.0011s1336-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1337 -> 0.0011s1338-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1339 -> 0.0011s1340-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1341 -> 0.0011s1342-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1343 -> 0.0011s1344-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1345 -> 0.0011s1346-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1347 -> 0.0012s1348-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1349 -> 0.0013s1350-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1351 -> 0.0009s1352-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1353 -> 0.0012s1354-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1355 -> 0.0012s1356-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1357 -> 0.0011s1358-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1359 -> 0.0011s1360-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1361 -> 0.0011s1362-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1363 -> 0.0011s1364-- add_foreign_key("container_repositories", "projects")1365 -> 0.0015s1366-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1367 -> 0.0012s1368-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1369 -> 0.0014s1370-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1371 -> 0.0014s1372-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1373 -> 0.0013s1374-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1375 -> 0.0013s1376-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1377 -> 0.0010s1378-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1379 -> 0.0045s1380-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1381 -> 0.0038s1382-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1383 -> 0.0046s1384-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1385 -> 0.0013s1386-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1387 -> 0.0013s1388-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1389 -> 0.0014s1390-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1391 -> 0.0012s1392-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1393 -> 0.0011s1394-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1395 -> 0.0015s1396-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1397 -> 0.0014s1398-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1399 -> 0.0012s1400-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1401 -> 0.0013s1402-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1403 -> 0.0012s1404-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1405 -> 0.0011s1406-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1407 -> 0.0011s1408-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1409 -> 0.0011s1410-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1411 -> 0.0009s1412-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1413 -> 0.0010s1414-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1415 -> 0.0010s1416-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1417 -> 0.0010s1418-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1419 -> 0.0010s1420-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1421 -> 0.0013s1422-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1423 -> 0.0011s1424-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1425 -> 0.0016s1426-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1427 -> 0.0013s1428-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1429 -> 0.0013s1430-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1431 -> 0.0011s1432-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1433 -> 0.0011s1434-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1435 -> 0.0011s1436-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1437 -> 0.0013s1438-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1439 -> 0.0013s1440-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1441 -> 0.0011s1442-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1443 -> 0.0012s1444-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1445 -> 0.0011s1446-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1447 -> 0.0012s1448-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1449 -> 0.0011s1450-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1451 -> 0.0012s1452-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1453 -> 0.0012s1454-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1455 -> 0.0010s1456-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1457 -> 0.0013s1458-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1459 -> 0.0011s1460-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1461 -> 0.0017s1462-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1463 -> 0.0015s1464-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1465 -> 0.0012s1466-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1467 -> 0.0132s1468-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1469 -> 0.0062s1470-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1471 -> 0.0013s1472-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1473 -> 0.0014s1474-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1475 -> 0.0013s1476-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1477 -> 0.0015s1478-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1479 -> 0.0015s1480-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1481 -> 0.0017s1482-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1483 -> 0.0016s1484-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1485 -> 0.0067s1486-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1487 -> 0.0029s1488-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1489 -> 0.0012s1490-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1491 -> 0.0027s1492-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1493 -> 0.0014s1494-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1495 -> 0.0013s1496-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1497 -> 0.0011s1498-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1499 -> 0.0010s1500-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1501 -> 0.0011s1502-- add_foreign_key("managed_licenses", "projects", {:on_delete=>:cascade})1503 -> 0.0014s1504-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1505 -> 0.0015s1506-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1507 -> 0.0012s1508-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1509 -> 0.0009s1510-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1511 -> 0.0011s1512-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1513 -> 0.0011s1514-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1515 -> 0.0011s1516-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1517 -> 0.0011s1518-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1519 -> 0.0011s1520-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1521 -> 0.0011s1522-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1523 -> 0.0010s1524-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1525 -> 0.0011s1526-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1527 -> 0.0013s1528-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1529 -> 0.0012s1530-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1531 -> 0.0014s1532-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1533 -> 0.0013s1534-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1535 -> 0.0012s1536-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1537 -> 0.0013s1538-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1539 -> 0.0010s1540-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1541 -> 0.0011s1542-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1543 -> 0.0010s1544-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1545 -> 0.0013s1546-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1547 -> 0.0011s1548-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1549 -> 0.0011s1550-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1551 -> 0.0013s1552-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1553 -> 0.0012s1554-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1555 -> 0.0010s1556-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1557 -> 0.0015s1558-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1559 -> 0.0013s1560-- add_foreign_key("path_locks", "users")1561 -> 0.0013s1562-- add_foreign_key("personal_access_tokens", "users")1563 -> 0.0012s1564-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1565 -> 0.0012s1566-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1567 -> 0.0012s1568-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1569 -> 0.0013s1570-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1571 -> 0.0015s1572-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1573 -> 0.0014s1574-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1575 -> 0.0013s1576-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1577 -> 0.0013s1578-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1579 -> 0.0013s1580-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1581 -> 0.0015s1582-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1583 -> 0.0013s1584-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1585 -> 0.0015s1586-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1587 -> 0.0013s1588-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1589 -> 0.0013s1590-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1591 -> 0.0013s1592-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1593 -> 0.0010s1594-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1595 -> 0.0010s1596-- add_foreign_key("protected_branch_merge_access_levels", "users")1597 -> 0.0013s1598-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1599 -> 0.0012s1600-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1601 -> 0.0011s1602-- add_foreign_key("protected_branch_push_access_levels", "users")1603 -> 0.0013s1604-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1605 -> 0.0012s1606-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1607 -> 0.0011s1608-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1609 -> 0.0013s1610-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1611 -> 0.0014s1612-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1613 -> 0.0011s1614-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1615 -> 0.0010s1616-- add_foreign_key("protected_tag_create_access_levels", "users")1617 -> 0.0034s1618-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1619 -> 0.0038s1620-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1621 -> 0.0026s1622-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1623 -> 0.0015s1624-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1625 -> 0.0013s1626-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1627 -> 0.0014s1628-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1629 -> 0.0011s1630-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1631 -> 0.0014s1632-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1633 -> 0.0012s1634-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1635 -> 0.0013s1636-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1637 -> 0.0013s1638-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1639 -> 0.0010s1640-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1641 -> 0.0010s1642-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1643 -> 0.0013s1644-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1645 -> 0.0011s1646-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1647 -> 0.0011s1648-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1649 -> 0.0013s1650-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1651 -> 0.0013s1652-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1653 -> 0.0013s1654-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1655 -> 0.0011s1656-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1657 -> 0.0013s1658-- add_foreign_key("u2f_registrations", "users")1659 -> 0.0012s1660-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1661 -> 0.0012s1662-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1663 -> 0.0011s1664-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1665 -> 0.0012s1666-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1667 -> 0.0010s1668-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1669 -> 0.0013s1670-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1671 -> 0.0011s1672-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1673 -> 0.0012s1674-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1675 -> 0.0010s1676-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1677 -> 0.0011s1678-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1679 -> 0.0012s1680-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1681 -> 0.0011s1682-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1683 -> 0.0011s1684-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1685 -> 0.0012s1686-- initialize_schema_migrations_table()1687 -> 0.0099s1688-- enable_extension("plpgsql")1689 -> 0.0190s1690-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1691 -> 0.0082s1692-- create_table("file_registry", {:force=>:cascade})1693 -> 0.0091s1694-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1695 -> 0.0040s1696-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1697 -> 0.0037s1698-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1699 -> 0.0037s1700-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1701 -> 0.0031s1702-- create_table("job_artifact_registry", {:force=>:cascade})1703 -> 0.0059s1704-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1705 -> 0.0036s1706-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1707 -> 0.0031s1708-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1709 -> 0.0037s1710-- create_table("project_registry", {:force=>:cascade})1711 -> 0.0078s1712-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1713 -> 0.0026s1714-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1715 -> 0.0034s1716-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repo_checksums_and_failure_partial", :where=>"((repository_verification_checksum_sha IS NULL) AND (last_repository_verification_failure IS NULL))", :using=>:btree})1717 -> 0.0041s1718-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1719 -> 0.0032s1720-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_checksums_and_failure_partial", :where=>"((wiki_verification_checksum_sha IS NULL) AND (last_wiki_verification_failure IS NULL))", :using=>:btree})1721 -> 0.0043s1722-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1723 -> 0.0030s1724-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1725 -> 0.0043s1726-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1727 -> 0.0038s1728-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1729 -> 0.0070s1730-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1731 -> 0.0036s1732-- add_index("project_registry", ["repository_verification_checksum_sha"], {:name=>"idx_project_registry_on_repository_checksum_sha_partial", :where=>"(repository_verification_checksum_sha IS NULL)", :using=>:btree})1733 -> 0.0042s1734-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1735 -> 0.0034s1736-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1737 -> 0.0045s1738-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1739 -> 0.0038s1740-- add_index("project_registry", ["wiki_verification_checksum_sha"], {:name=>"idx_project_registry_on_wiki_checksum_sha_partial", :where=>"(wiki_verification_checksum_sha IS NULL)", :using=>:btree})1741 -> 0.0043s1742-- initialize_schema_migrations_table()1743 -> 0.0097s1744$ date1745Tue Jun 26 14:02:40 UTC 20181746$ export KNAPSACK_TEST_FILE_PATTERN="ee/spec/**{,/*/**}/*_spec.rb" KNAPSACK_GENERATE_REPORT=true CACHE_CLASSES=true1747$ JOB_NAME=( $CI_JOB_NAME )1748$ export CI_NODE_INDEX=${JOB_NAME[-2]} CI_NODE_TOTAL=${JOB_NAME[-1]}1749$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1750$ cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1751$ scripts/gitaly-test-spawn1752Checking gitaly-ruby bundle...1753The Gemfile's dependencies are satisfied1754Trying to connect to gitaly: .... OK1755$ knapsack rspec "-Ispec --color --format documentation --tag ~geo"1756Report specs:1757ee/spec/lib/gitlab/elastic/search_results_spec.rb1758ee/spec/features/boards/multiple_boards_spec.rb1759ee/spec/models/burndown_spec.rb1760ee/spec/migrations/drop_repository_storage_events_for_geo_events_spec.rb1761ee/spec/models/project_spec.rb1762ee/spec/controllers/projects/merge_requests_controller_spec.rb1763ee/spec/features/issues/form_spec.rb1764ee/spec/features/search/elastic/project_search_spec.rb1765ee/spec/features/projects/clusters_spec.rb1766ee/spec/features/merge_request/user_approves_spec.rb1767ee/spec/services/geo/file_download_service_spec.rb1768ee/spec/migrations/update_authorized_keys_file_spec.rb1769ee/spec/features/projects/audit_events_spec.rb1770ee/spec/features/epics/update_epic_spec.rb1771ee/spec/policies/project_policy_spec.rb1772ee/spec/features/issues/filtered_search/filter_issues_weight_spec.rb1773ee/spec/models/merge_request_spec.rb1774ee/spec/workers/update_all_mirrors_worker_spec.rb1775ee/spec/serializers/merge_request_widget_entity_spec.rb1776ee/spec/helpers/push_rules_helper_spec.rb1777ee/spec/features/projects/path_locks_spec.rb1778ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb1779ee/spec/features/discussion_comments/epic_spec.rb1780ee/spec/models/push_rule_spec.rb1781ee/spec/models/concerns/elastic/repository_spec.rb1782ee/spec/controllers/projects/issues_controller_spec.rb1783ee/spec/features/projects/settings/merge_requests_settings_spec.rb1784ee/spec/services/geo/wiki_sync_service_spec.rb1785ee/spec/services/ee/notification_service_spec.rb1786ee/spec/models/concerns/elastic/note_spec.rb1787ee/spec/services/projects/create_service_spec.rb1788ee/spec/features/epics/epic_labels_spec.rb1789ee/spec/services/ee/boards/issues/move_service_spec.rb1790ee/spec/requests/api/epics_spec.rb1791ee/spec/controllers/groups/epic_issues_controller_spec.rb1792ee/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb1793ee/spec/features/projects/settings/issues_settings_spec.rb1794ee/spec/requests/api/project_import_spec.rb1795ee/spec/features/issues/csv_spec.rb1796ee/spec/features/groups/group_roadmap_spec.rb1797ee/spec/features/merge_request/user_merges_with_push_rules_spec.rb1798ee/spec/features/projects/milestones/milestone_spec.rb1799ee/spec/features/project_variables_spec.rb1800ee/spec/controllers/projects/mirrors_controller_spec.rb1801ee/spec/services/projects/update_mirror_service_spec.rb1802ee/spec/services/ci/register_job_service_spec.rb1803ee/spec/features/groups/ldap_group_links_spec.rb1804ee/spec/features/groups/members/override_ldap_memberships_spec.rb1805ee/spec/finders/epics_finder_spec.rb1806ee/spec/services/issue_links/list_service_spec.rb1807ee/spec/features/ci_shared_runner_warnings_spec.rb1808ee/spec/requests/git_http_geo_spec.rb1809ee/spec/models/concerns/ee/deployment_platform_spec.rb1810ee/spec/requests/api/merge_request_approvals_spec.rb1811ee/spec/requests/api/ldap_group_links_spec.rb1812ee/spec/migrations/migrate_mirror_attributes_data_from_projects_to_import_state_spec.rb1813ee/spec/requests/projects/issue_links_controller_spec.rb1814ee/spec/models/project_services/github_service_spec.rb1815ee/spec/services/ldap_group_reset_service_spec.rb1816ee/spec/controllers/projects/clusters_controller_spec.rb1817ee/spec/services/merge_requests/approval_service_spec.rb1818ee/spec/features/epics/new_epic_spec.rb1819ee/spec/controllers/groups/epics/notes_controller_spec.rb1820ee/spec/services/geo/file_registry_removal_service_spec.rb1821ee/spec/features/groups/analytics_spec.rb1822ee/spec/controllers/projects/approver_groups_controller_spec.rb1823ee/spec/lib/banzai/filter/epic_reference_filter_spec.rb1824ee/spec/features/groups/group_settings_spec.rb1825ee/spec/models/path_lock_spec.rb1826ee/spec/features/projects/geo_clone_instructions_spec.rb1827ee/spec/lib/gitlab/chat/command_spec.rb1828ee/spec/features/issues/issue_sidebar_spec.rb1829ee/spec/features/boards/group_boards/user_edits_issues_spec.rb1830ee/spec/lib/gitlab/email/handler/create_note_handler_spec.rb1831ee/spec/services/boards/update_service_spec.rb1832ee/spec/services/epic_issues/destroy_service_spec.rb1833ee/spec/models/ee/protected_ref_access_spec.rb1834ee/spec/models/license_spec.rb1835ee/spec/features/burndown_charts_spec.rb1836ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb1837ee/spec/features/groups/saml_providers_spec.rb1838ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb1839ee/spec/models/project_services/jenkins_service_spec.rb1840ee/spec/controllers/groups/groups_controller_spec.rb1841ee/spec/features/profiles/pipeline_quota_spec.rb1842ee/spec/controllers/projects/variables_controller_spec.rb1843ee/spec/controllers/groups/group_members_controller_spec.rb1844ee/spec/services/projects/destroy_service_spec.rb1845ee/spec/services/boards/create_service_spec.rb1846ee/spec/features/projects/issues/user_creates_issue_spec.rb1847ee/spec/services/search/group_service_spec.rb1848ee/spec/features/admin/admin_sends_notification_spec.rb1849ee/spec/features/projects/settings/push_rules_settings_spec.rb1850ee/spec/features/projects/settings/service_desk_setting_spec.rb1851ee/spec/features/epics/delete_epic_spec.rb1852ee/spec/services/groups/participants_service_spec.rb1853ee/spec/lib/gitlab/database/load_balancing/host_spec.rb1854ee/spec/models/concerns/elastic/project_spec.rb1855ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb1856ee/spec/services/system_note_service_spec.rb1857ee/spec/controllers/projects/prometheus/metrics_controller_spec.rb1858ee/spec/policies/epic_policy_spec.rb1859ee/spec/models/ssh_host_key_spec.rb1860ee/spec/features/projects/show_project_spec.rb1861ee/spec/controllers/projects/settings/integrations_controller_spec.rb1862ee/spec/models/concerns/elastic/project_wiki_spec.rb1863ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb1864ee/spec/lib/gitlab/chat/responder/slack_spec.rb1865ee/spec/workers/elastic_batch_project_indexer_worker_spec.rb1866ee/spec/models/concerns/elastic/issue_spec.rb1867ee/spec/features/projects/members/member_is_removed_from_project_spec.rb1868ee/spec/controllers/groups/saml_providers_controller_spec.rb1869ee/spec/migrations/remove_system_hook_from_geo_nodes_spec.rb1870ee/spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb1871ee/spec/lib/gitlab/ci/external/mapper_spec.rb1872ee/spec/finders/snippets_finder_spec.rb1873ee/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb1874ee/spec/workers/geo/repository_verification/primary/batch_worker_spec.rb1875ee/spec/views/shared/_mirror_status.html.haml_spec.rb1876ee/spec/services/issue_links/destroy_service_spec.rb1877ee/spec/models/project_services/kubernetes_service_spec.rb1878ee/spec/lib/gitlab/chat/output_spec.rb1879ee/spec/workers/post_receive_spec.rb1880ee/spec/finders/log_finder_spec.rb1881ee/spec/services/ee/boards/issues/list_service_spec.rb1882ee/spec/features/projects/settings/user_manages_members_spec.rb1883ee/spec/lib/ee/audit/project_changes_auditor_spec.rb1884ee/spec/lib/gitlab/auth/user_auth_finders_spec.rb1885ee/spec/features/admin/licenses/admin_uploads_license_spec.rb1886ee/spec/services/epic_issues/list_service_spec.rb1887ee/spec/services/projects/update_repository_storage_service_spec.rb1888ee/spec/controllers/groups/sso_controller_spec.rb1889ee/spec/models/ee/user_spec.rb1890ee/spec/lib/ee/gitlab/ci/config_spec.rb1891ee/spec/models/geo/event_log_spec.rb1892ee/spec/services/application_settings/update_service_spec.rb1893ee/spec/services/merge_requests/remove_approval_service_spec.rb1894ee/spec/models/project_import_state_spec.rb1895ee/spec/controllers/autocomplete_controller_spec.rb1896ee/spec/services/issues/build_service_spec.rb1897ee/spec/services/geo/project_housekeeping_service_spec.rb1898ee/spec/finders/merge_requests_finder_spec.rb1899ee/spec/features/admin/admin_dashboard_spec.rb1900ee/spec/models/application_setting_spec.rb1901ee/spec/requests/api/jobs_spec.rb1902ee/spec/bin/sidekiq_cluster_spec.rb1903ee/spec/services/geo/job_artifact_deleted_event_store_spec.rb1904ee/spec/mailers/emails/csv_export_spec.rb1905ee/spec/lib/ee/gitlab/ci/pipeline/chain/limit/size_spec.rb1906ee/spec/features/signup_spec.rb1907ee/spec/services/geo/hashed_storage_attachments_migration_service_spec.rb1908ee/spec/requests/api/variables_spec.rb1909ee/spec/services/boards/list_service_spec.rb1910ee/spec/models/issue_link_spec.rb1911ee/spec/services/geo/rename_repository_service_spec.rb1912ee/spec/controllers/search_controller_spec.rb1913ee/spec/controllers/projects/pipelines_controller_spec.rb1914ee/spec/finders/labels_finder_spec.rb1915ee/spec/controllers/groups/boards_controller_spec.rb1916ee/spec/finders/todos_finder_spec.rb1917ee/spec/lib/banzai/reference_parser/epic_parser_spec.rb1918ee/spec/lib/gitlab/ci/external/file/local_spec.rb1919ee/spec/controllers/groups/billings_controller_spec.rb1920ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb1921ee/spec/lib/ee/gitlab/external_authorization_spec.rb1922Leftover specs:1923ee/spec/finders/geo/attachment_registry_finder_spec.rb1924ee/spec/finders/geo/job_artifact_registry_finder_spec.rb1925ee/spec/finders/geo/project_registry_finder_spec.rb1926ee/spec/lib/gitlab/geo/cron_manager_spec.rb1927ee/spec/lib/gitlab/geo/file_uploader_spec.rb1928ee/spec/lib/gitlab/geo/job_artifact_downloader_spec.rb1929ee/spec/lib/gitlab/geo/job_artifact_uploader_spec.rb1930ee/spec/lib/gitlab/geo_spec.rb1931ee/spec/lib/system_check/geo/fdw_schema_up_to_date_check_spec.rb1932ee/spec/migrations/geo/set_resync_flag_for_retried_projects_spec.rb1933ee/spec/models/pg_replication_slot_spec.rb1934ee/spec/services/geo/files_expire_service_spec.rb1935ee/spec/services/geo/move_repository_service_spec.rb1936ee/spec/services/geo/repository_verify_secondary_service_spec.rb1937ee/spec/tasks/geo_rake_spec.rb1938ee/spec/workers/geo/file_download_worker_spec.rb1939ee/spec/workers/geo/migrated_local_files_clean_up_worker_spec.rb1940ee/spec/workers/geo/repository_shard_sync_worker_spec.rb1941ee/spec/workers/geo/truncate_event_log_worker_spec.rb1942Knapsack report generator started!1943Run options: exclude {:geo=>true}1944==> Setting up GitLab Shell...1945 GitLab Shell setup in 0.524065759 seconds...1946==> Setting up Gitaly...1947 Gitaly setup in 0.000138169 seconds...1948Gitlab::Elastic::SearchResults1949 parse_search_result1950 returns an unhighlighted blob when no highlight data is present1951 parses the blob with highlighting1952 issues1953 lists found issues1954 returns empty list when issues are not found1955 lists issue when search by a valid iid1956 returns empty list when search by invalid iid1957 confidential issues1958 search by term1959 does not list confidential issues for guests1960 does not list confidential issues for non project members1961 lists confidential issues for author1962 lists confidential issues for assignee1963 lists confidential issues for project members1964 lists all issues for admin1965 search by iid1966 does not list confidential issues for guests1967 does not list confidential issues for non project members1968 lists confidential issues for author1969 lists confidential issues for assignee1970 lists confidential issues for project members1971 lists all issues for admin1972 merge requests1973 lists found merge requests1974 returns empty list when merge requests are not found1975 lists merge request when search by a valid iid1976 returns empty list when search by invalid iid1977 project scoping1978 returns items for project1979 Blobs1980 finds blobs1981 finds blobs from public projects only1982 returns zero when blobs are not found1983 Searches CamelCased methods1984 find by first word1985 find by first two words1986 find by last two words1987 find by exact match1988 Searches special characters1989 finds files with dashes1990 finds files with dots1991 finds files with other special chars1992 Wikis1993 finds wiki blobs1994 finds wiki blobs for guest1995 finds wiki blobs from public projects only1996 returns zero when wiki blobs are not found1997 when wiki is disabled1998 search by member1999 should be empty2000 search by non-member2001 should be empty2002 when wiki is internal2003 search by member2004 should not be empty2005 search by non-member2006 should be empty2007 Commits2008 finds commits2009 finds commits from public projects only2010 returns zero when commits are not found2011 Visibility levels2012 Issues2013 finds right set of issues2014 Milestones2015 finds right set of milestine2016 Projects2017 finds right set of projects2018 Merge Requests2019 finds right set of merge requests2020 Wikis2021 finds the right set of wiki blobs2022 Commits2023 finds right set of commits2024 Blobs2025 finds right set of blobs2026Multiple Issue Boards2027Starting the Capybara driver server...2028 with multiple issue boards enabled2029 authorized user2030 shows current board name2031 shows a list of boards2032 switches current board2033 creates new board without detailed configuration20342nd Try error in ./ee/spec/features/boards/multiple_boards_spec.rb:64:2035 Unable to find visible button "board9" 2036RSpec::Retry: 2nd try ./ee/spec/features/boards/multiple_boards_spec.rb:642037 deletes board2038 adds a list to the none default board2039 maintains sidebar state over board switch2040 unauthorized user2041 does not show action links2042 with multiple issue boards disabled2043 hides the link to create a new board2044 shows a mention that boards are hidden when multiple boards are created2045Burndown2046 project milestone burndown2047 behaves like burndown for milestone2048 generates an array with date, issue count and weight2049 returns empty array if milestone start date is nil2050 returns empty array if milestone due date is nil2051 it counts until today if milestone due date > Date.today2052 sets attribute accurate to true2053 when all closed issues does not have closed events2054 considers closed_at as milestone start date2055 sets attribute empty to true2056 when one or more closed issues does not have a closed event2057 sets attribute accurate to false2058 group milestone burndown2059 when nested group milestone2060 behaves like burndown for milestone2061 generates an array with date, issue count and weight2062 returns empty array if milestone start date is nil2063 returns empty array if milestone due date is nil2064 it counts until today if milestone due date > Date.today2065 sets attribute accurate to true2066 when all closed issues does not have closed events2067 considers closed_at as milestone start date2068 sets attribute empty to true2069 when one or more closed issues does not have a closed event2070 sets attribute accurate to false2071 when non-nested group milestone2072 behaves like burndown for milestone2073 generates an array with date, issue count and weight2074 returns empty array if milestone start date is nil2075 returns empty array if milestone due date is nil2076 it counts until today if milestone due date > Date.today2077 sets attribute accurate to true2078 when all closed issues does not have closed events2079 considers closed_at as milestone start date2080 sets attribute empty to true2081 when one or more closed issues does not have a closed event2082 sets attribute accurate to false2083DropRepositoryStorageEventsForGeoEvents2084 #up2085 table_name: :geo_hashed_storage_migrated_events2086 dropped the repository_storage_path column2087 table_name: :geo_repository_created_events2088 dropped the repository_storage_path column2089 table_name: :geo_repository_deleted_events2090 dropped the repository_storage_path column2091 table_name: :geo_repository_renamed_events2092 dropped the repository_storage_path column2093 #down2094 geo_hashed_storage_migrated_events2095 behaves like recreates the repository_storage_path column2096 creates repository_storage_path column2097 fills in all repository_storage_path cells2098 fills in repository_storage_path with the legacy_disk_path2099 geo_repository_created_events2100 behaves like recreates the repository_storage_path column2101 creates repository_storage_path column2102 fills in all repository_storage_path cells2103 fills in repository_storage_path with the legacy_disk_path2104 geo_repository_deleted_events2105 behaves like recreates the repository_storage_path column2106 creates repository_storage_path column2107 fills in all repository_storage_path cells2108 fills in repository_storage_path with the legacy_disk_path2109 geo_repository_renamed_events2110 behaves like recreates the repository_storage_path column2111 creates repository_storage_path column2112 fills in all repository_storage_path cells2113 fills in repository_storage_path with the legacy_disk_path2114Project2115 associations2116 should delegate #shared_runners_minutes to #statistics object2117 should delegate #shared_runners_seconds to #statistics object2118 should delegate #shared_runners_seconds_last_reset to #statistics object2119 should delegate #actual_shared_runners_minutes_limit to #shared_runners_limit_namespace object2120 should delegate #shared_runners_minutes_limit_enabled? to #shared_runners_limit_namespace object2121 should delegate #shared_runners_minutes_used? to #shared_runners_limit_namespace object2122 should have one import_state class_name => ProjectImportState2123 should have one repository_state class_name => ProjectRepositoryState inverse_of => project2124 should have many path_locks2125 should have many vulnerability_feedback2126 should have many sourced_pipelines2127 should have many source_pipelines2128 should have many audit_events dependent => false2129 validations2130 variables2131 with duplicate variables with same environment scope2132 should not be valid2133 with same variable keys and different environment scope2134 should be valid2135 setting up a mirror2136 when new project2137 creates import_state and sets next_execution_timestamp to now2138 when project already exists2139 when project is not import2140 creates import_state and sets next_execution_timestamp to now2141 when project is import2142 sets current import_state next_execution_timestamp to now2143 .mirrors_to_sync2144 when mirror is scheduled2145 returns empty2146 when mirror is started2147 returns empty2148 when mirror is finished2149 returns project if next_execution_timestamp is not in the future2150 returns empty if next_execution_timestamp is in the future2151 when project is failed2152 returns project if next_execution_timestamp is not in the future2153 returns empty if next_execution_timestamp is in the future2154 with retry limit exceeded2155 returns empty2156 #ensure_external_webhook_token2157 sets external_webhook_token when it's missing2158 hard failing a mirror2159 sends a notification2160 #push_rule2161 should not be nil2162 push rules unlicensed2163 should be nil2164 #execute_hooks2165 group hooks2166 executes the hook when the feature is enabled2167 does not execute the hook when the feature is disabled2168 #execute_hooks2169 triggers project and group hooks2170 #allowed_to_share_with_group?2171 returns true2172 returns false2173 #feature_available?2174 only loads licensed availability once2175 when feature symbol is included on Namespace features code2176 audit_events2177 checking audit_events availability both on Global and Namespace license2178 allowed by Plan License AND Global License2179 returns true2180 not allowed by Plan License but project and namespace are public2181 returns true2182 not allowed by Global License2183 returns false2184 when checking audit_events only for Global license2185 allowed by Global License2186 returns true2187 not allowed by Global License2188 returns false2189 burndown_charts2190 checking burndown_charts availability both on Global and Namespace license2191 allowed by Plan License AND Global License2192 returns true2193 not allowed by Plan License but project and namespace are public2194 returns true2195 not allowed by Global License2196 returns false2197 when checking burndown_charts only for Global license2198 allowed by Global License2199 returns true2200 not allowed by Global License2201 returns false2202 contribution_analytics2203 checking contribution_analytics availability both on Global and Namespace license2204 allowed by Plan License AND Global License2205 returns true2206 not allowed by Plan License but project and namespace are public2207 returns true2208 not allowed by Global License2209 returns false2210 when checking contribution_analytics only for Global license2211 allowed by Global License2212 returns true2213 not allowed by Global License2214 returns false2215 elastic_search2216 when checking elastic_search only for Global license2217 allowed by Global License2218 returns true2219 not allowed by Global License2220 returns false2221 export_issues2222 checking export_issues availability both on Global and Namespace license2223 allowed by Plan License AND Global License2224 returns true2225 not allowed by Plan License but project and namespace are public2226 returns true2227 not allowed by Global License2228 returns false2229 when checking export_issues only for Global license2230 allowed by Global License2231 returns true2232 not allowed by Global License2233 returns false2234 external_files_in_gitlab_ci2235 checking external_files_in_gitlab_ci availability both on Global and Namespace license2236 allowed by Plan License AND Global License2237 returns true2238 not allowed by Plan License but project and namespace are public2239 returns true2240 not allowed by Global License2241 returns false2242 when checking external_files_in_gitlab_ci only for Global license2243 allowed by Global License2244 returns true2245 not allowed by Global License2246 returns false2247 group_webhooks2248 checking group_webhooks availability both on Global and Namespace license2249 allowed by Plan License AND Global License2250 returns true2251 not allowed by Plan License but project and namespace are public2252 returns true2253 not allowed by Global License2254 returns false2255 when checking group_webhooks only for Global license2256 allowed by Global License2257 returns true2258 not allowed by Global License2259 returns false2260 issuable_default_templates2261 checking issuable_default_templates availability both on Global and Namespace license2262 allowed by Plan License AND Global License2263 returns true2264 not allowed by Plan License but project and namespace are public2265 returns true2266 not allowed by Global License2267 returns false2268 when checking issuable_default_templates only for Global license2269 allowed by Global License2270 returns true2271 not allowed by Global License2272 returns false2273 issue_board_focus_mode2274 checking issue_board_focus_mode availability both on Global and Namespace license2275 allowed by Plan License AND Global License2276 returns true2277 not allowed by Plan License but project and namespace are public2278 returns true2279 not allowed by Global License2280 returns false2281 when checking issue_board_focus_mode only for Global license2282 allowed by Global License2283 returns true2284 not allowed by Global License2285 returns false2286 issue_weights2287 checking issue_weights availability both on Global and Namespace license2288 allowed by Plan License AND Global License2289 returns true2290 not allowed by Plan License but project and namespace are public2291 returns true2292 not allowed by Global License2293 returns false2294 when checking issue_weights only for Global license2295 allowed by Global License2296 returns true2297 not allowed by Global License2298 returns false2299 jenkins_integration2300 checking jenkins_integration availability both on Global and Namespace license2301 allowed by Plan License AND Global License2302 returns true2303 not allowed by Plan License but project and namespace are public2304 returns true2305 not allowed by Global License2306 returns false2307 when checking jenkins_integration only for Global license2308 allowed by Global License2309 returns true2310 not allowed by Global License2311 returns false2312 ldap_group_sync2313 when checking ldap_group_sync only for Global license2314 allowed by Global License2315 returns true2316 not allowed by Global License2317 returns false2318 member_lock2319 checking member_lock availability both on Global and Namespace license2320 allowed by Plan License AND Global License2321 returns true2322 not allowed by Plan License but project and namespace are public2323 returns true2324 not allowed by Global License2325 returns false2326 when checking member_lock only for Global license2327 allowed by Global License2328 returns true2329 not allowed by Global License2330 returns false2331 merge_request_approvers2332 checking merge_request_approvers availability both on Global and Namespace license2333 allowed by Plan License AND Global License2334 returns true2335 not allowed by Plan License but project and namespace are public2336 returns true2337 not allowed by Global License2338 returns false2339 when checking merge_request_approvers only for Global license2340 allowed by Global License2341 returns true2342 not allowed by Global License2343 returns false2344 multiple_ldap_servers2345 when checking multiple_ldap_servers only for Global license2346 allowed by Global License2347 returns true2348 not allowed by Global License2349 returns false2350 multiple_issue_assignees2351 checking multiple_issue_assignees availability both on Global and Namespace license2352 allowed by Plan License AND Global License2353 returns true2354 not allowed by Plan License but project and namespace are public2355 returns true2356 not allowed by Global License2357 returns false2358 when checking multiple_issue_assignees only for Global license2359 allowed by Global License2360 returns true2361 not allowed by Global License2362 returns false2363 multiple_project_issue_boards2364 checking multiple_project_issue_boards availability both on Global and Namespace license2365 allowed by Plan License AND Global License2366 returns true2367 not allowed by Plan License but project and namespace are public2368 returns true2369 not allowed by Global License2370 returns false2371 when checking multiple_project_issue_boards only for Global license2372 allowed by Global License2373 returns true2374 not allowed by Global License2375 returns false2376 push_rules2377 checking push_rules availability both on Global and Namespace license2378 allowed by Plan License AND Global License2379 returns true2380 not allowed by Plan License but project and namespace are public2381 returns true2382 not allowed by Global License2383 returns false2384 when checking push_rules only for Global license2385 allowed by Global License2386 returns true2387 not allowed by Global License2388 returns false2389 project_creation_level2390 checking project_creation_level availability both on Global and Namespace license2391 allowed by Plan License AND Global License2392 returns true2393 not allowed by Plan License but project and namespace are public2394 returns true2395 not allowed by Global License2396 returns false2397 when checking project_creation_level only for Global license2398 allowed by Global License2399 returns true2400 not allowed by Global License2401 returns false2402 protected_refs_for_users2403 checking protected_refs_for_users availability both on Global and Namespace license2404 allowed by Plan License AND Global License2405 returns true2406 not allowed by Plan License but project and namespace are public2407 returns true2408 not allowed by Global License2409 returns false2410 when checking protected_refs_for_users only for Global license2411 allowed by Global License2412 returns true2413 not allowed by Global License2414 returns false2415 related_issues2416 checking related_issues availability both on Global and Namespace license2417 allowed by Plan License AND Global License2418 returns true2419 not allowed by Plan License but project and namespace are public2420 returns true2421 not allowed by Global License2422 returns false2423 when checking related_issues only for Global license2424 allowed by Global License2425 returns true2426 not allowed by Global License2427 returns false2428 repository_mirrors2429 checking repository_mirrors availability both on Global and Namespace license2430 allowed by Plan License AND Global License2431 returns true2432 not allowed by Plan License but project and namespace are public2433 returns true2434 not allowed by Global License2435 returns false2436 when checking repository_mirrors only for Global license2437 allowed by Global License2438 returns true2439 not allowed by Global License2440 returns false2441 repository_size_limit2442 when checking repository_size_limit only for Global license2443 allowed by Global License2444 returns true2445 not allowed by Global License2446 returns false2447 scoped_issue_board2448 checking scoped_issue_board availability both on Global and Namespace license2449 allowed by Plan License AND Global License2450 returns true2451 not allowed by Plan License but project and namespace are public2452 returns true2453 not allowed by Global License2454 returns false2455 when checking scoped_issue_board only for Global license2456 allowed by Global License2457 returns true2458 not allowed by Global License2459 returns false2460 admin_audit_log2461 when checking admin_audit_log only for Global license2462 allowed by Global License2463 returns true2464 not allowed by Global License2465 returns false2466 auditor_user2467 when checking auditor_user only for Global license2468 allowed by Global License2469 returns true2470 not allowed by Global License2471 returns false2472 board_assignee_lists2473 checking board_assignee_lists availability both on Global and Namespace license2474 allowed by Plan License AND Global License2475 returns true2476 not allowed by Plan License but project and namespace are public2477 returns true2478 not allowed by Plan License2479 returns false2480 not allowed by Global License2481 returns false2482 when checking board_assignee_lists only for Global license2483 allowed by Global License2484 returns true2485 not allowed by Global License2486 returns false2487 cross_project_pipelines2488 checking cross_project_pipelines availability both on Global and Namespace license2489 allowed by Plan License AND Global License2490 returns true2491 not allowed by Plan License but project and namespace are public2492 returns true2493 not allowed by Plan License2494 returns false2495 not allowed by Global License2496 returns false2497 when checking cross_project_pipelines only for Global license2498 allowed by Global License2499 returns true2500 not allowed by Global License2501 returns false2502 email_additional_text2503 checking email_additional_text availability both on Global and Namespace license2504 allowed by Plan License AND Global License2505 returns true2506 not allowed by Plan License but project and namespace are public2507 returns true2508 not allowed by Plan License2509 returns false2510 not allowed by Global License2511 returns false2512 when checking email_additional_text only for Global license2513 allowed by Global License2514 returns true2515 not allowed by Global License2516 returns false2517 db_load_balancing2518 when checking db_load_balancing only for Global license2519 allowed by Global License2520 returns true2521 not allowed by Global License2522 returns false2523 deploy_board2524 checking deploy_board availability both on Global and Namespace license2525 allowed by Plan License AND Global License2526 returns true2527 not allowed by Plan License but project and namespace are public2528 returns true2529 not allowed by Plan License2530 returns false2531 not allowed by Global License2532 returns false2533 when checking deploy_board only for Global license2534 allowed by Global License2535 returns true2536 not allowed by Global License2537 returns false2538 extended_audit_events2539 when checking extended_audit_events only for Global license2540 allowed by Global License2541 returns true2542 not allowed by Global License2543 returns false2544 file_locks2545 checking file_locks availability both on Global and Namespace license2546 allowed by Plan License AND Global License2547 returns true2548 not allowed by Plan License but project and namespace are public2549 returns true2550 not allowed by Plan License2551 returns false2552 not allowed by Global License2553 returns false2554 when checking file_locks only for Global license2555 allowed by Global License2556 returns true2557 not allowed by Global License2558 returns false2559 geo2560 when checking geo only for Global license2561 allowed by Global License2562 returns true2563 not allowed by Global License2564 returns false2565 github_project_service_integration2566 checking github_project_service_integration availability both on Global and Namespace license2567 allowed by Plan License AND Global License2568 returns true2569 not allowed by Plan License but project and namespace are public2570 returns true2571 not allowed by Plan License2572 returns false2573 not allowed by Global License2574 returns false2575 when checking github_project_service_integration only for Global license2576 allowed by Global License2577 returns true2578 not allowed by Global License2579 returns false2580 jira_dev_panel_integration2581 checking jira_dev_panel_integration availability both on Global and Namespace license2582 allowed by Plan License AND Global License2583 returns true2584 not allowed by Plan License but project and namespace are public2585 returns true2586 not allowed by Plan License2587 returns false2588 not allowed by Global License2589 returns false2590 when checking jira_dev_panel_integration only for Global license2591 allowed by Global License2592 returns true2593 not allowed by Global License2594 returns false2595 ldap_group_sync_filter2596 when checking ldap_group_sync_filter only for Global license2597 allowed by Global License2598 returns true2599 not allowed by Global License2600 returns false2601 multiple_clusters2602 checking multiple_clusters availability both on Global and Namespace license2603 allowed by Plan License AND Global License2604 returns true2605 not allowed by Plan License but project and namespace are public2606 returns true2607 not allowed by Plan License2608 returns false2609 not allowed by Global License2610 returns false2611 when checking multiple_clusters only for Global license2612 allowed by Global License2613 returns true2614 not allowed by Global License2615 returns false2616 multiple_group_issue_boards2617 checking multiple_group_issue_boards availability both on Global and Namespace license2618 allowed by Plan License AND Global License2619 returns true2620 not allowed by Plan License but project and namespace are public2621 returns true2622 not allowed by Plan License2623 returns false2624 not allowed by Global License2625 returns false2626 when checking multiple_group_issue_boards only for Global license2627 allowed by Global License2628 returns true2629 not allowed by Global License2630 returns false2631 merge_request_performance_metrics2632 checking merge_request_performance_metrics availability both on Global and Namespace license2633 allowed by Plan License AND Global License2634 returns true2635 not allowed by Plan License but project and namespace are public2636 returns true2637 not allowed by Plan License2638 returns false2639 not allowed by Global License2640 returns false2641 when checking merge_request_performance_metrics only for Global license2642 allowed by Global License2643 returns true2644 not allowed by Global License2645 returns false2646 object_storage2647 when checking object_storage only for Global license2648 allowed by Global License2649 returns true2650 not allowed by Global License2651 returns false2652 group_saml2653 checking group_saml availability both on Global and Namespace license2654 allowed by Plan License AND Global License2655 returns true2656 not allowed by Plan License but project and namespace are public2657 returns true2658 not allowed by Plan License2659 returns false2660 not allowed by Global License2661 returns false2662 when checking group_saml only for Global license2663 allowed by Global License2664 returns true2665 not allowed by Global License2666 returns false2667 service_desk2668 checking service_desk availability both on Global and Namespace license2669 allowed by Plan License AND Global License2670 returns true2671 not allowed by Plan License but project and namespace are public2672 returns true2673 not allowed by Plan License2674 returns false2675 not allowed by Global License2676 returns false2677 when checking service_desk only for Global license2678 allowed by Global License2679 returns true2680 not allowed by Global License2681 returns false2682 unprotection_restrictions2683 checking unprotection_restrictions availability both on Global and Namespace license2684 allowed by Plan License AND Global License2685 returns true2686 not allowed by Plan License but project and namespace are public2687 returns true2688 not allowed by Plan License2689 returns false2690 not allowed by Global License2691 returns false2692 when checking unprotection_restrictions only for Global license2693 allowed by Global License2694 returns true2695 not allowed by Global License2696 returns false2697 variable_environment_scope2698 checking variable_environment_scope availability both on Global and Namespace license2699 allowed by Plan License AND Global License2700 returns true2701 not allowed by Plan License but project and namespace are public2702 returns true2703 not allowed by Plan License2704 returns false2705 not allowed by Global License2706 returns false2707 when checking variable_environment_scope only for Global license2708 allowed by Global License2709 returns true2710 not allowed by Global License2711 returns false2712 reject_unsigned_commits2713 checking reject_unsigned_commits availability both on Global and Namespace license2714 allowed by Plan License AND Global License2715 returns true2716 not allowed by Plan License but project and namespace are public2717 returns true2718 not allowed by Plan License2719 returns false2720 not allowed by Global License2721 returns false2722 when checking reject_unsigned_commits only for Global license2723 allowed by Global License2724 returns true2725 not allowed by Global License2726 returns false2727 commit_committer_check2728 checking commit_committer_check availability both on Global and Namespace license2729 allowed by Plan License AND Global License2730 returns true2731 not allowed by Plan License but project and namespace are public2732 returns true2733 not allowed by Plan License2734 returns false2735 not allowed by Global License2736 returns false2737 when checking commit_committer_check only for Global license2738 allowed by Global License2739 returns true2740 not allowed by Global License2741 returns false2742 external_authorization_service2743 when checking external_authorization_service only for Global license2744 allowed by Global License2745 returns true2746 not allowed by Global License2747 returns false2748 ci_cd_projects2749 checking ci_cd_projects availability both on Global and Namespace license2750 allowed by Plan License AND Global License2751 returns true2752 not allowed by Plan License but project and namespace are public2753 returns true2754 not allowed by Plan License2755 returns false2756 not allowed by Global License2757 returns false2758 when checking ci_cd_projects only for Global license2759 allowed by Global License2760 returns true2761 not allowed by Global License2762 returns false2763 group_burndown_charts2764 checking group_burndown_charts availability both on Global and Namespace license2765 allowed by Plan License AND Global License2766 returns true2767 not allowed by Plan License but project and namespace are public2768 returns true2769 not allowed by Plan License2770 returns false2771 not allowed by Global License2772 returns false2773 when checking group_burndown_charts only for Global license2774 allowed by Global License2775 returns true2776 not allowed by Global License2777 returns false2778 dependency_scanning2779 checking dependency_scanning availability both on Global and Namespace license2780 allowed by Plan License AND Global License2781 returns true2782 not allowed by Plan License but project and namespace are public2783 returns true2784 not allowed by Plan License2785 returns false2786 not allowed by Global License2787 returns false2788 when checking dependency_scanning only for Global license2789 allowed by Global License2790 returns true2791 not allowed by Global License2792 returns false2793 license_management2794 checking license_management availability both on Global and Namespace license2795 allowed by Plan License AND Global License2796 returns true2797 not allowed by Plan License but project and namespace are public2798 returns true2799 not allowed by Plan License2800 returns false2801 not allowed by Global License2802 returns false2803 when checking license_management only for Global license2804 allowed by Global License2805 returns true2806 not allowed by Global License2807 returns false2808 sast2809 checking sast availability both on Global and Namespace license2810 allowed by Plan License AND Global License2811 returns true2812 not allowed by Plan License but project and namespace are public2813 returns true2814 not allowed by Plan License2815 returns false2816 not allowed by Global License2817 returns false2818 when checking sast only for Global license2819 allowed by Global License2820 returns true2821 not allowed by Global License2822 returns false2823 sast_container2824 checking sast_container availability both on Global and Namespace license2825 allowed by Plan License AND Global License2826 returns true2827 not allowed by Plan License but project and namespace are public2828 returns true2829 not allowed by Plan License2830 returns false2831 not allowed by Global License2832 returns false2833 when checking sast_container only for Global license2834 allowed by Global License2835 returns true2836 not allowed by Global License2837 returns false2838 cluster_health2839 checking cluster_health availability both on Global and Namespace license2840 allowed by Plan License AND Global License2841 returns true2842 not allowed by Plan License but project and namespace are public2843 returns true2844 not allowed by Plan License2845 returns false2846 not allowed by Global License2847 returns false2848 when checking cluster_health only for Global license2849 allowed by Global License2850 returns true2851 not allowed by Global License2852 returns false2853 dast2854 checking dast availability both on Global and Namespace license2855 allowed by Plan License AND Global License2856 returns true2857 not allowed by Plan License but project and namespace are public2858 returns true2859 not allowed by Plan License2860 returns false2861 not allowed by Global License2862 returns false2863 when checking dast only for Global license2864 allowed by Global License2865 returns true2866 not allowed by Global License2867 returns false2868 epics2869 checking epics availability both on Global and Namespace license2870 allowed by Plan License AND Global License2871 returns true2872 not allowed by Plan License but project and namespace are public2873 returns true2874 not allowed by Plan License2875 returns false2876 not allowed by Global License2877 returns false2878 when checking epics only for Global license2879 allowed by Global License2880 returns true2881 not allowed by Global License2882 returns false2883 ide2884 checking ide availability both on Global and Namespace license2885 allowed by Plan License AND Global License2886 returns true2887 not allowed by Plan License but project and namespace are public2888 returns true2889 not allowed by Plan License2890 returns false2891 not allowed by Global License2892 returns false2893 when checking ide only for Global license2894 allowed by Global License2895 returns true2896 not allowed by Global License2897 returns false2898 chatops2899 checking chatops availability both on Global and Namespace license2900 allowed by Plan License AND Global License2901 returns true2902 not allowed by Plan License but project and namespace are public2903 returns true2904 not allowed by Plan License2905 returns false2906 not allowed by Global License2907 returns false2908 when checking chatops only for Global license2909 allowed by Global License2910 returns true2911 not allowed by Global License2912 returns false2913 pod_logs2914 checking pod_logs availability both on Global and Namespace license2915 allowed by Plan License AND Global License2916 returns true2917 not allowed by Plan License but project and namespace are public2918 returns true2919 not allowed by Plan License2920 returns false2921 not allowed by Global License2922 returns false2923 when checking pod_logs only for Global license2924 allowed by Global License2925 returns true2926 not allowed by Global License2927 returns false2928 when feature symbol is not included on Namespace features code2929 checks availability of licensed feature2930 #force_import_job!2931 sets next execution timestamp to now and schedules UpdateAllMirrorsWorker2932 when mirror is hard failed2933 resets retry count and schedules a mirroring worker2934 #fetch_mirror2935 import_url: "http://foo:bar@example.com", auth_method: "password", expected: "http://foo:bar@example.com"2936 should receive fetch_upstream("http://foo:bar@example.com") 1 time2937 import_url: "ssh://foo:bar@example.com", auth_method: "password", expected: "ssh://foo:bar@example.com"2938 should receive fetch_upstream("ssh://foo:bar@example.com") 1 time2939 import_url: "ssh://foo:bar@example.com", auth_method: "ssh_public_key", expected: "ssh://foo@example.com"2940 should receive fetch_upstream("ssh://foo@example.com") 1 time2941 updating import_url29422018-06-26T14:07:54.984Z 191 TID-grfpvc3jr INFO: Removing remote upstream from project 19129432018-06-26T14:07:54.995Z 191 TID-grfpvc3jr ERROR: Could not remove remote upstream from project 1912944 removes previous remote2945 #mirror_waiting_duration2946 returns in seconds the time spent in the queue2947 #mirror_update_duration2948 returns in seconds the time spent updating2949 #mirror_about_to_update?2950 when mirror is expected to run soon2951 returns true2952 when mirror was scheduled2953 returns false2954 when mirror is hard_failed2955 returns false2956 #import_in_progress?2957 when import status is scheduled2958 behaves like import in progress2959 when project is a mirror2960 when repository is empty2961 returns true2962 when repository is not empty2963 returns false2964 when project is not a mirror2965 returns true2966 when import status is started2967 behaves like import in progress2968 when project is a mirror2969 when repository is empty2970 returns true2971 when repository is not empty2972 returns false2973 when project is not a mirror2974 returns true2975 when import status is finished2976 returns false2977 #updating_mirror?2978 when repository is empty2979 returns false2980 when project is not a mirror2981 returns false2982 when mirror is started2983 returns true2984 when mirror is scheduled2985 returns true2986 #mirror_last_update_status2987 when mirror has not updated2988 returns nil2989 when mirror has updated2990 when last update time equals the time of the last successful update2991 returns success2992 when last update time does not equal the time of the last successful update2993 returns failed2994 #any_runners_limit2995 for shared runners enabled2996 has a shared runner2997 checks the presence of shared runner2998 with used pipeline minutes2999 does not have a shared runner3000 #shared_runners_available?3001 with used pipeline minutes3002 shared runners are not available3003 #shared_runners_limit_namespace3004 when shared_runner_minutes_on_root_namespace is disabled3005 returns parent namespace3006 when shared_runner_minutes_on_root_namespace is enabled3007 returns root namespace3008 #shared_runners_minutes_limit_enabled?3009 with shared runners enabled3010 for public project3011 should be falsey3012 for internal project3013 should be truthy3014 for private project3015 should be truthy3016 without shared runners3017 should be falsey3018 #size_limit_enabled?3019 when repository_size_limit is not configured3020 is disabled3021 when repository_size_limit is configured3022 with an EES license3023 is enabled3024 with an EEP license3025 is enabled3026 without a License3027 is disabled3028 #service_desk_enabled?3029 is enabled3030 namespace plans active3031 is disabled3032 Service Desk available in namespace plan3033 is enabled3034 #service_desk_address3035 uses project full path as service desk address key3036 #secret_variables_for3037 when environment name is specified3038 when environment scope is exactly matched3039 behaves like matching environment scope3040 when variable environment scope is available3041 contains the secret variable3042 when variable environment scope is unavailable3043 does not contain the secret variable3044 when environment scope is matched by wildcard3045 behaves like matching environment scope3046 when variable environment scope is available3047 contains the secret variable3048 when variable environment scope is unavailable3049 does not contain the secret variable3050 when environment scope does not match3051 behaves like not matching environment scope3052 when variable environment scope is available3053 does not contain the secret variable3054 when variable environment scope is unavailable3055 does not contain the secret variable3056 when environment scope has _3057 does not treat it as wildcard3058 when environment name contains underscore3059 matches literally for _3060 when environment scope has %3061 does not treat it as wildcard3062 when environment name contains a percent3063 matches literally for _3064 when variables with the same name have different environment scopes3065 puts variables matching environment scope more in the end3066 #approvals_before_merge3067 license_value: true, db_value: 5, expected: 53068 should eq 53069 license_value: true, db_value: 0, expected: 03070 should eq 03071 license_value: false, db_value: 5, expected: 03072 should eq 03073 license_value: false, db_value: 0, expected: 03074 should eq 03075 #reset_approvals_on_push?3076 license_value: true, db_value: true, expected: true3077 should eq true3078 license_value: true, db_value: false, expected: false3079 should eq false3080 license_value: false, db_value: true, expected: false3081 should eq false3082 license_value: false, db_value: false, expected: false3083 should eq false3084 #approvals_before_merge3085 license_value: true, db_value: 5, expected: 53086 should eq 53087 license_value: true, db_value: 0, expected: 03088 should eq 03089 license_value: false, db_value: 5, expected: 03090 should eq 03091 license_value: false, db_value: 0, expected: 03092 should eq 03093 #rename_repo3094 when running on a primary node3095 logs the Geo::RepositoryRenamedEvent for project backed by hashed storage3096 logs the Geo::RepositoryRenamedEvent for project backed by legacy storage3097 #disabled_services3098 without a license key3099 behaves like project with disabled services3100 has some disabled services3101 with a license key3102 when checking of namespace plan is enabled3103 and namespace does not have a plan3104 behaves like project with disabled services3105 has some disabled services3106 and namespace has a plan3107 behaves like project without disabled services3108 has some disabled services3109 when checking of namespace plan is not enabled3110 behaves like project without disabled services3111 has some disabled services3112 #pull_mirror_available?3113 when mirror global setting is enabled3114 returns true3115 when mirror global setting is disabled3116 returns true when overridden3117 returns false when not overridden3118 #username_only_import_url3119 import_url: "", username: "foo", expected_import_url: ""3120 should eq ""3121 import_url: "", username: "", expected_import_url: ""3122 should eq ""3123 import_url: "", username: nil, expected_import_url: ""3124 should eq ""3125 import_url: nil, username: "foo", expected_import_url: nil3126 should eq nil3127 import_url: nil, username: "", expected_import_url: nil3128 should eq nil3129 import_url: nil, username: nil, expected_import_url: nil3130 should eq nil3131 import_url: "http://example.com", username: "foo", expected_import_url: "http://foo@example.com"3132 should eq "http://foo@example.com"3133 import_url: "http://example.com", username: "", expected_import_url: "http://example.com"3134 should eq "http://example.com"3135 import_url: "http://example.com", username: nil, expected_import_url: "http://example.com"3136 should eq "http://example.com"3137 #username_only_import_url=3138 sets the import url and username3139 does not unset the password3140 clears the username if passed the empty string3141 #with_slack_application_disabled3142 returns projects where Slack application is disabled3143 #external_authorization_classification_label3144 falls back to the default when none is configured3145 returns `nil` if the feature is disabled3146 returns the classification label if it was configured on the project3147 does not break when not stubbing the license check3148 project import state transitions3149 state transition: [:started] => [:finished]3150 elasticsearch indexing disabled3151 does not index the repository3152 elasticsearch indexing enabled3153 no index status3154 schedules a full index of the repository3155 with index status3156 schedules a progressive index of the repository3157 #licensed_features3158 when the namespace should be checked3159 when bronze3160 filters for bronze features3161 when silver3162 filters for silver features3163 when gold3164 filters for gold features3165 when free plan3166 filters out paid features3167 when public project and namespace3168 includes all features in global license3169 when namespace should not be checked3170 includes all features in global license3171 when there is no license3172 should be empty3173Projects::MergeRequestsController3174 behaves like approvals3175 approve3176 approves the merge request3177 approvals3178 shows approval information3179 unapprove3180 unapproves the merge request3181 PUT update3182 when the merge request requires approval3183 behaves like update invalid issuable3184 when updating causes conflicts3185 renders edit when format is html3186 renders json error message when format is json3187 when updating an invalid issuable3188 renders edit when merge request is invalid3189 overriding approvers per MR3190 enabled3191 updates approvals3192 disabled3193 does not update approvals_before_merge3194 does not update approver_ids3195 does not update approver_group_ids3196 when the MR targets the project3197 behaves like approvals_before_merge param3198 approvals_before_merge not set for the existing MR3199 when it is less than the one in the target project3200 sets the param to nil3201 updates the merge request3202 when it is equal to the one in the target project3203 sets the param to nil3204 updates the merge request3205 when it is greater than the one in the target project3206 saves the param in the merge request3207 updates the merge request3208 approvals_before_merge set for the existing MR3209 when it is not set3210 does not change the merge request3211 updates the merge request3212 when it is less than the one in the target project3213 sets the param to nil3214 updates the merge request3215 when it is equal to the one in the target project3216 sets the param to nil3217 updates the merge request3218 when it is greater than the one in the target project3219 saves the param in the merge request3220 updates the merge request3221 when the project is a fork3222 when the MR target upstream3223 behaves like approvals_before_merge param3224 approvals_before_merge not set for the existing MR3225 when it is less than the one in the target project3226 sets the param to nil3227 updates the merge request3228 when it is equal to the one in the target project3229 sets the param to nil3230 updates the merge request3231 when it is greater than the one in the target project3232 saves the param in the merge request3233 updates the merge request3234 approvals_before_merge set for the existing MR3235 when it is not set3236 does not change the merge request3237 updates the merge request3238 when it is less than the one in the target project3239 sets the param to nil3240 updates the merge request3241 when it is equal to the one in the target project3242 sets the param to nil3243 updates the merge request3244 when it is greater than the one in the target project3245 saves the param in the merge request3246 updates the merge request3247 when the MR target the fork3248 behaves like approvals_before_merge param3249 approvals_before_merge not set for the existing MR3250 when it is less than the one in the target project3251 sets the param to nil3252 updates the merge request3253 when it is equal to the one in the target project3254 sets the param to nil3255 updates the merge request3256 when it is greater than the one in the target project3257 saves the param in the merge request3258 updates the merge request3259 approvals_before_merge set for the existing MR3260 when it is not set3261 does not change the merge request3262 updates the merge request3263 when it is less than the one in the target project3264 sets the param to nil3265 updates the merge request3266 when it is equal to the one in the target project3267 sets the param to nil3268 updates the merge request3269 when it is greater than the one in the target project3270 saves the param in the merge request3271 updates the merge request3272 POST #rebase3273 approvals pending3274 returns 2003275 with a forked project3276 behaves like approvals3277 approve3278 approves the merge request3279 approvals3280 shows approval information3281 unapprove3282 unapproves the merge request3283New/edit issue3284 new issue3285 allows user to create new issue3286 correctly updates the selected user when changing assignee3287 shorten users API pagination limit3288 should display selected users even if they are not part of the original API call3289 multiple assignees3290 unselects other assignees when unassigned is selected3291 toggles assign to me when current user is selected and unselected3292Project elastic search3293 searching3294 finds issues3295 finds merge requests3296 finds milestones3297 finds wiki pages3298 finds notes3299 finds commits3300 finds blobs3301EE Clusters3302 when user has a cluster3303 when license has multiple clusters feature3304 when user adds an existing cluster3305 user sees a add cluster button3306 when user filled form with environment scope3307 user sees a cluster details page3308 when user updates environment scope3309 user sees a cluster details page3310 when user updates duplicated environment scope3311 users sees an environment scope validation error3312 when user adds an Google Kubernetes Engine cluster3313 user sees a add cluster button3314 when user filled form with environment scope3315 user sees a cluster details page3316 when user updates environment scope3317 user sees a cluster details page3318 when user updates duplicated environment scope3319 users sees an environment scope validation error3320 when license does not have multiple clusters feature3321 when user visits cluster index page3322 user sees a disabled add cluster button3323Merge request > User approves3324 Approving by approvers from groups3325 when group is assigned to a project3326 I am able to approve3327 I am able to unapprove3328 when group is assigned to a merge request3329 I am able to approve3330 I am able to unapprove3331 when CI is running but no approval given3332 I am unable to set Merge when pipeline succeeds3333 when merge when discussions resolved is active3334 does not show checking ability text3335Geo::FileDownloadService3336 #execute3337 user avatar3338 behaves like a service that downloads the file and registers the sync result3339 for a new file3340 when the downloader fails before attempting a transfer3341 logs that the download failed before attempting a transfer3342 when the downloader attempts a transfer3343 when the file is successfully downloaded3344 registers the file3345 marks the file as synced3346 does not mark the file as missing on the primary3347 logs the result3348 resets the retry fields3349 when the file fails to download3350 when the file is missing on the primary3351 registers the file3352 marks the file as synced3353 marks the file as missing on the primary3354 logs the result3355 sets a retry date and increments the retry count3356 when the file is not missing on the primary3357 registers the file3358 marks the file as failed to sync3359 does not mark the file as missing on the primary3360 sets a retry date and increments the retry count3361 for a registered file that failed to sync3362 when the file is successfully downloaded3363 does not register a new file3364 marks the file as synced3365 resets the retry fields3366 when the file was marked as missing on the primary3367 marks the file as no longer missing on the primary3368 when the file was not marked as missing on the primary3369 does not mark the file as missing on the primary3370 when the file fails to download3371 when the file is missing on the primary3372 does not register a new file3373 marks the file as synced3374 marks the file as missing on the primary3375 logs the result3376 sets a retry date and increments the retry count3377 when the file is not missing on the primary3378 does not register a new file3379 does not change the success flag3380 does not mark the file as missing on the primary3381 sets a retry date and increments the retry count3382 group avatar3383 behaves like a service that downloads the file and registers the sync result3384 for a new file3385 when the downloader fails before attempting a transfer3386 logs that the download failed before attempting a transfer3387 when the downloader attempts a transfer3388 when the file is successfully downloaded3389 registers the file3390 marks the file as synced3391 does not mark the file as missing on the primary3392 logs the result3393 resets the retry fields3394 when the file fails to download3395 when the file is missing on the primary3396 registers the file3397 marks the file as synced3398 marks the file as missing on the primary3399 logs the result3400 sets a retry date and increments the retry count3401 when the file is not missing on the primary3402 registers the file3403 marks the file as failed to sync3404 does not mark the file as missing on the primary3405 sets a retry date and increments the retry count3406 for a registered file that failed to sync3407 when the file is successfully downloaded3408 does not register a new file3409 marks the file as synced3410 resets the retry fields3411 when the file was marked as missing on the primary3412 marks the file as no longer missing on the primary3413 when the file was not marked as missing on the primary3414 does not mark the file as missing on the primary3415 when the file fails to download3416 when the file is missing on the primary3417 does not register a new file3418 marks the file as synced3419 marks the file as missing on the primary3420 logs the result3421 sets a retry date and increments the retry count3422 when the file is not missing on the primary3423 does not register a new file3424 does not change the success flag3425 does not mark the file as missing on the primary3426 sets a retry date and increments the retry count3427 project avatar3428 behaves like a service that downloads the file and registers the sync result3429 for a new file3430 when the downloader fails before attempting a transfer3431 logs that the download failed before attempting a transfer3432 when the downloader attempts a transfer3433 when the file is successfully downloaded3434 registers the file3435 marks the file as synced3436 does not mark the file as missing on the primary3437 logs the result3438 resets the retry fields3439 when the file fails to download3440 when the file is missing on the primary3441 registers the file3442 marks the file as synced3443 marks the file as missing on the primary3444 logs the result3445 sets a retry date and increments the retry count3446 when the file is not missing on the primary3447 registers the file3448 marks the file as failed to sync3449 does not mark the file as missing on the primary3450 sets a retry date and increments the retry count3451 for a registered file that failed to sync3452 when the file is successfully downloaded3453 does not register a new file3454 marks the file as synced3455 resets the retry fields3456 when the file was marked as missing on the primary3457 marks the file as no longer missing on the primary3458 when the file was not marked as missing on the primary3459 does not mark the file as missing on the primary3460 when the file fails to download3461 when the file is missing on the primary3462 does not register a new file3463 marks the file as synced3464 marks the file as missing on the primary3465 logs the result3466 sets a retry date and increments the retry count3467 when the file is not missing on the primary3468 does not register a new file3469 does not change the success flag3470 does not mark the file as missing on the primary3471 sets a retry date and increments the retry count3472 with an attachment3473 behaves like a service that downloads the file and registers the sync result3474 for a new file3475 when the downloader fails before attempting a transfer3476 logs that the download failed before attempting a transfer3477 when the downloader attempts a transfer3478 when the file is successfully downloaded3479 registers the file3480 marks the file as synced3481 does not mark the file as missing on the primary3482 logs the result3483 resets the retry fields3484 when the file fails to download3485 when the file is missing on the primary3486 registers the file3487 marks the file as synced3488 marks the file as missing on the primary3489 logs the result3490 sets a retry date and increments the retry count3491 when the file is not missing on the primary3492 registers the file3493 marks the file as failed to sync3494 does not mark the file as missing on the primary3495 sets a retry date and increments the retry count3496 for a registered file that failed to sync3497 when the file is successfully downloaded3498 does not register a new file3499 marks the file as synced3500 resets the retry fields3501 when the file was marked as missing on the primary3502 marks the file as no longer missing on the primary3503 when the file was not marked as missing on the primary3504 does not mark the file as missing on the primary3505 when the file fails to download3506 when the file is missing on the primary3507 does not register a new file3508 marks the file as synced3509 marks the file as missing on the primary3510 logs the result3511 sets a retry date and increments the retry count3512 when the file is not missing on the primary3513 does not register a new file3514 does not change the success flag3515 does not mark the file as missing on the primary3516 sets a retry date and increments the retry count3517 with a snippet3518 behaves like a service that downloads the file and registers the sync result3519 for a new file3520 when the downloader fails before attempting a transfer3521 logs that the download failed before attempting a transfer3522 when the downloader attempts a transfer3523 when the file is successfully downloaded3524 registers the file3525 marks the file as synced3526 does not mark the file as missing on the primary3527 logs the result3528 resets the retry fields3529 when the file fails to download3530 when the file is missing on the primary3531 registers the file3532 marks the file as synced3533 marks the file as missing on the primary3534 logs the result3535 sets a retry date and increments the retry count3536 when the file is not missing on the primary3537 registers the file3538 marks the file as failed to sync3539 does not mark the file as missing on the primary3540 sets a retry date and increments the retry count3541 for a registered file that failed to sync3542 when the file is successfully downloaded3543 does not register a new file3544 marks the file as synced3545 resets the retry fields3546 when the file was marked as missing on the primary3547 marks the file as no longer missing on the primary3548 when the file was not marked as missing on the primary3549 does not mark the file as missing on the primary3550 when the file fails to download3551 when the file is missing on the primary3552 does not register a new file3553 marks the file as synced3554 marks the file as missing on the primary3555 logs the result3556 sets a retry date and increments the retry count3557 when the file is not missing on the primary3558 does not register a new file3559 does not change the success flag3560 does not mark the file as missing on the primary3561 sets a retry date and increments the retry count3562 with file upload3563 behaves like a service that downloads the file and registers the sync result3564 for a new file3565 when the downloader fails before attempting a transfer3566 logs that the download failed before attempting a transfer3567 when the downloader attempts a transfer3568 when the file is successfully downloaded3569 registers the file3570 marks the file as synced3571 does not mark the file as missing on the primary3572 logs the result3573 resets the retry fields3574 when the file fails to download3575 when the file is missing on the primary3576 registers the file3577 marks the file as synced3578 marks the file as missing on the primary3579 logs the result3580 sets a retry date and increments the retry count3581 when the file is not missing on the primary3582 registers the file3583 marks the file as failed to sync3584 does not mark the file as missing on the primary3585 sets a retry date and increments the retry count3586 for a registered file that failed to sync3587 when the file is successfully downloaded3588 does not register a new file3589 marks the file as synced3590 resets the retry fields3591 when the file was marked as missing on the primary3592 marks the file as no longer missing on the primary3593 when the file was not marked as missing on the primary3594 does not mark the file as missing on the primary3595 when the file fails to download3596 when the file is missing on the primary3597 does not register a new file3598 marks the file as synced3599 marks the file as missing on the primary3600 logs the result3601 sets a retry date and increments the retry count3602 when the file is not missing on the primary3603 does not register a new file3604 does not change the success flag3605 does not mark the file as missing on the primary3606 sets a retry date and increments the retry count3607 with namespace file upload3608 behaves like a service that downloads the file and registers the sync result3609 for a new file3610 when the downloader fails before attempting a transfer3611 logs that the download failed before attempting a transfer3612 when the downloader attempts a transfer3613 when the file is successfully downloaded3614 registers the file3615 marks the file as synced3616 does not mark the file as missing on the primary3617 logs the result3618 resets the retry fields3619 when the file fails to download3620 when the file is missing on the primary3621 registers the file3622 marks the file as synced3623 marks the file as missing on the primary3624 logs the result3625 sets a retry date and increments the retry count3626 when the file is not missing on the primary3627 registers the file3628 marks the file as failed to sync3629 does not mark the file as missing on the primary3630 sets a retry date and increments the retry count3631 for a registered file that failed to sync3632 when the file is successfully downloaded3633 does not register a new file3634 marks the file as synced3635 resets the retry fields3636 when the file was marked as missing on the primary3637 marks the file as no longer missing on the primary3638 when the file was not marked as missing on the primary3639 does not mark the file as missing on the primary3640 when the file fails to download3641 when the file is missing on the primary3642 does not register a new file3643 marks the file as synced3644 marks the file as missing on the primary3645 logs the result3646 sets a retry date and increments the retry count3647 when the file is not missing on the primary3648 does not register a new file3649 does not change the success flag3650 does not mark the file as missing on the primary3651 sets a retry date and increments the retry count3652 LFS object3653 behaves like a service that downloads the file and registers the sync result3654 for a new file3655 when the downloader fails before attempting a transfer3656 logs that the download failed before attempting a transfer3657 when the downloader attempts a transfer3658 when the file is successfully downloaded3659 registers the file3660 marks the file as synced3661 does not mark the file as missing on the primary3662 logs the result3663 resets the retry fields3664 when the file fails to download3665 when the file is missing on the primary3666 registers the file3667 marks the file as synced3668 marks the file as missing on the primary3669 logs the result3670 sets a retry date and increments the retry count3671 when the file is not missing on the primary3672 registers the file3673 marks the file as failed to sync3674 does not mark the file as missing on the primary3675 sets a retry date and increments the retry count3676 for a registered file that failed to sync3677 when the file is successfully downloaded3678 does not register a new file3679 marks the file as synced3680 resets the retry fields3681 when the file was marked as missing on the primary3682 marks the file as no longer missing on the primary3683 when the file was not marked as missing on the primary3684 does not mark the file as missing on the primary3685 when the file fails to download3686 when the file is missing on the primary3687 does not register a new file3688 marks the file as synced3689 marks the file as missing on the primary3690 logs the result3691 sets a retry date and increments the retry count3692 when the file is not missing on the primary3693 does not register a new file3694 does not change the success flag3695 does not mark the file as missing on the primary3696 sets a retry date and increments the retry count3697 job artifacts3698 behaves like a service that downloads the file and registers the sync result3699 for a new file3700 when the downloader fails before attempting a transfer3701 logs that the download failed before attempting a transfer3702 when the downloader attempts a transfer3703 when the file is successfully downloaded3704 registers the file3705 marks the file as synced3706 does not mark the file as missing on the primary3707 logs the result3708 resets the retry fields3709 when the file fails to download3710 when the file is missing on the primary3711 registers the file3712 marks the file as synced3713 marks the file as missing on the primary3714 logs the result3715 sets a retry date and increments the retry count3716 when the file is not missing on the primary3717 registers the file3718 marks the file as failed to sync3719 does not mark the file as missing on the primary3720 sets a retry date and increments the retry count3721 for a registered file that failed to sync3722 when the file is successfully downloaded3723 does not register a new file3724 marks the file as synced3725 resets the retry fields3726 when the file was marked as missing on the primary3727 marks the file as no longer missing on the primary3728 when the file was not marked as missing on the primary3729 does not mark the file as missing on the primary3730 when the file fails to download3731 when the file is missing on the primary3732 does not register a new file3733 marks the file as synced3734 marks the file as missing on the primary3735 logs the result3736 sets a retry date and increments the retry count3737 when the file is not missing on the primary3738 does not register a new file3739 does not change the success flag3740 does not mark the file as missing on the primary3741 sets a retry date and increments the retry count3742 bad object type3743 raises an error3744UpdateAuthorizedKeysFile3745 #up3746 when authorized_keys_enabled is nil3747 sets authorized_keys_enabled to true (FAILED - 1)3748 there are keys created before and after the cutoff datetime3749 adds the keys created after the cutoff datetime to the authorized_keys file (FAILED - 2)3750 when an SSH key exists in authorized_keys but not in the DB3751 deletes the SSH key from authorized_keys (FAILED - 3)3752 #authorized_keys_file_in_use_and_stale?3753 when the customer ran the broken migration3754 when is a record in application_settings table3755 when authorized_keys_enabled is true3756 example at ./ee/spec/migrations/update_authorized_keys_file_spec.rb:88 (FAILED - 4)3757 when authorized_keys_enabled is nil3758 example at ./ee/spec/migrations/update_authorized_keys_file_spec.rb:100 (FAILED - 5)3759 when authorized_keys_enabled is explicitly false3760 example at ./ee/spec/migrations/update_authorized_keys_file_spec.rb:108 (FAILED - 6)3761 outputs a warning message for users who unintentionally Saved the setting unchecked (FAILED - 7)3762 when there is no record in application_settings table3763 example at ./ee/spec/migrations/update_authorized_keys_file_spec.rb:121 (FAILED - 8)3764 when the customer did not run the broken migration3765 example at ./ee/spec/migrations/update_authorized_keys_file_spec.rb:130 (FAILED - 9)3766 #ran_broken_migration?3767 for unaffected customers: the authorized_keys_enabled column has a default (so the fixed migration ran)3768 returns false (FAILED - 10)3769 for affected customers: the authorized_keys_enabled column does not have a default (so the broken migration ran)3770 returns true (FAILED - 11)3771Projects > Audit Events3772 has Audit Events button in head nav bar3773 unlicensed3774 returns 4043775 does not have Audit Events button in head nav bar3776 unlicensed but we show promotions3777 returns 2003778 does not have Audit Events button in head nav bar3779 adding an SSH key3780 appears in the project's audit events3781 changing a user access level3782 appears in the project's audit events3783Update Epic3784 when user who is not a group member displays the epic3785 does not show the Edit button3786 when user with developer access displays the epic3787 updates the tasklist3788 update form3789 updates the epic3790 edits full screen3791 uploads a file when dragging into textarea3792 autocomplete enabled3793 opens atwho container3794 when user with owner access displays the epic3795 does not show delete button inside the edit form3796ProjectPolicy3797 admin_mirror3798 with remote mirror setting enabled3799 with admin3800 should be allowed :admin_mirror3801 with owner3802 should be allowed :admin_mirror3803 with developer3804 should be disallowed :admin_mirror3805 with remote mirror setting disabled3806 with admin3807 should be allowed :admin_mirror3808 with owner3809 should be disallowed :admin_mirror3810 with remote mirrors feature disabled3811 with admin3812 should be disallowed :admin_mirror3813 with owner3814 should be disallowed :admin_mirror3815 with remote mirrors feature enabled3816 with admin3817 should be allowed :admin_mirror3818 with owner3819 should be allowed :admin_mirror3820 reading a project3821 allows access when a user has read access to the repo3822 never checks the external service3823 with an external authorization service3824 allows access when the external service allows it3825 does not check the external service for admins and allows access3826 allows auditors3827 prevents all but seeing a public project in a list when access is denied3828 passes the full path to external authorization for logging purposes3829 read_vulnerability_feedback3830 with public project3831 should be allowed :read_vulnerability_feedback3832 with private project3833 with admin3834 should be allowed :read_vulnerability_feedback3835 with owner3836 should be allowed :read_vulnerability_feedback3837 with master3838 should be allowed :read_vulnerability_feedback3839 with developer3840 should be allowed :read_vulnerability_feedback3841 with reporter3842 should be allowed :read_vulnerability_feedback3843 with guest3844 should be allowed :read_vulnerability_feedback3845 with non member3846 should be disallowed :read_vulnerability_feedback3847 with anonymous3848 should be disallowed :read_vulnerability_feedback3849 admin_vulnerability_feedback3850 with admin3851 should be allowed :admin_vulnerability_feedback3852 with owner3853 should be allowed :admin_vulnerability_feedback3854 with master3855 should be allowed :admin_vulnerability_feedback3856 with developer3857 should be allowed :admin_vulnerability_feedback3858 with reporter3859 should be disallowed :admin_vulnerability_feedback3860 with guest3861 should be disallowed :admin_vulnerability_feedback3862 with non member3863 should be disallowed :admin_vulnerability_feedback3864 with anonymous3865 should be disallowed :admin_vulnerability_feedback3866Filter issues weight3867 only weight3868 filter issues by searched weight3869 weight with other filters3870 filters issues by searched weight and text3871 filters issues by searched weight, author and text3872 filters issues by searched weight, author, assignee and text3873 filters issues by searched weight, author, assignee, label and text3874 filters issues by searched weight, milestone and text3875MergeRequest3876 should delegate #expose_sast_data? to #head_pipeline object3877 should delegate #base_has_sast_data? to #base_pipeline object as #has_sast_data?3878 should delegate #head_sast_artifact to #head_pipeline object as #sast_artifact3879 should delegate #base_sast_artifact to #base_pipeline object as #sast_artifact3880 should delegate #expose_dast_data? to #head_pipeline object3881 should delegate #base_has_dast_data? to #base_pipeline object as #has_dast_data?3882 should delegate #head_dast_artifact to #head_pipeline object as #dast_artifact3883 should delegate #base_dast_artifact to #base_pipeline object as #dast_artifact3884 should delegate #expose_sast_container_data? to #head_pipeline object3885 should delegate #base_has_sast_container_data? to #base_pipeline object as #has_sast_container_data?3886 should delegate #head_sast_container_artifact to #head_pipeline object as #sast_container_artifact3887 should delegate #base_sast_container_artifact to #base_pipeline object as #sast_container_artifact3888 should delegate #expose_container_scanning_data? to #head_pipeline object3889 should delegate #base_has_container_scanning_data? to #base_pipeline object as #has_container_scanning_data?3890 should delegate #head_container_scanning_artifact to #head_pipeline object as #container_scanning_artifact3891 should delegate #base_container_scanning_artifact to #base_pipeline object as #container_scanning_artifact3892 associations3893 should have many approvals dependent => delete_all3894 should have many approvers dependent => delete_all3895 should have many approver_groups dependent => delete_all3896 should have many approved_by_users3897 #approvals_before_merge3898 license_value: true, db_value: 5, expected: 53899 should eq 53900 license_value: true, db_value: nil, expected: nil3901 should eq nil3902 license_value: false, db_value: 5, expected: nil3903 should eq nil3904 license_value: false, db_value: nil, expected: nil3905 should eq nil3906 #base_pipeline3907 should eq #<Ci::Pipeline id: 31, ref: "master", sha: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f", before_sha: ni...line_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil, iid: 1>3908 #base_codeclimate_artifact3909WARNING: An expectation of `:codeclimate_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:46:in `block (3 levels) in <top (required)>'.3910 delegates to merge request diff3911 #head_codeclimate_artifact3912WARNING: An expectation of `:codeclimate_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:57:in `block (3 levels) in <top (required)>'.3913 delegates to merge request diff3914 #base_performance_artifact3915WARNING: An expectation of `:performance_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:68:in `block (3 levels) in <top (required)>'.3916 delegates to merge request diff3917 #head_performance_artifact3918WARNING: An expectation of `:performance_artifact` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab-ee/ee/spec/models/merge_request_spec.rb:79:in `block (3 levels) in <top (required)>'.3919 delegates to merge request diff3920 #expose_codeclimate_data?3921 with codeclimate data3922 should be truthy3923 without codeclimate data3924 should be falsey3925 #expose_code_quality_data?3926 with code_quality data3927 should be truthy3928 without code_quality data3929 should be falsey3930 #expose_performance_data?3931 with performance data3932 should be truthy3933 without performance data3934 should be falsey3935UpdateAllMirrorsWorker3936 #perform3937 does not execute if cannot get the lease3938 schedules mirrors3939 #schedule_mirrors!3940 unlicensed3941 does not schedule when project does not have repository mirrors available3942 licensed3943 when capacity is in excess3944 schedules all available mirrors3945 requests as many batches as necessary3946 when capacity is exacly sufficient3947 schedules all available mirrors3948 requests as many batches as necessary3949 when capacity is insufficient3950 schedules mirrors by next_execution_timestamp3951 requests as many batches as necessary3952 when capacity is insufficient and the first batch is empty3953 schedules mirrors by next_execution_timestamp3954 requests as many batches as necessary3955MergeRequestWidgetEntity3956 has blob path data3957 has codeclimate data (with old artifact name codeclimate,json)3958 has codeclimate data (with new artifact name gl-code-quality-report.json)3959 sets approvals_before_merge to 0 if nil3960 has performance data3961 has sast data3962 has dependency_scanning data3963 has license_management data3964 has sast_container data (with old artifact name gl-sast-container-report.json)3965 has sast_container data (with new artifact name gl-container-scanning-report.json)3966 has dast data3967 has vulnerability feedbacks path3968 has pipeline id3969PushRulesHelper3970 global_setting: true, enabled_globally: true, enabled_in_project: false, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3971 has the correct help text3972 has the correct help text3973 global_setting: true, enabled_globally: false, enabled_in_project: false, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3974 has the correct help text3975 has the correct help text3976 global_setting: true, enabled_globally: true, enabled_in_project: true, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3977 has the correct help text3978 has the correct help text3979 global_setting: true, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :default_admin_help, invalid_text: nil3980 has the correct help text3981 has the correct help text3982 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :admin, help_text: :setting_can_be_overridden, invalid_text: nil3983 has the correct help text3984 has the correct help text3985 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :owner, help_text: :setting_can_be_overridden, invalid_text: nil3986 has the correct help text3987 has the correct help text3988 global_setting: false, enabled_globally: true, enabled_in_project: nil, current_user: :owner, help_text: :requires_admin_contact, invalid_text: nil3989 has the correct help text3990 has the correct help text3991 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :admin, help_text: :setting_has_been_overridden, invalid_text: nil3992 has the correct help text3993 has the correct help text3994 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :setting_has_been_overridden, invalid_text: nil3995 has the correct help text3996 has the correct help text3997 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :requires_admin_contact, invalid_text: nil3998 has the correct help text3999 has the correct help text4000 global_setting: false, enabled_globally: true, enabled_in_project: true, current_user: :owner, help_text: :setting_can_be_overridden, invalid_text: nil4001 has the correct help text4002 has the correct help text4003 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :setting_has_been_overridden, invalid_text: nil4004 has the correct help text4005 has the correct help text4006 global_setting: false, enabled_globally: true, enabled_in_project: true, current_user: :owner, help_text: :requires_admin_contact, invalid_text: :setting_has_been_overridden4007 has the correct help text4008 has the correct help text4009 global_setting: false, enabled_globally: true, enabled_in_project: false, current_user: :owner, help_text: :requires_admin_contact, invalid_text: :setting_can_be_overridden4010 has the correct help text4011 has the correct help text4012 global_setting: false, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :base_help, invalid_text: :setting_can_be_overridden4013 has the correct help text4014 has the correct help text4015 global_setting: false, enabled_globally: false, enabled_in_project: true, current_user: :admin, help_text: :base_help, invalid_text: :setting_has_been_overridden4016 has the correct help text4017 has the correct help text4018Path Locks4019 Locking folders4020 Locking files4021 Unlocking files4022 Managing of lock list4023Ldap::OmniauthCallbacksController4024 displays LDAP sync flash on first sign in4025 skips LDAP sync flash on subsequent sign ins4026 access denied4027 logs a failure event4028Discussion Comments Epic4029 behaves like discussion comments4030 clicking "Comment" will post a comment4031 when the toggle is clicked4032 has a "Comment" item (selected by default) and "Start discussion" item4033 closes the menu when clicking the toggle or body4034 clicking the ul padding or divider should not change the text4035 when selecting "Start discussion"4036 updates the submit button text and closes the dropdown4037 creating a discussion4038 clicking "Start discussion" will post a discussion4039 when opening the menu4040 should have "Start discussion" selected4041 when selecting "Comment"4042 updates the submit button text and closes the dropdown4043 should have "Comment" selected when opening the menu4044PushRule4045 defaults regexp_uses_re2 to true4046 updates regexp_uses_re2 to true on edit4047 Associations4048 should belong to project4049 Validation4050 should validate that :project cannot be empty/falsy4051 should validate that :max_file_size looks like an integer greater than or equal to 04052 validates RE2 regex syntax4053 #branch_name_allowed?4054 checks branch against regex4055 uses RE2 regex engine4056 with legacy regex4057 attempts to use safe RE2 regex engine4058 falls back to ruby regex engine4059 #commit_message_allowed?4060 uses multiline regex4061 #commit_validation?4062 setting: :commit_message_regex, value: "regex", result: true4063 when rule is enabled at global level4064 returns the default value at project level4065 setting: :branch_name_regex, value: "regex", result: true4066 when rule is enabled at global level4067 returns the default value at project level4068 setting: :author_email_regex, value: "regex", result: true4069 when rule is enabled at global level4070 returns the default value at project level4071 setting: :file_name_regex, value: "regex", result: true4072 when rule is enabled at global level4073 returns the default value at project level4074 setting: :reject_unsigned_commits, value: true, result: true4075 when rule is enabled at global level4076 returns the default value at project level4077 setting: :commit_committer_check, value: true, result: true4078 when rule is enabled at global level4079 returns the default value at project level4080 setting: :member_check, value: true, result: true4081 when rule is enabled at global level4082 returns the default value at project level4083 setting: :prevent_secrets, value: true, result: true4084 when rule is enabled at global level4085 returns the default value at project level4086 setting: :max_file_size, value: 1, result: false4087 when rule is enabled at global level4088 returns the default value at project level4089 #commit_message_allowed?4090 raises a MatchError when the regex is invalid4091 #branch_name_allowed?4092 raises a MatchError when the regex is invalid4093 #author_email_allowed?4094 raises a MatchError when the regex is invalid4095 #filename_blacklisted?4096 raises a MatchError when the regex is invalid4097 #commit_signature_allowed?4098 when feature is not licensed and it is enabled4099 accepts unsigned commits4100 when enabled at a global level4101 returns false if commit is not signed4102 and disabled at a Project level4103 returns true if commit is not signed4104 and unset at a Project level4105 returns false if commit is not signed4106 when disabled at a global level4107 returns true if commit is not signed4108 but enabled at a Project level4109 returns false if commit is not signed4110 returns true if commit is signed4111 when user has enabled and disabled it at a project level4112 and it is enabled globally4113 returns false if commit is not signed4114 returns true if commit is signed4115 with caching4116 memoizes the right push rules4117 #available?4118 reject_unsigned_commits4119 with the global push_rule4120 with a EE starter license4121 behaves like an unavailable push_rule4122 is not available4123 with a EE premium license4124 behaves like an available push_rule4125 is available4126 with GL.com plans4127 with a Bronze plan4128 behaves like an unavailable push_rule4129 is not available4130 with a Silver plan4131 behaves like an available push_rule4132 is available4133 with a Gold plan4134 behaves like an available push_rule4135 is available4136Repository4137 searches blobs and commits4138 filters commits from blobs, and vice-versa4139 class method find_commits_by_message_with_elastic4140 returns commits4141 find_commits_by_message_with_elastic4142 returns commits4143Projects::IssuesController4144 GET #index4145 behaves like unauthorized when external service denies access4146 allows access when the authorization service allows it4147 allows access when the authorization service denies it4148 POST export_csv4149 unlicensed4150 returns 4044151 globally licensed4152 allows CSV export4153 anonymous user4154 redirects to the sign in page4155 licensed by namespace4156 allows CSV export4157 issue weights4158 licensed4159 #index4160 allows sorting by weight4161 allows filtering by weight4162 #update4163 sets issue weight4164 #create4165 sets issue weight4166 unlicensed4167 #index4168 ignores filtering by weight4169 #update4170 does not set issue weight4171 #create4172 does not set issue weight4173 GET service_desk4174 when Service Desk is available on the project4175 adds an author filter for the support bot user4176 does not allow any other author to be set4177 supports other filters4178 allows an assignee to be specified by id4179 when Service Desk is not available on the project4180 returns a 4044181 GET #discussions4182 with a related system note4183 when authenticated4184 behaves like user can see confidential issue4185 when a user is a reporter4186 displays related notes4187 behaves like user can see confidential issue4188 when a user is a developer4189 displays related notes4190 behaves like user can see confidential issue4191 when a user is a master4192 displays related notes4193 behaves like user cannot see confidential issue4194 when a user is a guest4195 redacts note related to a confidential issue4196 when unauthenticated4197 behaves like user cannot see confidential issue4198 when a user is a 04199 redacts note related to a confidential issue4200Project settings > [EE] Merge Requests4201 adds approver4202 filter approvers4203 adds approver group4204 with an approver group4205 removes approver group4206 issuable default templates feature not available4207 input to configure merge request template is not shown4208 issuable default templates feature is available4209 input to configure merge request template is not shown4210Geo::WikiSyncService4211 behaves like geo base sync execution4212 #execute4213 when can acquire exclusive lease4214 executes the synchronization4215 when exclusive lease is not acquired4216 is does not execute synchronization4217 behaves like geo base sync fetch and repack4218 #fetch_repository4219 cleans up temporary repository4220 updates registry4221 fetches repository from geo node4222 redownload4223 fetches repository from geo node into temporary location4224 schedule git repack4225 repository does not exist4226 ensures repository is created4227 schedule git repack4228 #execute4229 fetches wiki repository with JWT credentials4230 releases lease4231 voids the failure message when it succeeds after an error4232 does not fetch wiki repository if cannot obtain a lease4233 rescues exception when Gitlab::Shell::Error is raised4234 rescues exception when Gitlab::Git::RepositoryMirroring::RemoteError is raised4235 rescues exception when Gitlab::Git::Repository::NoRepository is raised4236 increases retry count when Gitlab::Git::Repository::NoRepository is raised4237 marks sync as successful if no repository found4238 marks resync as true after a failure4239 tracking database4240 creates a new registry if does not exists4241 does not create a new registry if one exists4242 temporary repositories4243 there is a leftover repository4244 removes leftover repository4245 when repository sync succeed4246 sets last_wiki_synced_at4247 sets last_wiki_successful_sync_at4248 resets the wiki_verification_checksum_sha4249 resets the last_wiki_verification_failure4250 resets the wiki_checksum_mismatch4251 logs success with timings4252 when wiki sync fail4253 sets correct values for registry record4254 calls repository cleanup4255 no Wiki repository4256 does not raise an error4257 behaves like sync retries use the snapshot RPC4258 snapshot synchronization method4259 does not attempt to snapshot for initial sync4260 does not attempt to snapshot for ordinary retries4261 registry is ready to be snapshotted4262 attempts to snapshot4263 attempts to fetch if snapshotting raises an exception4264 does not attempt to snapshot if the feature flag is disabled4265EE::NotificationService4266 with external authentication service4267 sends email when the service is not enabled4268 when the service is enabled4269 does not send an email4270 still delivers email to admins4271 service desk issues4272 a non-service-desk issue4273 doesn't send the email4274 a service-desk issue4275 sends the email4276 where the project has disabled the feature4277 doesn't send the email4278 when the license doesn't allow service desk4279 doesn't send the email4280 when the support bot has unsubscribed4281 doesn't send the email4282 mirror hard failed4283 when the project has invited members4284 sends email4285 when user is owner4286 sends email4287 when owner is blocked4288 does not send email4289 when project belongs to group4290 does not send email to the blocked owner4291 when user is master4292 sends email4293 when user is not owner nor master4294 does not send email4295 when user is group owner4296 sends email4297 when user is group master4298 sends email4299 mirror user changed4300 sends email4301 Notes4302 epic notes4303 #new_note4304 should eq 04305Note4306 searches notes4307 indexes && searches diff notes4308 returns json with all needed elements4309 does not create ElasticIndexerWorker job for system messages4310 notes to confidential issues4311 does not find note4312 finds note when user is authorized to see it4313 finds note for admin4314 finds note for auditor4315 return notes with matching content for project members4316 does not return notes with matching content for project members with guest role4317 behaves like no results when the user cannot read cross project4318 returns the record if a single project was passed4319 does not return anything when trying to search cross project4320Projects::CreateService#execute4321 with a CI/CD only project4322 when CI/CD projects feature is available4323 calls the service to setup CI/CD on the project4324 when CI/CD projects feature is not available4325 doesn't call the service to setup CI/CD on the project4326 repository_size_limit assignment as Bytes4327 when param present4328 assign repository_size_limit as Bytes4329 when param not present4330 assign nil value4331 without repository mirror4332 sets the mirror to false4333 with repository mirror4334 when licensed4335 sets the correct attributes4336 with mirror trigger builds4337 sets the mirror trigger builds4338 with checks on the namespace4339 when not licensed on a namespace4340 does not allow enabeling mirrors4341 when licensed on a namespace4342 allows enabling mirrors4343 when unlicensed4344 does not set mirror attributes4345 with mirror trigger builds4346 sets the mirror trigger builds4347 git hook sample4348 creates git hook from sample4349 push rules unlicensed4350 ignores the push rule sample4351 when running on a primary node4352 logs an event to the Geo event log4353 does not log event to the Geo log if project creation fails4354 when importing Project by repo URL4355 and check namespace plan is enabled4356 creates the project4357 audit events4358 does not log audit event if project operation fails4359 if operation succeed4360 logs an audit event if operation succeed4361 logs the project info4362 with external authorization enabled4363 does not save the project with an error if the service denies access4364 saves the project when the user has access to the label4365 does not save the project when the user has no access to the default label and no label is provided4366Assign labels to an epic4367 when label is referenced4368 creates new system note with label pointing to epics index page4369 when labels icon is clicked on collapsed sidebar4370 expands sidebar4371 opens labels dropdown4372 collapses sidebar when clicked outside4373Boards::Issues::MoveService4374 #execute4375 when parent is a project4376 behaves like moving an issue to/from assignee lists4377 from assignee to label list4378 does not unassign and adds label4379 from assignee to backlog4380 removes assignment4381 from assignee to closed list4382 keeps assignment and closes the issue4383 from label list to assignee4384 assigns and does not remove label4385 between two assignee lists4386 unassigns removal and assigns addition4387 when parent is a group4388 behaves like moving an issue to/from assignee lists4389 from assignee to label list4390 does not unassign and adds label4391 from assignee to backlog4392 removes assignment4393 from assignee to closed list4394 keeps assignment and closes the issue4395 from label list to assignee4396 assigns and does not remove label4397 between two assignee lists4398 unassigns removal and assigns addition4399API::Epics4400 GET /groups/:id/epics4401 behaves like error requests4402 when epics feature is disabled4403 returns 403 forbidden error4404 when epics feature is enabled4405 returns 401 unauthorized error for non authenticated user4406 returns 404 not found error for a user without permissions to see the group4407 when the request is correct4408 returns 200 status4409 matches the response schema4410 with multiple epics4411 returns epics authored by the given author id4412 returns epics matching given search string for title4413 returns epics matching given search string for description4414 sorts by created_at descending by default4415 sorts ascending when requested4416 sorts by updated_at descending when requested4417 sorts by updated_at ascending when requested4418 returns an array of labeled epics4419 GET /groups/:id/epics/:epic_iid4420 behaves like error requests4421 when epics feature is disabled4422 returns 403 forbidden error4423 when epics feature is enabled4424 returns 401 unauthorized error for non authenticated user4425 returns 404 not found error for a user without permissions to see the group4426 when the request is correct4427 returns 200 status4428 matches the response schema4429 POST /groups/:id/epics4430 behaves like error requests4431 when epics feature is disabled4432 returns 403 forbidden error4433 when epics feature is enabled4434 returns 401 unauthorized error for non authenticated user4435 returns 404 not found error for a user without permissions to see the group4436 when epics feature is enabled4437 when required parameter is missing4438 returns 4004439 when the request is correct4440 returns 201 status4441 matches the response schema4442 creates a new epic4443 PUT /groups/:id/epics/:epic_iid4444 behaves like error requests4445 when epics feature is disabled4446 returns 403 forbidden error4447 when epics feature is enabled4448 returns 401 unauthorized error for non authenticated user4449 returns 404 not found error for a user without permissions to see the group4450 when epics feature is enabled4451 when a user does not have permissions to create an epic4452 returns 403 forbidden error4453 when no param sent4454 returns 4004455 when the request is correct4456 returns 200 status4457 matches the response schema4458 updates the epic4459 DELETE /groups/:id/epics/:epic_iid4460 behaves like error requests4461 when epics feature is disabled4462 returns 403 forbidden error4463 when epics feature is enabled4464 returns 401 unauthorized error for non authenticated user4465 returns 404 not found error for a user without permissions to see the group4466 when epics feature is enabled4467 when a user does not have permissions to destroy an epic4468 returns 403 forbidden error4469 when the request is correct4470 returns 204 status4471 removes an epic4472Groups::EpicIssuesController4473 GET #index4474 behaves like unlicensed epics action4475 returns 400 status4476 when epics feature is enabled4477 returns status 2004478 returns the correct json4479 POST #create4480 behaves like unlicensed epics action4481 returns 400 status4482 when epics feature is enabled4483 when user has permissions to create requested association4484 returns correct response for the correct issue reference4485 creates a new EpicIssue record4486 when user does not have permissions to create requested association4487 returns correct response for the correct issue reference4488 does not create a new EpicIssue record4489 DELETE #destroy4490 behaves like unlicensed epics action4491 returns 400 status4492 when epics feature is enabled4493 when user has permissions to delete the link4494 returns status 2004495 destroys the link4496 when user does not have permissions to delete the link4497 returns status 4044498 does not destroy the link4499 when the epic from the association does not equal epic from the path4500 returns status 4044501 does not destroy the link4502 when the epic_issue record does not exists4503 returns status 4044504 PUT #update4505 behaves like unlicensed epics action4506 returns 400 status4507 when epics feature is enabled4508 when user has permissions to admin the epic4509 returns status 2004510 updates the issue position value4511 when user does not have permissions to admin the epic4512 returns status 4044513 when the epic from the association does not equal epic from the path4514 returns status 4044515 when the epic_issue record does not exists4516 returns status 4044517viewing an issue with cross project references4518 shows all information related to the cross project reference4519 shows a link to the confidential issue in the same project4520 does not show the link to a cross project confidential issue when the user does not have access4521 shows the link to a cross project confidential issue when the user has access4522 when an external authorization service is enabled4523 only hits the external service for the project the user is viewing4524 shows only the link to the cross project references4525 does not link a cross project confidential issue if the user does not have access4526 links a cross project confidential issue without exposing information when the user has access4527 shows a link to the confidential issue in the same project4528Project settings > Issues4529 when Issues are initially enabled4530 when Pipelines are initially enabled4531 shows the Issues settings4532 when Issues are initially disabled4533 does not show the Issues settings4534 issuable default templates feature not available4535 input to configure issue template is not shown4536 issuable default templates feature is available4537 input to configure issue template is not shown4538API::ProjectImport4539 POST /projects/import4540 overrides the classification label when the service is enabled4541Issues csv4542 triggers an email export4543 doesn't send request params to ExportCsvWorker4544 displays flash message4545 includes a csv attachment4546 ignores pagination4547 uses filters from issue index4548 uses array filters, such as label_name4549 avoids excessive database calls4550group epic roadmap4551 when epics exist for the group4552 roadmap page4553 renders roadmap preset buttons correctly4554 renders the filtered search bar correctly4555 renders roadmap view4556 renders all group epics within roadmap4557 roadmap page with filter applied4558 renders filtered search bar with applied filter token4559 renders roadmap view with matching epic4560 when no epics exist for the group4561 roadmap page4562 does not render the filtered search bar4563Merge request > User merges with Push Rules4564 commit message is invalid4565 displays error message after merge request is clicked4566 author email is invalid4567 displays error message after merge request is clicked4568Milestones on EE4569 burndown charts4570 with the burndown chart feature available4571 shows a burndown chart4572 when a closed issue do not have closed events4573 shows warning4574 when all closed issues do not have closed events4575 shows warning and hides burndown4576 data is accurate4577 does not show warning4578 with due & start date not set4579 shows a mention to fill in dates4580 with the burndown chart feature disabled4581 has a link to upgrade to Bronze when checking the namespace plan4582 has a link to upgrade to starter on premise4583 with the issuable weights feature disabled4584 has a link to upgrade to Bronze when checking the namespace plan4585 has a link to upgrade to starter on premise4586 milestone summary4587 shows the total weight when sum is greater than zero4588 hides the total weight when sum is equal to zero4589Project variables EE4590 when variable environment scope is available4591 adds new variable with a special environment scope4592 when variable environment scope is not available4593 does not show variable environment scope element4594Projects::MirrorsController4595 setting up a remote mirror4596 when the current project is a mirror45972018-06-26T14:15:47.661Z 191 TID-grfpvc3jr INFO: Removing remote remote_mirror_1 from project 97745982018-06-26T14:15:47.666Z 191 TID-grfpvc3jr ERROR: Could not remove remote remote_mirror_1 from project 9774599 allows to create a remote mirror4600 when remote mirror has the same URL46012018-06-26T14:15:48.001Z 191 TID-grfpvc3jr INFO: Removing remote remote_mirror_2 from project 97846022018-06-26T14:15:48.006Z 191 TID-grfpvc3jr ERROR: Could not remove remote remote_mirror_2 from project 97846032nd Try error in ./ee/spec/controllers/projects/mirrors_controller_spec.rb:26:4604 expected `RemoteMirror.count` not to have changed, but did change from 0 to 1 4605RSpec::Retry: 2nd try ./ee/spec/controllers/projects/mirrors_controller_spec.rb:264606 does not allow to create the remote mirror4607 with disabled local mirror46082018-06-26T14:15:48.925Z 191 TID-grfpvc3jr INFO: Removing remote remote_mirror_3 from project 98046092018-06-26T14:15:48.931Z 191 TID-grfpvc3jr ERROR: Could not remove remote remote_mirror_3 from project 9804610 allows to create a remote mirror4611 when the current project has a remote mirror4612 when trying to create a mirror with the same URL46132018-06-26T14:15:49.097Z 191 TID-grfpvc3jr INFO: Removing remote remote_mirror_4 from project 97646142018-06-26T14:15:49.102Z 191 TID-grfpvc3jr ERROR: Could not remove remote remote_mirror_4 from project 9764615 should not setup the mirror4616 when trying to create a mirror with a different URL4617 should setup the mirror4618 mirror user is not the current user4619 should only assign the current user4620 setting up a mirror4621 when mirrors are disabled4622 when user is admin4623 creates a new mirror4624 when user is not an admin4625 does not create a new mirror4626 when mirrors are enabled4627 when project does not have a mirror4628 allows to create a mirror4629 when project has a mirror4630 is able to disable the mirror4631 forcing an update on a pull mirror4632 forces update4633 #update4634 JSON4635 processes a successful update4636 processes an unsuccessful update4637 preserves the import_data object when the ID isn't in the request4638 sets ssh_known_hosts_verified_at and verified_by when the update sets known hosts4639 unsets ssh_known_hosts_verified_at and verified_by when the update unsets known hosts4640 only allows the current user to be the mirror user4641 with a valid URL for a pull4642 processes a successful update4643 with a invalid URL for a pull4644 processes an unsuccessful update4645 #ssh_host_keys4646 invalid URLs4647 url: "INVALID"4648 returns an error with a 400 response4649 url: "git@example.com:foo/bar.git"4650 returns an error with a 400 response4651 url: "ssh://git@example.com:foo/bar.git"4652 returns an error with a 400 response4653 no data in cache4654 requests the cache to be filled and returns a 204 response4655 error in the cache4656 returns the error with a 400 response4657 data in the cache4658 returns the data with a 200 response4659Projects::UpdateMirrorService4660 #execute4661 fetches the upstream repository4662 succeeds4663 unlicensed4664 does nothing4665 updating tags4666 creates new tags4667 only invokes GitTagPushService for tags pointing to commits4668 updating branches4669 creates new branches4670 updates existing branches4671 when mirror only protected branches option is set4672 creates a new protected branch4673 does not create an unprotected branch4674 updates existing protected branches4675 does not update unprotected branches4676 with diverged branches4677 when mirror_overwrites_diverged_branches is true4678 update diverged branches4679 when mirror_overwrites_diverged_branches is false4680 doesn't update diverged branches4681 when mirror_overwrites_diverged_branches is nil4682 doesn't update diverged branches4683 when project is empty4684 does not add a default master branch4685 when the mirror user doesn't have access4686 fails4687 when no user is present4688 fails4689 when is no mirror4690 success4691Ci::RegisterJobService4692 #execute4693 checks database loadbalancing stickiness4694 result is valid if replica did caught-up4695 result is invalid if replica did not caught-up4696 for project with shared runners when global minutes limit is set4697 allow to pick builds4698 should be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...file_store: integer, artifacts_metadata_store: integer, protected: boolean, failure_reason: integer)4699 when over the global quota4700 does not return a build4701 when project is public4702 does return the build4703 when namespace limit is set to unlimited4704 does return the build4705 when namespace quota is bigger than a global one4706 does return the build4707 when group is subgroup4708 when shared_runner_minutes_on_root_namespace is disabled4709 does return a build4710 when we are over limit on subnamespace4711 does not return a build4712 when shared_runner_minutes_on_root_namespace is enabled4713 does return a build4714 when we are over limit on subnamespace4715 limit is ignored and build is returned4716 when we are over limit on root namespace4717 does not return a build4718Edit group settings4719 LDAP sync method4720 when the LDAP group sync filter feature is available4721 adds new LDAP synchronization4722 shows the LDAP filter section4723 shows the LDAP group section4724 when the LDAP group sync filter feature is not available4725 does not show the LDAP search method switcher4726 shows the LDAP group section4727 does not shows the LDAP filter section4728Groups > Members > Master/Owner can override LDAP access levels4729 override not available on project members page4730 owner cannot override LDAP access level4731 owner can override LDAP access level4732EpicsFinder4733 #execute4734 when epics feature is disabled4735 raises an exception4736 when epics feature is enabled4737 without param4738 raises an error when group_id param is missing4739 when user can not read epics of a group4740 raises an error when group_id param is missing4741 with correct params4742 returns all epics that belong to the given group4743 does not execute more than 7 SQL queries4744 by created_at4745 returns all epics created before the given date4746 returns all epics created after the given date4747 returns all epics created within the given interval4748 by search4749 returns all epics that match the search4750 by author4751 returns all epics authored by the given user4752 by label4753 returns all epics with given label4754 when subgroups are supported4755 returns all epics that belong to the given group and its subgroups4756 does not execute more than 9 SQL queries4757 does not execute more than 11 SQL queries when checking namespace plans4758 by timeframe4759 returns epics which start in the timeframe4760 returns epics which end in the timeframe4761 returns epics which start before and end after the timeframe4762 #row_count4763 returns number of rows when epics are grouped4764IssueLinks::ListService4765 #execute4766 user can see all issues4767 ensures no N+1 queries are made4768 returns related issues JSON4769 referencing a public project issue4770 presents issue4771 referencing issue with removed relationships4772 when referenced a deleted issue4773 ignores issue4774 when referenced an issue with deleted project4775 ignores issue4776 when referenced an issue with deleted namespace4777 ignores issue4778 user cannot see relations4779 when user cannot see the referenced issue4780 returns an empty list4781 when user cannot see the issue that referenced4782 returns an empty list4783 remove relations4784 user can admin related issues just on target project4785 returns no destroy relation path4786 user can admin related issues just on source project4787 returns no destroy relation path4788 when user can admin related issues on both projects4789 returns related issue destroy relation path4790CI shared runner limits4791 when project member4792 without limit4793 it does not display a warning message on project homepage4794 it does not display a warning message on pipelines page4795 when limit is defined4796 when limit is exceeded4797 it displays a warning message on project homepage4798 it displays a warning message on pipelines page4799 when limit not yet exceeded4800 it does not display a warning message on project homepage4801 it does not display a warning message on pipelines page4802 when minutes are not yet set4803 it does not display a warning message on project homepage4804 it does not display a warning message on pipelines page4805 when not a project member4806 when limit is defined and limit is exceeded4807 it does not display a warning message on project homepage4808 it does not display a warning message on pipelines page4809Git HTTP requests (Geo)4810 GET info_refs4811 git pull4812 behaves like Geo sync request4813 post-dated Geo JWT token4814 should respond with numeric status code unauthorized4815 expired Geo JWT token4816 should respond with numeric status code unauthorized4817 invalid Geo JWT token4818 should respond with numeric status code unauthorized4819 valid Geo JWT token4820 returns an OK response4821 no Geo JWT token4822 should respond with numeric status code unauthorized4823 Geo is unlicensed4824 should respond with numeric status code forbidden4825 when terms are enforced4826 behaves like Geo sync request4827 post-dated Geo JWT token4828 should respond with numeric status code unauthorized4829 expired Geo JWT token4830 should respond with numeric status code unauthorized4831 invalid Geo JWT token4832 should respond with numeric status code unauthorized4833 valid Geo JWT token4834 returns an OK response4835 no Geo JWT token4836 should respond with numeric status code unauthorized4837 Geo is unlicensed4838 should respond with numeric status code forbidden4839 git push4840 redirects to the primary4841 POST upload_pack4842 behaves like Geo sync request4843 post-dated Geo JWT token4844 should respond with numeric status code unauthorized4845 expired Geo JWT token4846 should respond with numeric status code unauthorized4847 invalid Geo JWT token4848 should respond with numeric status code unauthorized4849 valid Geo JWT token4850 returns an OK response4851 no Geo JWT token4852 should respond with numeric status code unauthorized4853 Geo is unlicensed4854 should respond with numeric status code forbidden4855 when terms are enforced4856 behaves like Geo sync request4857 post-dated Geo JWT token4858 should respond with numeric status code unauthorized4859 expired Geo JWT token4860 should respond with numeric status code unauthorized4861 invalid Geo JWT token4862 should respond with numeric status code unauthorized4863 valid Geo JWT token4864 returns an OK response4865 no Geo JWT token4866 should respond with numeric status code unauthorized4867 Geo is unlicensed4868 should respond with numeric status code forbidden4869EE::DeploymentPlatform4870 #deployment_platform4871 when environment is specified4872 when environment scope is exactly matched4873 behaves like matching environment scope4874 when multiple clusters license is available4875 returns environment specific cluster4876 when multiple clusters licence is unavailable4877 returns a kubernetes platform4878 when environment scope is matched by wildcard4879 behaves like matching environment scope4880 when multiple clusters license is available4881 returns environment specific cluster4882 when multiple clusters licence is unavailable4883 returns a kubernetes platform4884 when environment scope does not match4885 behaves like not matching environment scope4886 when multiple clusters license is available4887 returns default cluster4888 when multiple clusters license is unavailable4889 returns a kubernetes platform4890 when environment scope has _4891 does not treat it as wildcard4892 when environment name contains an underscore4893 matches literally for _4894 when environment scope has %4895 does not treat it as wildcard4896 when environment name contains a percent char4897 matches literally for %4898 when perfectly matched cluster exists4899 returns perfectly matched cluster as highest precedence4900 with multiple clusters and multiple environments4901 should return the appropriate cluster4902API::MergeRequestApprovals4903 GET :id/merge_requests/:merge_request_iid/approvals4904 retrieves the approval status4905 when approvers are set to zero4906 returns a 2004907 does not include an error in the response4908 POST :id/merge_requests/:merge_request_iid/approvals4909 as a project admin4910 behaves like user allowed to override approvals required4911 when disable_overriding_approvers_per_merge_request is false on the project4912 allows you to override approvals required4913 does not allow approvals required under what the project requires4914 when project approvals are zero4915 does not include an error in the response4916 when disable_overriding_approvers_per_merge_request is true on the project4917 does not allow you to override approvals required4918 as a global admin4919 behaves like user allowed to override approvals required4920 when disable_overriding_approvers_per_merge_request is false on the project4921 allows you to override approvals required4922 does not allow approvals required under what the project requires4923 when project approvals are zero4924 does not include an error in the response4925 when disable_overriding_approvers_per_merge_request is true on the project4926 does not allow you to override approvals required4927 as a random user4928 does not allow you to override approvals required4929 PUT :id/merge_requests/:merge_request_iid/approvers4930 as a project admin4931 behaves like user allowed to change approvers4932 when disable_overriding_approvers_per_merge_request is true on the project4933 does not allow overriding approvers4934 when disable_overriding_approvers_per_merge_request is false on the project4935 allows overriding approvers4936 removes approvers not in the payload4937 when sending form-encoded data4938 removes approvers not in the payload4939 as a global admin4940 behaves like user allowed to change approvers4941 when disable_overriding_approvers_per_merge_request is true on the project4942 does not allow overriding approvers4943 when disable_overriding_approvers_per_merge_request is false on the project4944 allows overriding approvers4945 removes approvers not in the payload4946 when sending form-encoded data4947 removes approvers not in the payload4948 as a random user4949 does not allow overriding approvers4950 POST :id/merge_requests/:merge_request_iid/approve4951 as the author of the merge request4952 returns a 4014953 as a valid approver4954 when the sha param is not set4955 approves the merge request4956 when the sha param is correct4957 approves the merge request4958 when the sha param is incorrect4959 returns a 4094960 does not approve the merge request4961 POST :id/merge_requests/:merge_request_iid/unapprove4962 as a user who has approved the merge request4963 unapproves the merge request4964API::LdapGroupLinks4965 POST /groups/:id/ldap_group_links4966 when unauthenticated4967 returns authentication error4968 when a less priviledged user4969 does not allow less priviledged user to add LDAP group link4970 when owner of the group4971 returns ok and add ldap group link4972 returns ok and add ldap group link even if no provider specified (PENDING: Temporarily skipped with xit)4973 returns error if LDAP group link already exists4974 returns a 400 error when cn is not given4975 returns a 400 error when group access is not given4976 returns a 422 error when group access is not known4977 DELETE /groups/:id/ldap_group_links/:cn4978 when unauthenticated4979 returns authentication error4980 when a less priviledged user4981 does not remove the LDAP group link4982 when owner of the group4983 removes ldap group link4984 returns 404 if LDAP group cn not used for a LDAP group link4985 DELETE /groups/:id/ldap_group_links/:provider/:cn4986 when unauthenticated4987 returns authentication error4988 when a less priviledged user4989 does not remove the LDAP group link4990 when owner of the group4991 returns 404 if LDAP group cn not used for a LDAP group link for the specified provider4992 removes ldap group link4993MigrateMirrorAttributesDataFromProjectsToImportState4994 #up4995 migrates the mirror data to the import_state table4996 #down4997 migrates the import_state mirror data into the projects table4998Projects::IssueLinksController4999 GET /*namespace_id/:project_id/issues/:issue_id/links5000 returns JSON response5001 POST /*namespace_id/:project_id/issues/:issue_id/links5002 with success5003 returns success JSON5004 with failure5005 when unauthorized5006 returns 4035007 when failing service result5008 returns failure JSON5009 DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id5010 when unauthorized5011 when no authorization on current project5012 returns 4035013 when no authorization on the related issue project5014 returns 4045015 when authorized5016 returns success JSON5017 when non of issues of the link is not the issue requested in the path5018 returns 4045019 does not delete the link5020GithubService5021 Associations5022 should belong to project5023 #owner5024 is determined from the repo URL5025 #repository_name5026 is determined from the repo URL5027 #api_url5028 uses github.com by default5029 with GitHub Enterprise repo URL5030 is set to the Enterprise API URL5031 #detailed_description5032 links to mirroring settings5033 #execute5034 notifies GitHub of a status change5035 uses StatusMessage to build message5036 uses GitHub API to update status5037 passes StatusMessage values to StatusNotifier5038 sha5039 status5040 context5041 target_url5042 description5043 with custom api endpoint5044 hands custom api url to StatusNotifier5045 without a license5046 does nothing5047 #can_test?5048 is false if there are no pipelines5049 is true if the project has a pipeline5050 #test_data5051 raises error if no pipeline found5052 generates data for latest pipeline5053 #test5054 mentions creator in success message5055 forwards failure message on error5056 without a license5057 fails gracefully5058LdapGroupResetService5059 #execute5060 initiated by ldap user5061 should eq 505062 should eq 105063 should eq 505064 should be nil5065 should be nil5066 initiated by regular user5067 should eq 105068 should eq 105069 should eq 505070 should be nil5071 should be nil5072Projects::ClustersController5073 GET metrics5074 functionality5075 Can't query Prometheus5076 returns not found5077 can query Prometheus5078 queries cluster metrics5079 when response has content5080 returns prometheus query response5081 when response has no content5082 returns prometheus query response5083 security5084 should be allowed for admin. Expected: 200,201,204,302 Got: 2045085 should be allowed for owner. Expected: 200,201,204,302 Got: 2045086 should be allowed for master. Expected: 200,201,204,302 Got: 2045087 should be denied for developer. Expected: 401,404 Got: 4045088 should be denied for reporter. Expected: 401,404 Got: 4045089 should be denied for guest. Expected: 401,404 Got: 4045090 should be denied for user. Expected: 401,404 Got: 4045091 should be denied for external. Expected: 401,404 Got: 4045092MergeRequests::ApprovalService5093 #execute5094 with invalid approval5095 does not create an approval note5096 does not mark pending todos as done5097 with valid approval5098 creates an approval note5099 marks pending todos as done5100 resets the cache for approvals5101 with remaining approvals5102 does not fire a webhook5103 does not send an email5104 with required approvals5105 fires a webhook5106 sends an email5107New Epic5108 empty epic list5109 when user who is not a group member views the epic list5110 does not show the create button5111 when user with owner views the epic list5112 does show the create button5113 has epics in list5114 when user who is not a group member views the epic list5115 does not show the create button5116 when user with owner views the epic list5117 does show the create button5118 can create epic5119Groups::Epics::NotesController5120 GET index5121 responds with array of notes5122 with cross-reference system note that is not visible to the current user5123 does not return any note5124 POST create5125 returns status 302 for html5126 returns status 200 for json5127 PUT update5128 updates the note5129 DELETE destroy5130 user is the author of a note5131 returns status 2005132 deletes the note5133 user is not the author of the note5134 returns status 4045135 POST toggle_award_emoji5136 toggles the award emoji5137 removes the already awarded emoji5138Geo::FileRegistryRemovalService5139 #execute5140 delegates log_error to the Geo logger5141 with LFS object5142 behaves like removes5143 file from disk5144 registry when file was deleted successfully5145 migrated to object storage5146 behaves like removes5147 file from disk5148 registry when file was deleted successfully5149 with job artifact5150 behaves like removes artifact5151 file from disk5152 registry when file was deleted successfully5153 migrated to object storage5154 behaves like removes artifact5155 file from disk5156 registry when file was deleted successfully5157 with avatar5158 behaves like removes5159 file from disk5160 registry when file was deleted successfully5161 migrated to object storage5162 behaves like removes5163 file from disk5164 registry when file was deleted successfully5165 with attachment5166 behaves like removes5167 file from disk5168 registry when file was deleted successfully5169 migrated to object storage5170 behaves like removes5171 file from disk5172 registry when file was deleted successfully5173 with file5174 behaves like removes5175 file from disk5176 registry when file was deleted successfully5177 migrated to object storage5178 behaves like removes5179 file from disk5180 registry when file was deleted successfully5181 with namespace_file5182 behaves like removes5183 file from disk5184 registry when file was deleted successfully5185 migrated to object storage5186 behaves like removes5187 file from disk5188 registry when file was deleted successfully5189 with personal_file5190 behaves like removes5191 file from disk5192 registry when file was deleted successfully5193 migrated to object storage5194 behaves like removes5195 file from disk5196 registry when file was deleted successfully5197Groups > Contribution Analytics5198 visit Contribution Analytics page for group5199 displays Contribution Analytics5200Projects::ApproverGroupsController5201 #destroy5202 on a merge request5203 when the user cannot update approvers because they do not have access5204 returns a 4045205 does not destroy any approver groups5206 when the user cannot update approvers because of the project setting5207 returns a 4045208 does not destroy any approver groups5209 when the user can update approvers5210 destroys the provided approver group5211 on a project5212 when the user cannot update approvers because they do not have access5213 returns a 4045214 does not destroy any approver groups5215 when the user can update approvers5216 destroys the provided approver5217Banzai::Filter::EpicReferenceFilter5218 internal reference5219 links to a valid reference5220 links with adjacent text5221 includes a title attribute5222 escapes the title attribute5223 includes default classes5224 includes a data-group attribute5225 includes a data-epic attribute5226 includes a data-original attribute5227 ignores invalid epic IDs5228 does not process links containing epic numbers followed by text5229 internal escaped reference5230 links to a valid reference5231 includes a title attribute5232 includes default classes5233 ignores invalid epic IDs5234 cross-reference5235 ignores a shorthand reference from another group5236 links to a valid reference for full reference5237 link has valid text5238 includes default classes5239 escaped cross-reference5240 ignores a shorthand reference from another group5241 links to a valid reference for full reference5242 link has valid text5243 includes default classes5244 subgroup cross-reference5245 ignores a shorthand reference from another group5246 ignores reference with incomplete group path5247 links to a valid reference for full reference5248 link has valid text5249 includes default classes5250 url reference5251 links to a valid reference5252 link has valid text5253 includes default classes5254 full cross-refererence in a link href5255 links to a valid reference for link href5256 link has valid text5257 includes default classes5258 url in a link href5259 links to a valid reference for link href5260 link has valid text5261 includes default classes5262Edit group settings5263 navbar5264 with LDAP enabled5265 is able to navigate to LDAP group section5266 with owners not being able to manage LDAP5267 is not able to navigate to LDAP group section5268 with webhook feature enabled5269 shows the menu item5270 with webhook feature enabled5271 shows the menu item5272 with project_creation_level feature enabled5273 shows the selection menu5274 with project_creation_level feature disabled5275 shows the selection menu5276 Member Lock setting5277 without a license key5278 is not visible5279 with a license key5280 is visible5281 when current user is not the Owner5282 is not visible5283PathLock5284 Relations5285 should belong to project5286 should belong to user5287 Validations5288 should validate that :user cannot be empty/falsy5289 should validate that :project cannot be empty/falsy5290 should validate that :path cannot be empty/falsy5291 should validate that :path is case-sensitively unique within the scope of :project_id5292 #path_unique_validation5293 is not valid because of upstream lock5294 is not valid because of downstream lock5295 downstream?5296 returns true5297 returns false5298 returns false5299 upstream?5300 returns true5301 returns false5302 returns false5303 exact?5304 returns true5305 returns false5306Geo clone instructions5307 with an SSH key5308 defaults to SSH5309 switches to HTTP5310Gitlab::Chat::Command5311 #try_create_pipeline5312 returns nil when the command is not valid5313 tries to create the pipeline when a command is valid5314 #create_pipeline5315 creates the pipeline5316 creates the chat data for the pipeline5317 stores the chat name ID in the chat data5318 stores the response URL in the chat data5319 creates the environment variables for the pipeline5320Issue Sidebar5321 updating weight5322 updates weight in sidebar to 15323 updates weight in sidebar to no weight5324label issues5325 adds a new group label from sidebar5326Gitlab::Email::Handler::CreateNoteHandler5327 when the note could not be saved5328 raises an InvalidNoteError5329 when the note contains quick actions5330 and current user cannot update the noteable5331 only executes the commands that the user can perform5332 and current user can update noteable5333 posts a note and updates the noteable5334 when the reply is blank5335 raises an EmptyEmailError5336 when everything is fine5337 creates a comment5338 adds all attachments5339 when sub-addressing is not supported5340 mail key is in the References header5341 behaves like an email that contains a mail key5342 fetches the mail key from the References header and creates a comment5343 mail key is in the References header with a comma5344 behaves like an email that contains a mail key5345 fetches the mail key from the References header and creates a comment5346Boards::UpdateService5347 #execute5348 updates board's name5349 returns true with valid params5350 returns false with invalid params5351 updates the configuration params when scoped issue board is enabled5352 filters unpermitted params when scoped issue board is not enabled5353 behaves like board with milestone predefined scope5354 updates board to milestone id5355 behaves like board with milestone predefined scope5356 updates board to milestone id5357 group board milestone5358 is not updated if it is not within group milestones5359 is updated if it is within group milestones5360 project board milestone5361 is not updated if it is not within project milestones5362 is updated if it is within project milestones5363 is updated if it is within project group milestones5364EpicIssues::DestroyService5365 #execute5366 when epics feature is disabled5367 returns an error5368 when epics feature is enabled5369 when user has permissions to remove associations5370 removes related issue5371 returns success message5372 creates 2 system notes5373 creates a note for epic correctly5374 creates a note for issue correctly5375 user does not have permissions to remove associations5376 does not remove relation5377 returns error message5378EE::ProtectedRefAccess5379 in ProtectedBranch::MergeAccessLevel5380 ProtectedBranch::MergeAccessLevel includes {described_class}5381 requires access_level if no user or group is specified5382 doesn't require access_level if user specified5383 doesn't require access_level if group specified5384 with the `protected_refs_for_users` feature disabled5385 allows creating an ProtectedBranch::MergeAccessLevel with a group5386 allows creating an ProtectedBranch::MergeAccessLevel with a user5387 with the `protected_refs_for_users` feature enabled5388 allows creating an ProtectedBranch::MergeAccessLevel with a group5389 allows creating an ProtectedBranch::MergeAccessLevel with a user5390 in ProtectedBranch::PushAccessLevel5391 ProtectedBranch::PushAccessLevel includes {described_class}5392 requires access_level if no user or group is specified5393 doesn't require access_level if user specified5394 doesn't require access_level if group specified5395 with the `protected_refs_for_users` feature disabled5396 allows creating an ProtectedBranch::PushAccessLevel with a group5397 allows creating an ProtectedBranch::PushAccessLevel with a user5398 with the `protected_refs_for_users` feature enabled5399 allows creating an ProtectedBranch::PushAccessLevel with a group5400 allows creating an ProtectedBranch::PushAccessLevel with a user5401 in ProtectedTag::CreateAccessLevel5402 ProtectedTag::CreateAccessLevel includes {described_class}5403 requires access_level if no user or group is specified5404 doesn't require access_level if user specified5405 doesn't require access_level if group specified5406 with the `protected_refs_for_users` feature disabled5407 allows creating an ProtectedTag::CreateAccessLevel with a group5408 allows creating an ProtectedTag::CreateAccessLevel with a user5409 with the `protected_refs_for_users` feature enabled5410 allows creating an ProtectedTag::CreateAccessLevel with a group5411 allows creating an ProtectedTag::CreateAccessLevel with a user5412 #check_access5413 is false if external authorization denies access5414License5415 Validation5416 Valid license5417 when the license is provided5418 is valid5419 when no license is provided5420 is invalid5421 #check_users_limit5422 gl_plan: "starter", valid: false5423 when license has restricted users5424 should eq false5425 when license has unlimited users5426 is always valid5427 gl_plan: "premium", valid: false5428 when license has restricted users5429 should eq false5430 when license has unlimited users5431 is always valid5432 gl_plan: "ultimate", valid: true5433 when license has restricted users5434 should eq true5435 when license has unlimited users5436 is always valid5437 Historical active user count5438 when there is no active user count restriction5439 is valid5440 without historical data5441 with previous_user_count and active users above of license limit5442 is invalid5443 shows the proper error message5444 when the active user count restriction is exceeded5445 when the license started5446 is invalid5447 after the license started5448 is valid5449 in the year before the license started5450 is invalid5451 earlier than a year before the license started5452 is valid5453 when the active user count restriction is not exceeded5454 is valid5455 when the active user count is met exactly5456 is valid5457 with true-up info5458 when quantity is ok5459 is valid5460 but active users exceeds restricted user count5461 is invalid5462 when quantity is wrong5463 is invalid5464 when previous user count is not present5465 uses current active user count to calculate the expected true-up5466 with wrong true-up quantity5467 is invalid5468 when previous user count is present5469 uses it to calculate the expected true-up5470 Not expired5471 when the license doesn't expire5472 is valid5473 when the license has expired5474 is invalid5475 when the license has yet to expire5476 is valid5477 downgrade5478 when more users were added in previous period5479 is invalid without a true-up5480 when no users were added in the previous period5481 is valid5482 Class methods5483 .features_for_plan5484 returns features for starter plan5485 returns features for premium plan5486 returns features for early adopter plan5487 returns empty array if no features for given plan5488 .plan_includes_feature?5489 when addon included5490 returns true5491 when addon not included5492 returns false5493 when plan is not set5494 returns false5495 when feature does not exists5496 returns false5497 .current5498 when licenses table does not exist5499 returns nil5500 when there is no license5501 returns nil5502 when the license is invalid5503 returns nil5504 when the license is valid5505 returns the license5506 .block_changes?5507 when there is no current license5508 returns false5509 with an expired trial license5510 returns false5511 with an expired normal license5512 returns true5513 when the current license is set to block changes5514 returns true5515 when the current license doesn't block changes5516 returns false5517 .global_feature?5518 when it is a global feature5519 should equal true5520 when it is not a global feature5521 should equal false5522 #md55523 returns the same MD5 for licenses with carriage returns and those without5524 returns the same MD5 for licenses with trailing newlines and those without5525 returns the same MD5 for licenses with multiple trailing newlines and those with a single trailing newline5526 #license5527 when no data is provided5528 returns nil5529 when corrupt license data is provided5530 returns nil5531 when valid license data is provided5532 returns the license5533 reading add-ons5534 #plan5535 {:restrictions=>{}, :plan=>"starter"}5536 should eq "starter"5537 {:restrictions=>{:plan=>nil}, :plan=>"starter"}5538 should eq "starter"5539 {:restrictions=>{:plan=>""}, :plan=>"starter"}5540 should eq "starter"5541 {:restrictions=>{:plan=>"unknown"}, :plan=>"unknown"}5542 should eq "unknown"5543 #features_from_add_ons5544 without add-ons5545 returns an empty array5546 with add-ons5547 returns all available add-ons5548 with nil add-ons5549 returns an empty array5550 #feature_available?5551 returns true if add-on exists and have a quantity greater than 05552 returns true if the feature is included in the plan do5553 returns false if add-on exists but have a quantity of 05554 returns false if add-on does not exists5555 with an expired trial license5556 returns false for audit_events5557 returns false for burndown_charts5558 returns false for contribution_analytics5559 returns false for elastic_search5560 returns false for export_issues5561 returns false for external_files_in_gitlab_ci5562 returns false for group_webhooks5563 returns false for issuable_default_templates5564 returns false for issue_board_focus_mode5565 returns false for issue_weights5566 returns false for jenkins_integration5567 returns false for ldap_group_sync5568 returns false for member_lock5569 returns false for merge_request_approvers5570 returns false for multiple_ldap_servers5571 returns false for multiple_issue_assignees5572 returns false for multiple_project_issue_boards5573 returns false for push_rules5574 returns false for project_creation_level5575 returns false for protected_refs_for_users5576 returns false for related_issues5577 returns false for repository_mirrors5578 returns false for repository_size_limit5579 returns false for scoped_issue_board5580Burndown charts5581 for project milestones5582 presents burndown charts when available5583 presents burndown charts promotion correctly5584 for group milestones5585 presents burndown charts when available5586 presents burndown charts promotion correctly5587 grouped by title milestones5588 does not present burndown chart or promotion5589Geo::RepositoryVerification::Primary::ShardWorker5590 #perform5591 performs Geo::RepositoryVerification::Primary::SingleWorker for each project5592 performs Geo::RepositoryVerification::Primary::SingleWorker for verified projects updated recently5593 performs Geo::RepositoryVerification::Primary::SingleWorker for projects missing repository verification5594 performs Geo::RepositoryVerification::Primary::SingleWorker for projects missing wiki verification5595 does not perform Geo::RepositoryVerification::Primary::SingleWorker when shard becomes unhealthy5596 does not perform Geo::RepositoryVerification::Primary::SingleWorker when not running on a primary5597 does not schedule jobs when number of scheduled jobs exceeds capacity5598 does not perform Geo::RepositoryVerification::Primary::SingleWorker for projects on unhealthy shards5599 resource loading5600 handles multiple batches of projects needing verification5601 handles multiple batches of projects needing verification, skipping failed repos5602SAML provider settings5603 settings5604 displays required information to user5605 allows creation of new provider5606 shows errors if fields missing5607 with existing SAML provider5608 allows provider to be disabled5609 displays user login URL5610 #sso5611 with no SAML provider configured5612 acts as if the group was not found5613 as owner5614 redirects to settings page with warning5615 with existing SAML provider5616 when not signed in5617 doesn't show sso page5618 when signed in5619 Sign in button redirects to auth flow and back to group5620 for a private group5621 when not signed in5622 doesn't show sso page5623 when signed in5624 displays sign in button5625 doesn't leak group information5626shared/issuable/_approvals.html.haml5627 has no approvers5628 shows empty approvers list5629 can override approvers5630 shows suggested approvers5631 shows select approvers field5632 shows select approver groups field5633 can not override approvers5634 hides suggested approvers5635 hides select approvers field5636 hides select approver groups field5637 has approvers5638 shows approver in table5639 can override approvers5640 shows remove button for approver5641 can not override approvers5642 hides remove button5643JenkinsService5644 Associations5645 should belong to project5646 should have one service_hook5647 username validation5648 when the service is active5649 when password was not touched5650 should not validate that :username cannot be empty/falsy5651 when password was touched5652 should validate that :username cannot be empty/falsy5653 when the service is inactive5654 should not validate that :username cannot be empty/falsy5655 #hook_url5656 when the jenkins_url has no relative path5657 should eq "http://jenkins.example.com/project/my_project"5658 when the jenkins_url has relative path5660 userinfo is missing and username and password are set5661 should eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"5662 userinfo is provided and username and password are set5664 userinfo is provided username and password are not set5666 #test5667 returns the right status5668 #execute5669 without a license key5670 behaves like project with disabled Jenkins service5671 does not invoke the Jenkins API5672 with a license key5673 when namespace plan check is not enabled5674 behaves like project with enabled Jenkins service5675 invokes the Jenkins API5676 when namespace plan check is enabled5677 when namespace does not have a plan5678 behaves like project with disabled Jenkins service5679 does not invoke the Jenkins API5680 when namespace has a plan5681 adds default web hook headers to the request5682 request url contains properly serialized username and password5683 Stored password invalidation5684 when a password was previously set5685 resets password if url changed5686 resets password if username is blank5687 does not reset password if username changed5688 does not reset password if new url is set together with password, even if it's the same password5689 resets password if url changed, even if setter called multiple times5690 when no password was previously set5691 saves password if new url is set together with password5692GroupsController5693 with external authorization service enabled5694 GET #show5695 is successful5696 does not allow other formats5697 GET #edit5698 is successful5699 GET #new5700 is successful5701 GET #index5702 is successful5703 POST #create5704 creates a group5705 PUT #update5706 updates a group5707 DELETE #destroy5708 deletes the group5709 GET #activity5710 behaves like disabled when using an external authorization service5711 works when the feature is not enabled5712 renders a 404 with a message when the feature is enabled5713 GET #issues5714 behaves like disabled when using an external authorization service5715 works when the feature is not enabled5716 renders a 404 with a message when the feature is enabled5717 GET #merge_requests5718 behaves like disabled when using an external authorization service5719 works when the feature is not enabled5720 renders a 404 with a message when the feature is enabled5721Profile > Pipeline Quota5722 is linked within the profile page5723 shared runners use5724 shared_runners_enabled: false, used: 300, quota: 500, usage_class: "success", usage_text: "300 / Unlimited minutes Unlimited"5725 shows the correct quota status5726 shows the correct per-project metrics5727 shared_runners_enabled: true, used: 300, quota: nil, usage_class: "success", usage_text: "300 / Unlimited minutes Unlimited"5728 shows the correct quota status5729 shows the correct per-project metrics5730 shared_runners_enabled: true, used: 300, quota: 500, usage_class: "success", usage_text: "300 / 500 minutes 60% used"5731 shows the correct quota status5732 shows the correct per-project metrics5733 shared_runners_enabled: true, used: 1000, quota: 500, usage_class: "danger", usage_text: "1000 / 500 minutes 200% used"5734 shows the correct quota status5735 shows the correct per-project metrics5736Projects::VariablesController5737 PATCH #update5738 with same key and different environment scope5739 does not update the existing variable5740 creates the new variable5741 returns a successful response5742 has all variables in response5743 with same key and same environment scope5744 does not update the existing variable5745 does not create the new variable5746 returns a bad request response5747Groups::GroupMembersController5748 with external authorization enabled5749 GET #index5750 is successful5751 POST #create5752 is successful5753 PUT #update5754 is successful5755 DELETE #destroy5756 is successful5757 POST #destroy5758 is successful5759 POST #approve_request_access5760 is successful5761 DELETE #leave5762 is successful5763 POST #resend_invite5764 is successful5765 POST #override5766 is successful5767Projects::DestroyService5768 when project is a mirror5769 decrements capacity if mirror was scheduled5770 when running on a primary node5771 logs an event to the Geo event log5772 does not log event to the Geo log if project deletion fails5773 audit events5774 does not log audit event if project operation fails5775 if operation succeed5776 logs an audit event if operation succeed5777 logs the project info5778 system hooks exception5779 logs an audit event5780Boards::CreateService5781 #execute5782 behaves like boards create service5783 skips creating a second board when the feature is not available5784 With the feature available5785 with valid params5786 creates a new board5787 creates the default lists5788 with invalid params5789 does not create a new parent board5790 does not create board's default lists5791 without params5792 creates a new parent board5793 creates board's default lists5794 behaves like boards create service5795 skips creating a second board when the feature is not available5796 With the feature available5797 with valid params5798 creates a new board5799 creates the default lists5800 with invalid params5801 does not create a new parent board5802 does not create board's default lists5803 without params5804 creates a new parent board5805 creates board's default lists5806 behaves like board with milestone predefined scope5807 creates board with correct milestone5808 behaves like board with milestone predefined scope5809 creates board with correct milestone5810 group board milestone5811 is not persisted if it is not within group milestones5812 is persisted if it is within group milestones5813 project board milestone5814 is not persisted if it is not within project milestones5815 is persisted if it is within project milestones5816 is persisted if it is within project group milestones5817User creates issue5818 with weight set5819 creates issue5820Search::GroupService5821 elasticsearch5822 finding projects by name5823 in parent group5824 should contain exactly #<Project id:1313 group590/group589/inner_project_name_1>, #<Project id:1314 group590/group589/inner_project_name_2>, and #<Project id:1315 group590/outer_project_name>5825 in subgroup5826 should contain exactly #<Project id:1319 group592/group591/inner_project_name_1> and #<Project id:1320 group592/group591/inner_project_name_2>5827Admin sends notification5828 sends notification5829Project settings > [EE] repository5830 editing a push rule5831 push rules licensed5832 displays the new value in the form5833 saves the new value5834 push rules unlicensed5835 hides push rule settings5836Service Desk Setting5837 shows activation checkbox5838 shows incoming email after activating5839Delete Epic5840 when user who is not a group member displays the epic5841 does not show the Delete button5842 when user with owner access displays the epic5843 deletes the issue and redirect to epic list5844Groups::ParticipantsService5845 #execute5846 should add the owner to the list5847 #participants_in_noteable5848 should return all participants5849 #group_members5850 should return all members in parent groups, sub-groups, and sub-projects5851 #groups5852 avatar_url5853 should return an url for the avatar5854 should return an url for the avatar with relative url5855Gitlab::Database::LoadBalancing::Host5856 #connection5857 returns a connection from the pool5858 #disconnect!5859 disconnects the pool5860 disconnects the pool when waiting for connections takes too long5861 #release_connection5862 releases the current connection from the pool5863 #offline!5864 marks the host as offline5865 #online?5866 when the replica status is recent enough5867 returns the latest status5868 when the replica status is outdated5869 refreshes the status5870 when the replica is not online5871 returns false when ActionView::Template::Error is raised5872 returns false when ActiveRecord::StatementInvalid is raised5873 returns false when PG::Error is raised5874 #refresh_status5875 refreshes the status5876 #check_replica_status?5877 returns true when we need to check the replica status5878 returns false when we do not need to check the replica status5879 #replica_is_up_to_date?5880 when the lag time is below the threshold5881 returns true5882 when the lag time exceeds the threshold5883 returns true if the data is recent enough5884 returns false when the data is not recent enough5885 #replication_lag_below_threshold5886 returns true when the lag time is below the threshold5887 returns false when the lag time exceeds the threshold5888 returns false when no lag time could be calculated5889 #data_is_recent_enough?5890 returns true when the data is recent enough5891 returns false when the data is not recent enough5892 returns false when no lag size could be calculated5893 #replication_lag_time5894 returns the lag time as a Float5895 returns nil when the database query returned no rows5896 #replication_lag_size5897/builds/gitlab-org/gitlab-ee/ee/spec/lib/gitlab/database/load_balancing/host_spec.rb:265: warning: constant ::Fixnum is deprecated5898 returns the lag size as an Integer5899 returns nil when the database query returned no rows5900 returns nil when the database connection fails5901 #primary_write_location5902 returns the write location of the primary5903 #caught_up?5904 returns true when a host has caught up5905 returns false when a host has not caught up5906 returns false when the connection fails5907 #query_and_release5908 executes a SQL query5909 releases the connection after running the query5910 returns an empty Hash in the event of an error5911 #host5912 returns the hostname5913Project5914 finds projects5915 finds partial matches in project names5916 returns json with all needed elements5917Reset namespace pipeline minutes5918 for user namespace5919 reset pipeline minutes button is visible5920 when namespace has namespace statistics5921 resets pipeline minutes5922 when resetting pipeline minutes fails5923 renders edit page with an error5924 when creating a new group5925 does not display reset pipeline minutes callout5926 for group namespace5927 reset pipeline minutes button is visible5928 when namespace has namespace statistics5929 resets pipeline minutes5930 when resetting pipeline minutes fails5931 renders edit page with an error5932SystemNoteService5933 .change_weight_note5934 when weight changed5935 sets the note text5936 behaves like a project system note5937 has the project attribute set5938 behaves like a system note5939 has the correct attributes5940 when weight removed5941 sets the note text5942 behaves like a project system note5943 has the project attribute set5944 behaves like a system note5945 has the correct attributes5946 .change_epic_date_note5947 when start date was changed5948 sets the note text5949 behaves like a system note5950 has the correct attributes5951 when start date was removed5952 sets the note text5953 behaves like a system note5954 has the correct attributes5955Projects::Prometheus::MetricsController5956 POST #validate_query5957 validation information is ready5958 validation data is returned5959 validation information is not ready5960 validation data is returned5961 GET #index5962 with custom metric present5963 returns a list of metrics5964 without custom metrics5965 returns an empty json5966 POST #create5967 metric is valid5968 shows a success flash message5969 metric is invalid5970 renders new metric page5971 DELETE #destroy5972 format html5973 destroys the metric5974 format json5975 destroys the metric5976EpicPolicy5977 when epics feature is disabled5978 no one can read epics5979 when epics feature is enabled5980 when an epic is in a private group5981 anonymous user can not read epics5982 user who is not a group member can not read epics5983 guest group member can only read epics5984 reporter group member can manage epics5985 only group owner can destroy epics5986 when an epic is in an internal group5987 anonymous user can not read epics5988 user who is not a group member can only read epics5989 guest group member can only read epics5990 reporter group member can manage epics5991 only group owner can destroy epics5992 when an epic is in a public group5993 anonymous user can only read epics5994 user who is not a group member can only read epics5995 guest group member can only read epics5996 reporter group member can manage epics5997 only group owner can destroy epics5998 when external authorization is enabled5999 does not allow any epic permissions6000SshHostKey6001 #fingerprints6002 returns an array of indexed fingerprints when the cache is filled6003 returns an empty array when the cache is empty6004 #fingerprints6005 returns an array of indexed fingerprints when the cache is filled6006 returns an empty array when the cache is empty6007 #changes_project_import_data?6008 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", result: true6009 (normal)6010 (reversed)6011 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", b: "foo\n", result: true6012 (normal)6013 (reversed)6014 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", b: "", result: true6015 (normal)6016 (reversed)6017 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", b: nil, result: true6018 (normal)6019 (reversed)6020 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false6021 (normal)6022 (reversed)6023 a: "@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nexample.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n", b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false6024 (normal)6025 (reversed)6026 a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", b: "foo\n", result: true6027 (normal)6028 (reversed)6029 a: "", b: "", result: false6030 (normal)6031 (reversed)6032 a: nil, b: nil, result: false6033 (normal)6034 (reversed)6035 a: "", b: nil, result: false6036 (normal)6037 (reversed)6038 #calculate_reactive_cache6039 writes the hostname to STDIN6040 successful key scan6041 stores the cleaned known_hosts data6042 failed key scan (exit code 1)6043 returns a generic error6044 failed key scan (exit code 0)6045 returns a generic error6046Project show page6047 stat button existence6048 populated project6049 as a master6050 "Kubernetes cluster" button linked to clusters page6051Projects::Settings::IntegrationsController6052 Sets correct services list6053 enables SlackSlashCommandsService and disables GitlabSlackApplication6054 enables GitlabSlackApplication and disables SlackSlashCommandsService6055 without a license key6056 behaves like endpoint with some disabled services6057 has some disabled services6058 with a license key6059 when checking of namespace plan is enabled6060 and namespace does not have a plan6061 behaves like endpoint with some disabled services6062 has some disabled services6063 and namespace has a plan6064 behaves like endpoint without disabled services6065 does not have disabled services6066 when checking of namespace plan is not enabled6067 behaves like endpoint without disabled services6068 does not have disabled services6069ProjectWiki6070 searches wiki page6071Gitlab::Email::Handler::EE::ServiceDeskHandler6072 service desk is enabled for the project6073 sends thank you the email and creates issue6074 when there is no from address6075 does not send thank you email but create an issue6076 when license does not support service desk6077 does not create an issue or send email6078 when the email is forwarded through an alias6079 sends thank you the email and creates issue6080 service desk is disabled for the project6081 bounces the email6082 doesn't create an issue6083Gitlab::Chat::Responder::Slack6084 #send_response6085 sends a response back to Slack6086 #success6087 returns the output for a successful build6088 limits the output to a fixed size6089 does not send a response if the output is empty6090 #failure6091 returns the output for a failed build6092 #scheduled_output6093 returns the output for a scheduled build6094ElasticBatchProjectIndexerWorker6095 #perform6096 runs the indexer for projects in the batch range6097 skips projects not in the batch range6098 update_index = false6099 skips projects that were already indexed6100 with update_index6101 reindexes projects that were already indexed61022018-06-26T14:20:03.005Z 191 TID-grfpvc3jr INFO: Indexing John Doe3605 / project1671 (ID=1383)...61032018-06-26T14:20:03.006Z 191 TID-grfpvc3jr INFO: Indexing John Doe3605 / project1671 (ID=1383) is done!6104 starts indexing at the last indexed commit6105Issue6106 searches issues6107 returns json with all needed elements6108 behaves like no results when the user cannot read cross project6109 returns the record if a single project was passed6110 does not return anything when trying to search cross project6111Projects > Members > Member is removed from project6112 user is removed from project6113 when the user has been specifically allowed to access a protected branch6114 user leaves project6115Groups::SamlProvidersController6116 when per group saml is unlicensed6117 behaves like configuration is prevented6118 GET #show6119 behaves like 404 status6120 returns 404 status6121 POST #create6122 behaves like 404 status6123 returns 404 status6124 PUT #update6125 behaves like 404 status6126 returns 404 status6127 when per group saml is unconfigured6128 behaves like configuration is prevented6129 GET #show6130 behaves like 404 status6131 returns 404 status6132 POST #create6133 behaves like 404 status6134 returns 404 status6135 PUT #update6136 behaves like 404 status6137 returns 404 status6138 when per group saml feature is enabled6139 GET #show6140 shows configuration page6141 not on a top level group6142 behaves like 404 status6143 returns 404 status6144 with unauthorized user6145 responds with 4046146RemoveSystemHookFromGeoNodes6147 destroy all system hooks for secondary nodes (FAILED - 12)6148Gitlab::Database::LoadBalancing::LoadBalancer6149 #read6150 yields a connection for a read6151 marks hosts that are offline6152 retries a query in the event of a serialization failure6153 retries every host at most 3 times when a query conflict is raised6154 uses the primary if no secondaries are available6155 #read_write6156 yields a connection for a write6157 uses a retry with exponential backoffs6158 #host6159 returns the secondary host to use6160 stores the host in a thread-local variable6161 #release_host6162 releases the host and its connection6163 #release_primary_connection6164 releases the connection to the primary6165 #primary_write_location6166 returns a String6167 raises an error if the write location could not be retrieved6168 #all_caught_up?6169 returns true if all hosts caught up to the write location6170 returns false if a host has not yet caught up6171 #retry_with_backoff6172 returns the value returned by the block6173 re-raises errors not related to database connections6174 retries the block when a connection error is raised6175 re-raises the connection error if the retries did not succeed6176 #connection_error?6177 returns true for a connection error6178 returns true for a wrapped connection error6179 returns true for a wrapped connection error from a view6180 returns true for deeply wrapped/nested errors6181 returns true for an invalid encoding error6182 returns false for errors not related to database connections6183 #serialization_failure?6184 returns for a serialization error6185 returns true for a wrapped error6186Gitlab::Ci::External::Mapper6187 #process6188 when 'include' keyword is defined as string6189 when the string is a local file6190 returns an array6191 returns File instances6192 when the string is a remote file6193 returns an array6194 returns File instances6195 when 'include' is defined as an array6196 returns an array6197 returns Files instances6198 when 'include' is not defined6199 returns an empty array6200SnippetsFinder6201 behaves like a finder with external authorization service6202 finds the subject6203 with an external authorization service6204 does not include the subject when no project was given6205 includes the subject when a project id was given6206 external authorization service enabled6207 includes the result if the external service allows access6208 does not include any results if the external service denies access6209Merge request > User selects branches for new MR6210 when approvals are zero for the target project6211 shows approval settings6212Geo::RepositoryVerification::Primary::BatchWorker6213 #perform6214 when geo_repository_verification is enabled6215 skips backfill for repositories on other shards6216 skips backfill for projects on missing shards6217 skips backfill for projects with downed Gitaly server6218 when geo_repository_verification is disabled6219 does not schedule jobs6220shared/_mirror_status.html.haml6221 when mirror has not updated yet6222 does not render anything6223 when mirror successful6224 renders success message6225 when mirror failed6226 renders failure message6227 with a previous successful update6228 renders failure message6229 with a hard failed mirror6230 renders hard failed message6231IssueLinks::DestroyService6232 #execute6233 when successfully removes an issue link6234 removes related issue6235 creates notes6236 returns success message6237 when failing to remove an issue link6238 does not remove relation6239 does not create notes6240 returns error message6241KubernetesService6242 when user configured kubernetes from Integration > Kubernetes6243 behaves like same behavior between KubernetesService and Platform::Kubernetes6244 #rollout_status6245 with valid deployments6246 creates a matching RolloutStatus6247 with empty list of deployments6248 creates a matching RolloutStatus6249 not yet loaded deployments6250 creates a matching RolloutStatus6251 when user configured kubernetes from CI/CD > Clusters6252 behaves like same behavior between KubernetesService and Platform::Kubernetes6253 #rollout_status6254 with valid deployments6255 creates a matching RolloutStatus6256 with empty list of deployments6257 creates a matching RolloutStatus6258 not yet loaded deployments6259 creates a matching RolloutStatus6260Gitlab::Chat::Output6261 #to_s6262 returns the build output as a String6263 #read_offset_and_length6264 without the chat_reply trace section6265 falls back to using the build_script trace section6266 without the build_script trace section6267 raises MissingBuildSectionError6268 with the chat_reply trace section6269 returns the read offset and length as an Array6270 #without_executed_command_line6271 returns the input without the first line6272 returns an empty String when the input is empty6273 returns an empty String when the input consits of a single newline6274 #find_build_trace_section6275 returns nil when no section could be found6276 returns the trace section when it could be found6277PostReceive6278 #process_project_changes6279 after project changes hooks6280 calls Geo::RepositoryUpdatedService when running on a Geo primary node6281 does not call Geo::RepositoryUpdatedEventStore when not running on a Geo primary node6282 #process_wiki_changes6283 calls Geo::RepositoryUpdatedEventStore when running on a Geo primary node6284 does not call Geo::RepositoryUpdatedEventStore when not running on a Geo primary node6285 triggers wiki index update when ElasticSearch is enabled6286LogFinder6287 #execute6288 finds all the events6289 filtering by ID6290 finds the right user event6291 finds the right project event6292 finds the right group event6293 filtering by type6294 finds the right user event6295 finds the right project event6296 finds the right group event6297 finds all the events with no valid even type6298Boards::Issues::ListService6299 #execute6300 when list_id is missing6301 when board does not have a milestone6302 returns opened issues without board labels and assignees applied6303 when board have a milestone6304 returns opened issues without board labels, assignees, or milestone applied6305 when milestone is predefined6306 as upcoming6307 returns open issue for backlog without board label or assignees6308 as started6309 returns open issue for backlog without board label or assignees6310User manages members6311 as project master6312 behaves like when group membership is unlocked6313 should have visible link "Import members" and have visible css ".project-access-select"6314 behaves like when group membership is locked6315 should have no button "Add members" and have no link "Import members"6316 as group owner6317 behaves like when group membership is unlocked6318 should have visible link "Import members" and have visible css ".project-access-select"6319 behaves like when group membership is locked6320 should have no button "Add members" and have no link "Import members"6321EE::Audit::ProjectChangesAuditor6322 .audit_changes6323 non audit changes6324 does not call the audit event service6325 audit changes6326 creates an event when the visibility change6327 creates an event when the name change6328 creates an event when the path change6329 creates an event when the namespace change6330Gitlab::Auth::UserAuthFinders6331 #find_user_from_job_token6332 when the job token is in the headers6333 behaves like find user from job token6334 when route is allowed to be authenticated6335 returns an Unauthorized exception for an invalid token6336 return user if token is valid6337 when route is not allowed to be authenticated6338 sets current_user to nil6339 when the job token is in the params6340 behaves like find user from job token6341 when route is allowed to be authenticated6342 returns an Unauthorized exception for an invalid token6343 return user if token is valid6344 when route is not allowed to be authenticated6345 sets current_user to nil6346Admin uploads license6347 when license key is provided in the query string6348 installs license6349 uploading license6350 when license is valid6351license is a Gitlab::License - rspec-set works with ActiveRecord models only6352path is a Pathname - rspec-set works with ActiveRecord models only6353 uploads license6354 when license is invalid6355license is a Gitlab::License - rspec-set works with ActiveRecord models only6356path is a Pathname - rspec-set works with ActiveRecord models only6357 doesn't upload license6358EpicIssues::ListService6359 #execute6360 when epics feature is disabled6361 returns an empty array6362 when epics feature is enabled6363 owner can see all issues and destroy their associations6364 returns related issues JSON6365 user can see only some issues6366 returns related issues JSON6367Projects::UpdateRepositoryStorageService6368 #execute6369 without wiki6370 when the move succeeds6371 moves the repository to the new storage and unmarks the repository as read only6372 when the move fails6373 unmarks the repository as read-only without updating the repository storage6374 with wiki6375 when the move succeeds6376 moves the repository and its wiki to the new storage and unmarks the repository as read only6377 when the move of the wiki fails6378 unmarks the repository as read-only without updating the repository storage6379Groups::SsoController6380 SAML configured6381 has status 2006382 passes group name to the view6383 when user is not signed in6384 acts as route not found6385 when group has moved6386 redirects to new location6387 saml_provider is unconfigured for the group6388 when user cannot configure Group SAML6389 renders 4046390 when user can admin group_saml6391 redirects to the Group SAML config page6392 sets a flash message explaining that setup is required6393 group does not exist6394 renders 4046395 when user is not signed in6396 acts as route not found6397EE::User6398 associations6399 should have many vulnerability_feedback6400 scopes6401 .excluding_guests6402 exclude users with a Guest role in a Project/Group6403 #access_level=6404 does not set 'auditor' for an invalid access level6405 does not set 'auditor' for admin level6406 assigns the 'auditor' access level6407 assigns the 'auditor' access level6408 clears the 'admin' access level when a user is made an auditor6409 clears the 'auditor' access level when a user is made an admin6410 doesn't clear existing 'auditor' access levels when an invalid access level is passed in6411 #full_private_access?6412 returns true for auditor user6413 #forget_me!6414 clears remember_created_at6415 does not clear remember_created_at when in a GitLab read-only instance6416 #remember_me!6417 updates remember_created_at6418 does not update remember_created_at when in a Geo read-only instance6419 #email_opted_in_source6420 for GitLab.com6421 returns GitLab.com6422 for nil source id6423 returns blank6424 for non-existent source id6425 returns blank6426EE::Gitlab::Ci::Config6427 when the project does not have a valid license6428 should raise a ValidationError6429 when the project has a valid license6430 when gitlab_ci_yml has valid 'include' defined6431 should return a composed hash6432 when gitlab_ci.yml has invalid 'include' defined6433 raises error YamlProcessor validationError6434 when both external files and gitlab_ci.yml defined the same key6435 should take precedence6436 when both external files and gitlab_ci.yml define a dictionary of distinct variables6437 should merge the variables dictionaries6438 when both external files and gitlab_ci.yml define a dictionary of overlapping variables6439 later declarations should take precedence6440 when both external files and gitlab_ci.yml define a job6441 merges the jobs6442 when the script key is in both6443 uses the script from the gitlab_ci.yml6444Geo::EventLog6445 relationships6446 should belong to repositories_changed_event class_name => Geo::RepositoriesChangedEvent6447 should belong to repository_created_event class_name => Geo::RepositoryCreatedEvent6448 should belong to repository_deleted_event class_name => Geo::RepositoryDeletedEvent6449 should belong to repository_renamed_event class_name => Geo::RepositoryRenamedEvent6450 should belong to repository_updated_event class_name => Geo::RepositoryUpdatedEvent6451 should belong to hashed_storage_migrated_event class_name => Geo::HashedStorageMigratedEvent6452 should belong to hashed_storage_attachments_event class_name => Geo::HashedStorageAttachmentsEvent6453 should belong to lfs_object_deleted_event class_name => Geo::LfsObjectDeletedEvent6454 should belong to job_artifact_deleted_event class_name => Geo::JobArtifactDeletedEvent6455 #event6456 returns nil when having no event associated6457 returns repository_created_event when set6458 returns repository_updated_event when set6459 returns repository_deleted_event when set6460 returns repository_renamed_event when set6461 returns repositories_changed_event when set6462 returns hashed_storage_migrated_event when set6463 returns hashed_storage_attachments_event when set6464 returns lfs_object_deleted_event when set6465 returns job_artifact_deleted_event when set6466 returns upload_deleted_event when set6467 #project_id6468 returns nil when having no event associated6469 returns nil when an event does not respond to project_id6470 returns event#project_id when an event respond to project_id6471ApplicationSettings::UpdateService6472 #execute6473 common params6474 properly updates settings with given params6475 with valid params6476 returns success params6477 with invalid params6478 returns error params6479 repository_size_limit assignment as Bytes6480 when param present6481 converts from MB to Bytes6482 when param not present6483 does not update due to invalidity6484 assign nil value6485 when external authorization is enabled6486 does not save the settings with an error if the service denies access6487 saves the setting when the user has access to the label6488 does not validate the label if it was not passed6489MergeRequests::RemoveApprovalService6490 #execute6491 with a user who has approved6492 removes the approval6493 creates an unapproval note6494 does not send a notification6495 resets the cache for approvals6496 with an approved merge request6497 sends a notification6498ProjectImportState6499 when create6500 sets next execution timestamp to now6501 #reset_retry_count6502 resets retry_count to 06503 #increment_retry_count6504 increments retry_count6505 #set_next_execution_timestamp6506 when base delay is lower than mirror_max_delay6507 when retry count is 06508 applies transition successfully6509 when incrementing retry count6510 applies transition successfully6511 when boundaries are surpassed6512 when last_update_started_at is nil6513 applies transition successfully6514 when base delay is lower than mirror min_delay6515 when resetting retry count6516 applies transition successfully6517 when incrementing retry count6518 applies transition successfully6519 when base delay is higher than mirror_max_delay6520 when resetting retry count6521 applies transition successfully6522 when incrementing retry count6523 applies transition successfully6524AutocompleteController6525 GET users6526 project members6527 GET #users that can push to protected branches6528 returns authorized users6529 GET #users that can push code6530 returns authorized users6531 GET #users that can push to protected branches, including the current user6532 returns authorized users6533 groups6534 while fetching all groups belonging to a project6535 returns a single group6536 while fetching all groups belonging to a project the current user cannot access6537 should be not found6538 while fetching all groups belonging to an invalid project ID6539 should be not found6540Issues::BuildService6541 with an issue template6542 #execute6543 fills in the template in the description6544 for a single discussion6545 #execute6546 with an issue template6547 picks the discussion description over the issue template6548Geo::ProjectHousekeepingService6549 #execute6550 executes housekeeping when conditions are fulfilled6551 does not execute housekeeping when conditions are not fulfilled6552 resets counter when syncs_since_gc > gc_period6553 task type6554 goes through all three housekeeping tasks, executing only the highest task when there is overlap6555 do_housekeeping6556 enqueues a sidekiq job6557 when no lease can be obtained6558 does not enqueue a job6559 does not reset syncs_since_gc6560 #needed?6561 when the count is low enough6562 when the count is high enough6563 #increment!6564 increments the syncs_since_gc counter6565 #registry6566 returns a Geo::ProjectRegistry linked to current project6567MergeRequestsFinder6568 behaves like a finder with external authorization service6569 finds the subject6570 with an external authorization service6571 does not include the subject when no project was given6572 includes the subject when a project id was given6573Admin Dashboard6574 Users statistic6575 Roles stats6576 show correct amount of users per role6577ApplicationSetting6578 validations6579 should allow :mirror_max_delay to be ‹100›6580 should not allow :mirror_max_delay to be ‹nil›6581 should not allow :mirror_max_delay to be ‹0›6582 should not allow :mirror_max_delay to be ‹1.0›6583 should not allow :mirror_max_delay to be ‹-1›6584 should not allow :mirror_max_delay to be ‹29›6585 should allow :mirror_max_capacity to be ‹10›6586 should not allow :mirror_max_capacity to be ‹nil›6587 should not allow :mirror_max_capacity to be ‹0›6588 should not allow :mirror_max_capacity to be ‹1.0›6589 should not allow :mirror_max_capacity to be ‹-1›6590 should allow :mirror_capacity_threshold to be ‹10›6591 should not allow :mirror_capacity_threshold to be ‹nil›6592 should not allow :mirror_capacity_threshold to be ‹0›6593 should not allow :mirror_capacity_threshold to be ‹1.0›6594 should not allow :mirror_capacity_threshold to be ‹-1›6595 should not allow :mirror_capacity_threshold to be ‹31›6596 when additional email text is enabled6597 should allow :email_additional_text to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6598 should not allow :email_additional_text to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6599 when external authorization service is enabled6600 should not allow :external_authorization_service_url to be ‹"not a URL"›6601 should allow :external_authorization_service_url to be ‹"https://example.com"›6602 should allow :external_authorization_service_url to be ‹""›6603 should not allow :external_authorization_service_default_label to be ‹nil›6604 should not allow :external_authorization_service_timeout to be ‹11›6605 should not allow :external_authorization_service_timeout to be ‹0›6606 should not allow :external_auth_client_cert to be ‹"not a certificate"›6607 should allow :external_auth_client_cert to be ‹""›6608 should allow :external_auth_client_key to be ‹""›6609 when setting a valid client certificate for external authorization6610 requires a valid client key when a certificate is set6611 requires a matching certificate6612 the credentials are valid when the private key can be read and matches the certificate6613 #should_check_namespace_plan?6614 when check_namespace_plan true AND on GitLab.com6615 returns true6616 when check_namespace_plan true AND NOT on GitLab.com6617 returns false6618 when check_namespace_plan false AND on GitLab.com6619 returns false6620API::Jobs6621 GET /projects/:id/jobs/:job_id/artifacts6622 authorized by job_token6623 user is developer6624 behaves like downloads artifact6625 returns specific job artifacts6626 when anonymous user is accessing private artifacts6627 hides artifacts and rejects request6628 feature is disabled for EES6629 disallows access to the artifacts6630bin/sidekiq-cluster6631 runs successfully6632Geo::JobArtifactDeletedEventStore6633 #create6634 does not create an event when not running on a primary node6635 when running on a primary node6636 does not create an event when LFS object is not on a local store6637 does not create an event when there are no secondary nodes6638 creates a LFS object deleted event6639 tracks LFS object attributes6640 logs an error message when event creation fail6641Emails::CsvExport6642 csv export email6643 attachment has csv mime type6644 generates a useful filename6645 mentions number of issues and project name6646 doesn't need to mention truncation by default6647 when truncated6648 mentions that the csv has been truncated6649 mentions the number of issues written and expected6650EE::Gitlab::Ci::Pipeline::Chain::Limit::Size6651 when pipeline size limit is exceeded6652 when saving incomplete pipelines6653 drops the pipeline6654 persists the pipeline6655 breaks the chain6656 sets a valid failure reason6657 appends validation error6658 when not saving incomplete pipelines6659 does not drop the pipeline6660 breaks the chain6661 when pipeline size limit is not exceeded6662 does not break the chain6663 does not persist the pipeline6664Signup on EE6665 for Gitlab.com6666 when the user checks the opt-in to email updates box6667 creates the user and sets the email_opted_in field truthy6668 when the user does not check the opt-in to email updates box6669 creates the user and sets the email_opted_in field falsey6670 not for Gitlab.com6671 does not have a opt-in checkbox, it creates the user and sets email_opted_in to falsey6672Geo::HashedStorageAttachmentsMigrationService6673 #execute6674 when succeeds6675 moves attachments to hashed storage layout6676 when original folder does not exist anymore6677 skips moving folders and go to next6678 when target folder already exists6679 raises AttachmentMigrationError6680 #async_execute6681 starts the worker6682 returns job id6683API::Variables6684 POST /projects/:id/variables6685 with variable environment scope available6686 creates variable with a specific environment scope6687 allows duplicated variable key given different environment scopes6688Boards::ListService6689 behaves like boards list service6690 #execute6691 returns all issue boards when multiple issue boards is enabled6692 returns the first issue board when multiple issue boards is disabled6693 returns boards ordered by name6694 behaves like boards list service6695 #execute6696 returns all issue boards when multiple issue boards is enabled6697 returns the first issue board when multiple issue boards is disabled6698 returns boards ordered by name6699IssueLink6700 Associations6701 should belong to source class_name => Issue6702 should belong to target class_name => Issue6703 Validation6704 should validate that :source cannot be empty/falsy6705 should validate that :target cannot be empty/falsy6706 should validate that :source is case-sensitively unique within the scope of :target_id, producing a custom validation error on failure6707 self relation6708 cannot be validated6709 does not invalidate object with self relation error6710 can be invalidated6711 invalidates object6712Geo::RenameRepositoryService6713 #execute6714 does not move project backed by hashed storage6715 project backed by legacy storage6716 moves the project repositories6717 raises an error when project repository can not be moved6718 raises an error when wiki repository can not be moved6719 #async_execute6720 starts the worker6721 returns job id6722SearchController6723 with external authorization service enabled6724 GET #show6725 renders a 403 when no project is given6726 renders a 200 when a project was set6727 GET #autocomplete6728 renders a 403 when no project is given6729 renders a 200 when a project was set6730Projects::PipelinesController6731 GET security6732 with a sast artifact6733 with feature enabled6734 should render template show6735 with feature disabled6736 should redirect to "/namespace1700/project1863/pipelines/114"6737 without sast artifact6738 with feature enabled6739 should redirect to "/namespace1700/project1863/pipelines/115"6740 with feature disabled6741 should redirect to "/namespace1700/project1863/pipelines/116"6742LabelsFinder6743 behaves like a finder with external authorization service6744 finds the subject6745 with an external authorization service6746 does not include the subject when no project was given6747 includes the subject when a project id was given6748Groups::BoardsController6749 GET index6750 creates a new board when group does not have one6751 when format is JSON6752 returns a list of group boards6753 with unauthorized user6754 returns a not found 404 response6755 behaves like disabled when using an external authorization service6756 works when the feature is not enabled6757 renders a 404 with a message when the feature is enabled6758 GET show6759 for multiple issue boards6760 behaves like multiple issue boards show6761 when multiple issue boards is enabled6762 let user view any board from parent6763 when multiple issue boards is disabled6764 let user view the default shown board6765 renders 404 when board is not the default6766TodosFinder6767 behaves like a finder with external authorization service6768 finds the subject6769 with an external authorization service6770 does not include the subject when no project was given6771 includes the subject when a project id was given6772Banzai::ReferenceParser::EpicParser6773 #nodes_visible_to_user6774 when the epics feature is enabled6775 returns the nodes the user can read for valid epic nodes6776 returns an empty array for nodes without required data-attributes6777 when the epics feature is disabled6778 returns an empty array6779 #referenced_by6780 when using an existing epics IDs6781 returns an Array of epics6782 returns an empty Array for empty list of nodes6783 when epic with given ID does not exist6784 returns an empty Array6785 #records_for_nodes6786 returns a Hash containing the epics for a list of nodes6787Gitlab::Ci::External::File::Local6788 #valid?6789 when is a valid local path6790 should return true6791 when is not a valid local path6792 should return false6793 when is not a yaml file6794 should return false6795 #content6796 with a a valid file6797 should return the content of the file6798 with an invalid file6799 should be nil6800 #error_message6801 should return an error message6802Groups::BillingsController6803 GET index6804 authorized6805 renders index with 200 status code6806 fetches subscription plans data from customers.gitlab.com6807 unauthorized6808 renders 404 when user is not an owner68092nd Try error in ./ee/spec/controllers/groups/billings_controller_spec.rb:48:6810 Real HTTP connections are disabled. Unregistered request: GET https://customers.gitlab.com/gitlab_plans?plan=free with headers {'Accept'=>'application/json'}6811You can stub this request with the following snippet:6812stub_request(:get, "https://customers.gitlab.com/gitlab_plans?plan=free").6813 with(:headers => {'Accept'=>'application/json'}).6814 to_return(:status => 200, :body => "", :headers => {})6815============================================================ 6816RSpec::Retry: 2nd try ./ee/spec/controllers/groups/billings_controller_spec.rb:486817 renders 404 when it is not gitlab.com6818Gitlab::Geo::LogCursor::Events::RepositoryRenamedEvent6819 #process6820 schedules a Geo::RenameRepositoryWorker6821 when a tracking entry does not exist6822 does not create a tracking entry6823 does not schedule a Geo::RenameRepositoryWorker6824EE::Gitlab::ExternalAuthorization6825 #access_allowed?6826 is always true when the feature is disabled6827 #rejection_reason6828 is always nil when the feature is disabled6829 #access_for_user_to_label6830 only loads the access once per request6831 logs the access request once per request6832Knapsack report was generated. Preview:6833{6834 "ee/spec/lib/gitlab/elastic/search_results_spec.rb": 66.40877866744995,6835 "ee/spec/features/boards/multiple_boards_spec.rb": 82.93101525306702,6836 "ee/spec/models/burndown_spec.rb": 29.86863136291504,6837 "ee/spec/migrations/drop_repository_storage_events_for_geo_events_spec.rb": 81.5663366317749,6838 "ee/spec/models/project_spec.rb": 27.51670742034912,6839 "ee/spec/controllers/projects/merge_requests_controller_spec.rb": 39.4428973197937,6840 "ee/spec/features/issues/form_spec.rb": 24.405059099197388,6841 "ee/spec/features/search/elastic/project_search_spec.rb": 22.10051155090332,6842 "ee/spec/features/projects/clusters_spec.rb": 32.804720878601074,6843 "ee/spec/features/merge_request/user_approves_spec.rb": 14.448143243789673,6844 "ee/spec/services/geo/file_download_service_spec.rb": 21.456294298171997,6845 "ee/spec/features/projects/audit_events_spec.rb": 14.088812112808228,6846 "ee/spec/features/epics/update_epic_spec.rb": 12.770885229110718,6847 "ee/spec/policies/project_policy_spec.rb": 10.102938890457153,6848 "ee/spec/features/issues/filtered_search/filter_issues_weight_spec.rb": 10.5024573802948,6849 "ee/spec/models/merge_request_spec.rb": 9.853082180023193,6850 "ee/spec/workers/update_all_mirrors_worker_spec.rb": 7.534024953842163,6851 "ee/spec/serializers/merge_request_widget_entity_spec.rb": 7.607468843460083,6852 "ee/spec/helpers/push_rules_helper_spec.rb": 7.408517122268677,6853 "ee/spec/features/projects/path_locks_spec.rb": 11.087162256240845,6854 "ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 12.286863327026367,6855 "ee/spec/features/discussion_comments/epic_spec.rb": 11.811354398727417,6856 "ee/spec/models/push_rule_spec.rb": 7.470784425735474,6857 "ee/spec/models/concerns/elastic/repository_spec.rb": 8.990217447280884,6858 "ee/spec/controllers/projects/issues_controller_spec.rb": 8.151673555374146,6859 "ee/spec/features/projects/settings/merge_requests_settings_spec.rb": 12.176856517791748,6860 "ee/spec/services/geo/wiki_sync_service_spec.rb": 7.444866180419922,6861 "ee/spec/services/ee/notification_service_spec.rb": 7.475435495376587,6862 "ee/spec/models/concerns/elastic/note_spec.rb": 17.683390617370605,6863 "ee/spec/services/projects/create_service_spec.rb": 9.146463632583618,6864 "ee/spec/features/epics/epic_labels_spec.rb": 6.535042762756348,6865 "ee/spec/services/ee/boards/issues/move_service_spec.rb": 5.645624160766602,6866 "ee/spec/requests/api/epics_spec.rb": 6.789949655532837,6867 "ee/spec/controllers/groups/epic_issues_controller_spec.rb": 6.146618604660034,6868 "ee/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb": 6.262713670730591,6869 "ee/spec/features/projects/settings/issues_settings_spec.rb": 7.212055921554565,6870 "ee/spec/requests/api/project_import_spec.rb": 7.051869869232178,6871 "ee/spec/features/issues/csv_spec.rb": 7.5541369915008545,6872 "ee/spec/features/groups/group_roadmap_spec.rb": 8.093709707260132,6873 "ee/spec/features/merge_request/user_merges_with_push_rules_spec.rb": 5.2037694454193115,6874 "ee/spec/features/projects/milestones/milestone_spec.rb": 4.828108549118042,6875 "ee/spec/features/project_variables_spec.rb": 5.226284027099609,6876 "ee/spec/controllers/projects/mirrors_controller_spec.rb": 7.559957504272461,6877 "ee/spec/services/projects/update_mirror_service_spec.rb": 6.53022575378418,6878 "ee/spec/services/ci/register_job_service_spec.rb": 4.05406641960144,6879 "ee/spec/features/groups/ldap_group_links_spec.rb": 5.5398523807525635,6880 "ee/spec/features/groups/members/override_ldap_memberships_spec.rb": 4.91367506980896,6881 "ee/spec/finders/epics_finder_spec.rb": 6.189236402511597,6882 "ee/spec/services/issue_links/list_service_spec.rb": 4.389565944671631,6883 "ee/spec/features/ci_shared_runner_warnings_spec.rb": 5.328172445297241,6884 "ee/spec/requests/git_http_geo_spec.rb": 3.292802572250366,6885 "ee/spec/models/concerns/ee/deployment_platform_spec.rb": 4.244450092315674,6886 "ee/spec/requests/api/merge_request_approvals_spec.rb": 6.39730978012085,6887 "ee/spec/requests/api/ldap_group_links_spec.rb": 4.468351364135742,6888 "ee/spec/migrations/migrate_mirror_attributes_data_from_projects_to_import_state_spec.rb": 8.342563390731812,6889 "ee/spec/requests/projects/issue_links_controller_spec.rb": 4.198067665100098,6890 "ee/spec/models/project_services/github_service_spec.rb": 7.52662205696106,6891 "ee/spec/services/ldap_group_reset_service_spec.rb": 3.7279257774353027,6892 "ee/spec/controllers/projects/clusters_controller_spec.rb": 3.1490962505340576,6893 "ee/spec/services/merge_requests/approval_service_spec.rb": 4.214950323104858,6894 "ee/spec/features/epics/new_epic_spec.rb": 5.277607202529907,6895 "ee/spec/controllers/groups/epics/notes_controller_spec.rb": 3.3729710578918457,6896 "ee/spec/services/geo/file_registry_removal_service_spec.rb": 3.0202674865722656,6897 "ee/spec/features/groups/analytics_spec.rb": 3.2917630672454834,6898 "ee/spec/controllers/projects/approver_groups_controller_spec.rb": 2.9495444297790527,6899 "ee/spec/lib/banzai/filter/epic_reference_filter_spec.rb": 3.0257174968719482,6900 "ee/spec/features/groups/group_settings_spec.rb": 3.557687997817993,6901 "ee/spec/models/path_lock_spec.rb": 2.9659974575042725,6902 "ee/spec/features/projects/geo_clone_instructions_spec.rb": 3.2649614810943604,6903 "ee/spec/lib/gitlab/chat/command_spec.rb": 4.8704047203063965,6904 "ee/spec/features/issues/issue_sidebar_spec.rb": 4.20781135559082,6905 "ee/spec/features/boards/group_boards/user_edits_issues_spec.rb": 2.5458524227142334,6906 "ee/spec/lib/gitlab/email/handler/create_note_handler_spec.rb": 2.7137234210968018,6907 "ee/spec/services/boards/update_service_spec.rb": 2.7674474716186523,6908 "ee/spec/services/epic_issues/destroy_service_spec.rb": 2.988347053527832,6909 "ee/spec/models/ee/protected_ref_access_spec.rb": 4.039976358413696,6910 "ee/spec/models/license_spec.rb": 2.2925679683685303,6911 "ee/spec/features/burndown_charts_spec.rb": 2.6061208248138428,6912 "ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb": 3.577306032180786,6913 "ee/spec/features/groups/saml_providers_spec.rb": 3.5337257385253906,6914 "ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb": 2.2911128997802734,6915 "ee/spec/models/project_services/jenkins_service_spec.rb": 3.635960817337036,6916 "ee/spec/controllers/groups/groups_controller_spec.rb": 2.2900290489196777,6917 "ee/spec/features/profiles/pipeline_quota_spec.rb": 4.776339769363403,6918 "ee/spec/controllers/projects/variables_controller_spec.rb": 2.7015738487243652,6919 "ee/spec/controllers/groups/group_members_controller_spec.rb": 2.208848714828491,6920 "ee/spec/services/projects/destroy_service_spec.rb": 2.531327962875366,6921 "ee/spec/services/boards/create_service_spec.rb": 2.850788116455078,6922 "ee/spec/features/projects/issues/user_creates_issue_spec.rb": 3.25872802734375,6923 "ee/spec/services/search/group_service_spec.rb": 1.6887884140014648,6924 "ee/spec/features/admin/admin_sends_notification_spec.rb": 2.643179416656494,6925 "ee/spec/features/projects/settings/push_rules_settings_spec.rb": 2.0981945991516113,6926 "ee/spec/features/projects/settings/service_desk_setting_spec.rb": 1.946044921875,6927 "ee/spec/features/epics/delete_epic_spec.rb": 2.5091681480407715,6928 "ee/spec/services/groups/participants_service_spec.rb": 1.7535696029663086,6929 "ee/spec/lib/gitlab/database/load_balancing/host_spec.rb": 2.134169816970825,6930 "ee/spec/models/concerns/elastic/project_spec.rb": 1.5791380405426025,6931 "ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb": 3.0012781620025635,6932 "ee/spec/services/system_note_service_spec.rb": 1.9149234294891357,6933 "ee/spec/controllers/projects/prometheus/metrics_controller_spec.rb": 2.2581920623779297,6934 "ee/spec/policies/epic_policy_spec.rb": 2.5949318408966064,6935 "ee/spec/models/ssh_host_key_spec.rb": 1.5210168361663818,6936 "ee/spec/features/projects/show_project_spec.rb": 1.5450549125671387,6937 "ee/spec/controllers/projects/settings/integrations_controller_spec.rb": 2.5166726112365723,6938 "ee/spec/models/concerns/elastic/project_wiki_spec.rb": 2.646360397338867,6939 "ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb": 1.392061471939087,6940 "ee/spec/lib/gitlab/chat/responder/slack_spec.rb": 2.444369077682495,6941 "ee/spec/workers/elastic_batch_project_indexer_worker_spec.rb": 1.3424456119537354,6942 "ee/spec/models/concerns/elastic/issue_spec.rb": 1.8491480350494385,6943 "ee/spec/features/projects/members/member_is_removed_from_project_spec.rb": 1.3150403499603271,6944 "ee/spec/controllers/groups/saml_providers_controller_spec.rb": 1.2769227027893066,6945 "ee/spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb": 0.14499759674072266,6946 "ee/spec/lib/gitlab/ci/external/mapper_spec.rb": 1.6912140846252441,6947 "ee/spec/finders/snippets_finder_spec.rb": 1.4711143970489502,6948 "ee/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb": 2.2084920406341553,6949 "ee/spec/workers/geo/repository_verification/primary/batch_worker_spec.rb": 1.293625831604004,6950 "ee/spec/views/shared/_mirror_status.html.haml_spec.rb": 1.1923387050628662,6951 "ee/spec/services/issue_links/destroy_service_spec.rb": 2.062798261642456,6952 "ee/spec/models/project_services/kubernetes_service_spec.rb": 2.0510501861572266,6953 "ee/spec/lib/gitlab/chat/output_spec.rb": 2.1148664951324463,6954 "ee/spec/workers/post_receive_spec.rb": 2.0971176624298096,6955 "ee/spec/finders/log_finder_spec.rb": 2.015575885772705,6956 "ee/spec/services/ee/boards/issues/list_service_spec.rb": 1.9495792388916016,6957 "ee/spec/features/projects/settings/user_manages_members_spec.rb": 1.077124834060669,6958 "ee/spec/lib/ee/audit/project_changes_auditor_spec.rb": 1.005331039428711,6959 "ee/spec/lib/gitlab/auth/user_auth_finders_spec.rb": 0.9832124710083008,6960 "ee/spec/features/admin/licenses/admin_uploads_license_spec.rb": 0.9397480487823486,6961 "ee/spec/services/epic_issues/list_service_spec.rb": 1.585341453552246,6962 "ee/spec/services/projects/update_repository_storage_service_spec.rb": 1.117368221282959,6963 "ee/spec/controllers/groups/sso_controller_spec.rb": 0.7813596725463867,6964 "ee/spec/models/ee/user_spec.rb": 0.8723540306091309,6965 "ee/spec/lib/ee/gitlab/ci/config_spec.rb": 1.6522746086120605,6966 "ee/spec/models/geo/event_log_spec.rb": 1.76806640625,6967 "ee/spec/services/application_settings/update_service_spec.rb": 1.002976655960083,6968 "ee/spec/services/merge_requests/remove_approval_service_spec.rb": 1.4779746532440186,6969 "ee/spec/models/project_import_state_spec.rb": 1.3323745727539062,6970 "ee/spec/controllers/autocomplete_controller_spec.rb": 1.4710595607757568,6971 "ee/spec/services/issues/build_service_spec.rb": 0.9875771999359131,6972 "ee/spec/services/geo/project_housekeeping_service_spec.rb": 1.0702693462371826,6973 "ee/spec/finders/merge_requests_finder_spec.rb": 0.9417822360992432,6974 "ee/spec/features/admin/admin_dashboard_spec.rb": 0.8251006603240967,6975 "ee/spec/models/application_setting_spec.rb": 1.26194167137146,6976 "ee/spec/requests/api/jobs_spec.rb": 0.7985787391662598,6977 "ee/spec/bin/sidekiq_cluster_spec.rb": 0.7269623279571533,6978 "ee/spec/services/geo/job_artifact_deleted_event_store_spec.rb": 1.458073616027832,6979 "ee/spec/mailers/emails/csv_export_spec.rb": 1.5949978828430176,6980 "ee/spec/lib/ee/gitlab/ci/pipeline/chain/limit/size_spec.rb": 0.6101686954498291,6981 "ee/spec/features/signup_spec.rb": 0.7883327007293701,6982 "ee/spec/services/geo/hashed_storage_attachments_migration_service_spec.rb": 0.7119262218475342,6983 "ee/spec/requests/api/variables_spec.rb": 0.5758421421051025,6984 "ee/spec/services/boards/list_service_spec.rb": 0.5650038719177246,6985 "ee/spec/models/issue_link_spec.rb": 1.2009472846984863,6986 "ee/spec/services/geo/rename_repository_service_spec.rb": 1.2257752418518066,6987 "ee/spec/controllers/search_controller_spec.rb": 0.6629860401153564,6988 "ee/spec/controllers/projects/pipelines_controller_spec.rb": 0.7101142406463623,6989 "ee/spec/finders/labels_finder_spec.rb": 0.6351780891418457,6990 "ee/spec/controllers/groups/boards_controller_spec.rb": 1.0746850967407227,6991 "ee/spec/finders/todos_finder_spec.rb": 0.9168126583099365,6992 "ee/spec/lib/banzai/reference_parser/epic_parser_spec.rb": 1.00303316116333,6993 "ee/spec/lib/gitlab/ci/external/file/local_spec.rb": 1.0612516403198242,6994 "ee/spec/controllers/groups/billings_controller_spec.rb": 0.7346916198730469,6995 "ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb": 0.584601879119873,6996 "ee/spec/lib/ee/gitlab/external_authorization_spec.rb": 0.0428137779235839846997}6998Knapsack global time execution for tests: 16m 44s6999Pending: (Failures listed here are expected and do not affect your suite's status)7000 1) API::LdapGroupLinks POST /groups/:id/ldap_group_links when owner of the group returns ok and add ldap group link even if no provider specified7001 # Temporarily skipped with xit7002 # ./ee/spec/requests/api/ldap_group_links_spec.rb:557003Failures:7004 1) UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil sets authorized_keys_enabled to true7005 Failure/Error:7006 ActiveRecord::Migrator.migrate(migrations_paths,7007 migration_schema_version)7008 StandardError:7009 An error has occurred, all later migrations canceled:7010 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7011 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7012 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7013 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7014 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7015 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7016 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7017 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7018 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7019 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7020 # ------------------7021 # --- Caused by: ---7022 # PG::DuplicateTable:7023 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7024 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7025 2) UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil there are keys created before and after the cutoff datetime adds the keys created after the cutoff datetime to the authorized_keys file7026 Failure/Error:7027 ActiveRecord::Migrator.migrate(migrations_paths,7028 migration_schema_version)7029 StandardError:7030 An error has occurred, all later migrations canceled:7031 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7032 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7033 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7034 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7035 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7036 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7037 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7038 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7039 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7040 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7041 # ------------------7042 # --- Caused by: ---7043 # PG::DuplicateTable:7044 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7045 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7046 3) UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil when an SSH key exists in authorized_keys but not in the DB deletes the SSH key from authorized_keys7047 Failure/Error:7048 ActiveRecord::Migrator.migrate(migrations_paths,7049 migration_schema_version)7050 StandardError:7051 An error has occurred, all later migrations canceled:7052 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7053 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7054 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7055 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7056 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7057 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7058 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7059 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7060 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7061 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7062 # ------------------7063 # --- Caused by: ---7064 # PG::DuplicateTable:7065 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7066 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7067 4) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is true 7068 Failure/Error:7069 ActiveRecord::Migrator.migrate(migrations_paths,7070 migration_schema_version)7071 StandardError:7072 An error has occurred, all later migrations canceled:7073 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7074 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7075 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7076 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7077 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7078 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7079 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7080 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7081 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7082 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7083 # ------------------7084 # --- Caused by: ---7085 # PG::DuplicateTable:7086 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7087 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7088 5) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is nil 7089 Failure/Error:7090 ActiveRecord::Migrator.migrate(migrations_paths,7091 migration_schema_version)7092 StandardError:7093 An error has occurred, all later migrations canceled:7094 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7095 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7096 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7097 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7098 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7099 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7100 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7101 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7102 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7103 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7104 # ------------------7105 # --- Caused by: ---7106 # PG::DuplicateTable:7107 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7108 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7109 6) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is explicitly false 7110 Failure/Error:7111 ActiveRecord::Migrator.migrate(migrations_paths,7112 migration_schema_version)7113 StandardError:7114 An error has occurred, all later migrations canceled:7115 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7116 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7117 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7118 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7119 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7120 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7121 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7122 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7123 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7124 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7125 # ------------------7126 # --- Caused by: ---7127 # PG::DuplicateTable:7128 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7129 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7130 7) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is explicitly false outputs a warning message for users who unintentionally Saved the setting unchecked7131 Failure/Error:7132 ActiveRecord::Migrator.migrate(migrations_paths,7133 migration_schema_version)7134 StandardError:7135 An error has occurred, all later migrations canceled:7136 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7137 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7138 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7139 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7140 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7141 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7142 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7143 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7144 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7145 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7146 # ------------------7147 # --- Caused by: ---7148 # PG::DuplicateTable:7149 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7150 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7151 8) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when there is no record in application_settings table 7152 Failure/Error:7153 ActiveRecord::Migrator.migrate(migrations_paths,7154 migration_schema_version)7155 StandardError:7156 An error has occurred, all later migrations canceled:7157 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7158 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7159 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7160 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7161 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7162 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7163 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7164 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7165 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7166 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7167 # ------------------7168 # --- Caused by: ---7169 # PG::DuplicateTable:7170 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7171 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7172 9) UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer did not run the broken migration 7173 Failure/Error:7174 ActiveRecord::Migrator.migrate(migrations_paths,7175 migration_schema_version)7176 StandardError:7177 An error has occurred, all later migrations canceled:7178 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7179 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7180 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7181 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7182 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7183 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7184 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7185 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7186 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7187 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7188 # ------------------7189 # --- Caused by: ---7190 # PG::DuplicateTable:7191 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7192 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7193 10) UpdateAuthorizedKeysFile#ran_broken_migration? for unaffected customers: the authorized_keys_enabled column has a default (so the fixed migration ran) returns false7194 Failure/Error:7195 ActiveRecord::Migrator.migrate(migrations_paths,7196 migration_schema_version)7197 StandardError:7198 An error has occurred, all later migrations canceled:7199 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7200 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7201 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7202 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7203 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7204 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7205 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7206 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7207 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7208 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7209 # ------------------7210 # --- Caused by: ---7211 # PG::DuplicateTable:7212 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7213 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7214 11) UpdateAuthorizedKeysFile#ran_broken_migration? for affected customers: the authorized_keys_enabled column does not have a default (so the broken migration ran) returns true7215 Failure/Error:7216 ActiveRecord::Migrator.migrate(migrations_paths,7217 migration_schema_version)7218 StandardError:7219 An error has occurred, all later migrations canceled:7220 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7221 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7222 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7223 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7224 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7225 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7226 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7227 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7228 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7229 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7230 # ------------------7231 # --- Caused by: ---7232 # PG::DuplicateTable:7233 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7234 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7235 12) RemoveSystemHookFromGeoNodes destroy all system hooks for secondary nodes7236 Failure/Error:7237 ActiveRecord::Migrator.migrate(migrations_paths,7238 migration_schema_version)7239 StandardError:7240 An error has occurred, all later migrations canceled:7241 PG::DuplicateTable: ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7242 : CREATE INDEX CONCURRENTLY index_redirect_routes_on_path_text_pattern_ops ON redirect_routes (path varchar_pattern_ops);7243 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7244 # ./spec/support/helpers/migrations_helpers.rb:74:in `block in schema_migrate_down!'7245 # ./spec/support/helpers/migrations_helpers.rb:94:in `disable_migrations_output'7246 # ./spec/support/helpers/migrations_helpers.rb:73:in `schema_migrate_down!'7247 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `block in schema_migrate_down!'7248 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:48:in `with_db_config'7249 # ./ee/spec/support/helpers/ee/migrations_helpers.rb:31:in `schema_migrate_down!'7250 # ./spec/spec_helper.rb:186:in `block (2 levels) in <top (required)>'7251 # ------------------7252 # --- Caused by: ---7253 # PG::DuplicateTable:7254 # ERROR: relation "index_redirect_routes_on_path_text_pattern_ops" already exists7255 # ./db/migrate/20180113220114_rework_redirect_routes_indexes.rb:61:in `down'7256Finished in 18 minutes 25 seconds (files took 22.94 seconds to load)72572482 examples, 12 failures, 1 pending7258Failed examples:7259rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:17 # UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil sets authorized_keys_enabled to true7260rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:37 # UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil there are keys created before and after the cutoff datetime adds the keys created after the cutoff datetime to the authorized_keys file7261rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:59 # UpdateAuthorizedKeysFile#up when authorized_keys_enabled is nil when an SSH key exists in authorized_keys but not in the DB deletes the SSH key from authorized_keys7262rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:88 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is true 7263rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:100 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is nil 7264rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:108 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is explicitly false 7265rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:110 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when is a record in application_settings table when authorized_keys_enabled is explicitly false outputs a warning message for users who unintentionally Saved the setting unchecked7266rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:121 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer ran the broken migration when there is no record in application_settings table 7267rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:130 # UpdateAuthorizedKeysFile#authorized_keys_file_in_use_and_stale? when the customer did not run the broken migration 7268rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:143 # UpdateAuthorizedKeysFile#ran_broken_migration? for unaffected customers: the authorized_keys_enabled column has a default (so the fixed migration ran) returns false7269rspec ./ee/spec/migrations/update_authorized_keys_file_spec.rb:154 # UpdateAuthorizedKeysFile#ran_broken_migration? for affected customers: the authorized_keys_enabled column does not have a default (so the broken migration ran) returns true7270rspec ./ee/spec/migrations/remove_system_hook_from_geo_nodes_spec.rb:24 # RemoveSystemHookFromGeoNodes destroy all system hooks for secondary nodes7271! Generating reports is disabled. To enable it, please set the `FLAKY_RSPEC_GENERATE_REPORT=1` !7272! Generating reports is disabled. To enable it, please set the `FLAKY_RSPEC_GENERATE_REPORT=1` !7274$ date7275Tue Jun 26 14:21:46 UTC 20187277coverage/: found 5 matching files 7278knapsack/: found 5 matching files 7279rspec_flaky/: found 2 matching files 7280tmp/capybara/: found 3 matching files 7281Uploading artifacts to coordinator... ok id=77534312 responseStatus=201 Created token=9cfJuTfa7282ERROR: Job failed: exit code 1