rspec-mysql 17 30
Passed Started
by
@groulot

Gilbert Roulot
1Running with gitlab-runner 11.0.0-rc1 (6dcccded)2 on docker-auto-scale-com 5b5198a43Using 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 mysql:5.7 ...5Pulling docker image mysql:5.7 ...6Using docker image sha256:0d16d0a97dd13a8ca0c0e205ce1f31f64d9d32048379eb322749442bff35f144 for mysql:5.7 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:caaeda72bf8fe795b75382088b6de0db742b512921061e838450127579ce3e1e for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.17-chrome-67.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29 ...12Using 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 ... 13 Running on runner-5b5198a4-project-278964-concurrent-0 via runner-5b5198a4-prm-1530019566-37b52256...
00:01
14 Fetching changes for 5488_license_management_app_blacklist_backend with git depth set to 20...
00:20
15HEAD is now at 0a754147 Adds pod_names to the JSON payload in environment logs spec17 * [new branch] 5488_license_management_app_blacklist_backend -> origin/5488_license_management_app_blacklist_backend18Checking out 9b412872 as 5488_license_management_app_blacklist_backend...19Skipping Git submodules setup21Downloading cache.zip from http://runners-cache-3-internal.gitlab.com:444/runner/project/278964/ruby-2.4.4-debian-stretch-with-yarn-1 22Successfully extracted cache24Downloading artifacts from coordinator... ok id=77521866 responseStatus=200 OK token=tTkyAyhq25Downloading artifacts for compile-assets (77521867)...26Downloading artifacts from coordinator... ok id=77521867 responseStatus=200 OK token=wmuNn8yw27Downloading artifacts for setup-test-env (77521869)...28Downloading artifacts from coordinator... ok id=77521869 responseStatus=200 OK token=1w6WnMuM29WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 31Bundler version 1.16.232$ date33Tue Jun 26 13:38:22 UTC 201834$ source scripts/utils.sh35$ date36Tue Jun 26 13:38:22 UTC 201837$ source scripts/prepare_build.sh38The Gemfile's dependencies are satisfied39Successfully installed knapsack-1.16.0401 gem installed41Database 'gitlabhq_test' does not exist42-- enable_extension("plpgsql")43 -> 0.0013s44-- enable_extension("pg_trgm")45 -> 0.0000s46-- create_table("abuse_reports", {:force=>:cascade})47 -> 0.0150s48-- create_table("appearances", {:force=>:cascade})49 -> 0.0105s50-- create_table("application_setting_terms", {:force=>:cascade})51 -> 0.0099s52-- create_table("application_settings", {:force=>:cascade})53 -> 0.0164s54-- create_table("approvals", {:force=>:cascade})55 -> 0.0100s56-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})57 -> 0.0131s58-- create_table("approver_groups", {:force=>:cascade})59 -> 0.0106s60-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})61 -> 0.0077s62-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})63 -> 0.0081s64-- create_table("approvers", {:force=>:cascade})65 -> 0.0092s66-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})67 -> 0.0089s68-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})69 -> 0.0076s70-- create_table("audit_events", {:force=>:cascade})71 -> 0.0100s72-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})73 -> 0.0092s74-- create_table("award_emoji", {:force=>:cascade})75 -> 0.0106s76-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})77 -> 0.0083s78-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})79 -> 0.0082s80-- create_table("badges", {:force=>:cascade})81 -> 0.0106s82-- add_index("badges", ["group_id"], {:name=>"index_badges_on_group_id", :using=>:btree})83 -> 0.0079s84-- add_index("badges", ["project_id"], {:name=>"index_badges_on_project_id", :using=>:btree})85 -> 0.0077s86-- create_table("board_assignees", {:force=>:cascade})87 -> 0.0113s88-- add_index("board_assignees", ["board_id", "assignee_id"], {:name=>"index_board_assignees_on_board_id_and_assignee_id", :unique=>true, :using=>:btree})89 -> 0.0089s90-- create_table("board_labels", {:force=>:cascade})91 -> 0.0109s92-- add_index("board_labels", ["board_id", "label_id"], {:name=>"index_board_labels_on_board_id_and_label_id", :unique=>true, :using=>:btree})93 -> 0.0095s94-- create_table("boards", {:force=>:cascade})95 -> 0.0111s96-- add_index("boards", ["group_id"], {:name=>"index_boards_on_group_id", :using=>:btree})97 -> 0.0082s98-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})99 -> 0.0094s100-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})101 -> 0.0086s102-- create_table("broadcast_messages", {:force=>:cascade})103 -> 0.0105s104-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})105 -> 0.0093s106-- create_table("chat_names", {:force=>:cascade})107 -> 0.0104s108-- 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})109 -> 0.0096s110-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})111 -> 0.0090s112-- create_table("chat_teams", {:force=>:cascade})113 -> 0.0112s114-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})115 -> 0.0084s116-- create_table("ci_build_trace_chunks", {:id=>:bigserial, :force=>:cascade})117 -> 0.0104s118-- 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})119 -> 0.0086s120-- create_table("ci_build_trace_section_names", {:force=>:cascade})121 -> 0.0111s122-- 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})123 -> 0.0089s124-- create_table("ci_build_trace_sections", {:force=>:cascade})125 -> 0.0104s126-- 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})127 -> 0.0087s128-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})129 -> 0.0084s130-- add_index("ci_build_trace_sections", ["section_name_id"], {:name=>"index_ci_build_trace_sections_on_section_name_id", :using=>:btree})131 -> 0.0085s132-- create_table("ci_builds", {:force=>:cascade})133 -> 0.0120s134-- add_index("ci_builds", ["artifacts_expire_at"], {:name=>"index_ci_builds_on_artifacts_expire_at", :where=>"(artifacts_file <> ''::text)", :using=>:btree})135 -> 0.0090s136-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})137 -> 0.0090s138-- 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})139 -> 0.0137s140-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})141 -> 0.0150s142-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})143 -> 0.0133s144-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})145 -> 0.0119s146-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})147 -> 0.0105s148-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})149 -> 0.0099s150-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})151 -> 0.0103s152-- add_index("ci_builds", ["stage_id", "stage_idx"], {:name=>"tmp_build_stage_position_index", :where=>"(stage_idx IS NOT NULL)", :using=>:btree})153 -> 0.0106s154-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})155 -> 0.0088s156-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})157 -> 0.0114s158-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})159 -> 0.0088s160-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})161 -> 0.0092s162-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})163 -> 0.0101s164-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})165 -> 0.0095s166-- create_table("ci_builds_metadata", {:force=>:cascade})167 -> 0.0113s168-- add_index("ci_builds_metadata", ["build_id"], {:name=>"index_ci_builds_metadata_on_build_id", :unique=>true, :using=>:btree})169 -> 0.0086s170-- add_index("ci_builds_metadata", ["project_id"], {:name=>"index_ci_builds_metadata_on_project_id", :using=>:btree})171 -> 0.0090s172-- create_table("ci_group_variables", {:force=>:cascade})173 -> 0.0113s174-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})175 -> 0.0092s176-- create_table("ci_job_artifacts", {:force=>:cascade})177 -> 0.0104s178-- add_index("ci_job_artifacts", ["expire_at", "job_id"], {:name=>"index_ci_job_artifacts_on_expire_at_and_job_id", :using=>:btree})179 -> 0.0093s180-- add_index("ci_job_artifacts", ["file_store"], {:name=>"index_ci_job_artifacts_on_file_store", :using=>:btree})181 -> 0.0097s182-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})183 -> 0.0088s184-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})185 -> 0.0104s186-- create_table("ci_pipeline_chat_data", {:id=>:bigserial, :force=>:cascade})187 -> 0.0109s188-- add_index("ci_pipeline_chat_data", ["pipeline_id"], {:name=>"index_ci_pipeline_chat_data_on_pipeline_id", :unique=>true, :using=>:btree})189 -> 0.0081s190-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})191 -> 0.0121s192-- 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})193 -> 0.0091s194-- create_table("ci_pipeline_schedules", {:force=>:cascade})195 -> 0.0106s196-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})197 -> 0.0112s198-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})199 -> 0.0085s200-- create_table("ci_pipeline_variables", {:force=>:cascade})201 -> 0.0112s202-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})203 -> 0.0107s204-- create_table("ci_pipelines", {:force=>:cascade})205 -> 0.0112s206-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})207 -> 0.0084s208-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})209 -> 0.0084s210-- 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})211 -> 0.0093s212-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})213 -> 0.0125s214-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})215 -> 0.0094s216-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})217 -> 0.0094s218-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})219 -> 0.0088s220-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})221 -> 0.0090s222-- create_table("ci_runner_namespaces", {:force=>:cascade})223 -> 0.0107s224-- add_index("ci_runner_namespaces", ["namespace_id"], {:name=>"index_ci_runner_namespaces_on_namespace_id", :using=>:btree})225 -> 0.0086s226-- add_index("ci_runner_namespaces", ["runner_id", "namespace_id"], {:name=>"index_ci_runner_namespaces_on_runner_id_and_namespace_id", :unique=>true, :using=>:btree})227 -> 0.0082s228-- create_table("ci_runner_projects", {:force=>:cascade})229 -> 0.0103s230-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})231 -> 0.0085s232-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})233 -> 0.0081s234-- create_table("ci_runners", {:force=>:cascade})235 -> 0.0111s236-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})237 -> 0.0090s238-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})239 -> 0.0085s240-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})241 -> 0.0085s242-- add_index("ci_runners", ["runner_type"], {:name=>"index_ci_runners_on_runner_type", :using=>:btree})243 -> 0.0081s244-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})245 -> 0.0080s246-- create_table("ci_sources_pipelines", {:force=>:cascade})247 -> 0.0106s248-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_sources_pipelines_on_pipeline_id", :using=>:btree})249 -> 0.0083s250-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_sources_pipelines_on_project_id", :using=>:btree})251 -> 0.0084s252-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_sources_pipelines_on_source_job_id", :using=>:btree})253 -> 0.0096s254-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_sources_pipelines_on_source_pipeline_id", :using=>:btree})255 -> 0.0086s256-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_sources_pipelines_on_source_project_id", :using=>:btree})257 -> 0.0086s258-- create_table("ci_stages", {:force=>:cascade})259 -> 0.0103s260-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :unique=>true, :using=>:btree})261 -> 0.0086s262-- add_index("ci_stages", ["pipeline_id", "position"], {:name=>"index_ci_stages_on_pipeline_id_and_position", :using=>:btree})263 -> 0.0097s264-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})265 -> 0.0085s266-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})267 -> 0.0079s268-- create_table("ci_trigger_requests", {:force=>:cascade})269 -> 0.0100s270-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})271 -> 0.0082s272-- create_table("ci_triggers", {:force=>:cascade})273 -> 0.0106s274-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})275 -> 0.0085s276-- create_table("ci_variables", {:force=>:cascade})277 -> 0.0106s278-- 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})279 -> 0.0098s280-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})281 -> 0.0100s282-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})283 -> 0.0092s284-- create_table("cluster_projects", {:force=>:cascade})285 -> 0.0104s286-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})287 -> 0.0089s288-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})289 -> 0.0101s290-- create_table("cluster_providers_gcp", {:force=>:cascade})291 -> 0.0115s292-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})293 -> 0.0081s294-- create_table("clusters", {:force=>:cascade})295 -> 0.0101s296-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})297 -> 0.0082s298-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})299 -> 0.0081s300-- create_table("clusters_applications_helm", {:force=>:cascade})301 -> 0.0101s302-- create_table("clusters_applications_ingress", {:force=>:cascade})303 -> 0.0105s304-- create_table("clusters_applications_jupyter", {:force=>:cascade})305 -> 0.0113s306-- create_table("clusters_applications_prometheus", {:force=>:cascade})307 -> 0.0107s308-- create_table("clusters_applications_runners", {:force=>:cascade})309 -> 0.0105s310-- add_index("clusters_applications_runners", ["cluster_id"], {:name=>"index_clusters_applications_runners_on_cluster_id", :unique=>true, :using=>:btree})311 -> 0.0089s312-- add_index("clusters_applications_runners", ["runner_id"], {:name=>"index_clusters_applications_runners_on_runner_id", :using=>:btree})313 -> 0.0076s314-- create_table("container_repositories", {:force=>:cascade})315 -> 0.0101s316-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})317 -> 0.0085s318-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})319 -> 0.0091s320-- create_table("conversational_development_index_metrics", {:force=>:cascade})321 -> 0.0110s322-- create_table("deploy_keys_projects", {:force=>:cascade})323 -> 0.0100s324-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})325 -> 0.0102s326-- create_table("deploy_tokens", {:force=>:cascade})327 -> 0.0106s328-- 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})329 -> 0.0099s330-- add_index("deploy_tokens", ["token"], {:name=>"index_deploy_tokens_on_token", :unique=>true, :using=>:btree})331 -> 0.0087s332-- create_table("deployments", {:force=>:cascade})333 -> 0.0104s334-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})335 -> 0.0080s336-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})337 -> 0.0084s338-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})339 -> 0.0095s340-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})341 -> 0.0090s342-- create_table("emails", {:force=>:cascade})343 -> 0.0105s344-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})345 -> 0.0078s346-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})347 -> 0.0076s348-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})349 -> 0.0082s350-- create_table("environments", {:force=>:cascade})351 -> 0.0108s352-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})353 -> 0.0085s354-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})355 -> 0.0084s356-- create_table("epic_issues", {:force=>:cascade})357 -> 0.0095s358-- add_index("epic_issues", ["epic_id"], {:name=>"index_epic_issues_on_epic_id", :using=>:btree})359 -> 0.0081s360-- add_index("epic_issues", ["issue_id"], {:name=>"index_epic_issues_on_issue_id", :unique=>true, :using=>:btree})361 -> 0.0089s362-- create_table("epic_metrics", {:force=>:cascade})363 -> 0.0102s364-- add_index("epic_metrics", ["epic_id"], {:name=>"index_epic_metrics", :using=>:btree})365 -> 0.0079s366-- create_table("epics", {:force=>:cascade})367 -> 0.0106s368-- add_index("epics", ["assignee_id"], {:name=>"index_epics_on_assignee_id", :using=>:btree})369 -> 0.0096s370-- add_index("epics", ["author_id"], {:name=>"index_epics_on_author_id", :using=>:btree})371 -> 0.0084s372-- add_index("epics", ["end_date"], {:name=>"index_epics_on_end_date", :using=>:btree})373 -> 0.0105s374-- add_index("epics", ["group_id"], {:name=>"index_epics_on_group_id", :using=>:btree})375 -> 0.0088s376-- add_index("epics", ["iid"], {:name=>"index_epics_on_iid", :using=>:btree})377 -> 0.0086s378-- add_index("epics", ["milestone_id"], {:name=>"index_milestone", :using=>:btree})379 -> 0.0085s380-- add_index("epics", ["start_date"], {:name=>"index_epics_on_start_date", :using=>:btree})381 -> 0.0083s382-- create_table("events", {:force=>:cascade})383 -> 0.0101s384-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})385 -> 0.0084s386-- add_index("events", ["author_id", "project_id"], {:name=>"index_events_on_author_id_and_project_id", :using=>:btree})387 -> 0.0110s388-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})389 -> 0.0084s390-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})391 -> 0.0095s392-- create_table("feature_gates", {:force=>:cascade})393 -> 0.0104s394-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})395 -> 0.0097s396-- create_table("features", {:force=>:cascade})397 -> 0.0105s398-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})399 -> 0.0085s400-- create_table("fork_network_members", {:force=>:cascade})401 -> 0.0106s402-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})403 -> 0.0085s404-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})405 -> 0.0079s406-- create_table("fork_networks", {:force=>:cascade})407 -> 0.0103s408-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})409 -> 0.0084s410-- create_table("forked_project_links", {:force=>:cascade})411 -> 0.0103s412-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})413 -> 0.0083s414-- create_table("gcp_clusters", {:force=>:cascade})415 -> 0.0114s416-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})417 -> 0.0101s418-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})419 -> 0.0114s420-- add_index("geo_event_log", ["repositories_changed_event_id"], {:name=>"index_geo_event_log_on_repositories_changed_event_id", :using=>:btree})421 -> 0.0087s422-- add_index("geo_event_log", ["repository_created_event_id"], {:name=>"index_geo_event_log_on_repository_created_event_id", :using=>:btree})423 -> 0.0086s424-- add_index("geo_event_log", ["repository_deleted_event_id"], {:name=>"index_geo_event_log_on_repository_deleted_event_id", :using=>:btree})425 -> 0.0093s426-- add_index("geo_event_log", ["repository_renamed_event_id"], {:name=>"index_geo_event_log_on_repository_renamed_event_id", :using=>:btree})427 -> 0.0089s428-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})429 -> 0.0085s430-- create_table("geo_hashed_storage_attachments_events", {:id=>:bigserial, :force=>:cascade})431 -> 0.0106s432-- add_index("geo_hashed_storage_attachments_events", ["project_id"], {:name=>"index_geo_hashed_storage_attachments_events_on_project_id", :using=>:btree})433 -> 0.0090s434-- create_table("geo_hashed_storage_migrated_events", {:id=>:bigserial, :force=>:cascade})435 -> 0.0113s436-- add_index("geo_hashed_storage_migrated_events", ["project_id"], {:name=>"index_geo_hashed_storage_migrated_events_on_project_id", :using=>:btree})437 -> 0.0086s438-- create_table("geo_job_artifact_deleted_events", {:id=>:bigserial, :force=>:cascade})439 -> 0.0107s440-- add_index("geo_job_artifact_deleted_events", ["job_artifact_id"], {:name=>"index_geo_job_artifact_deleted_events_on_job_artifact_id", :using=>:btree})441 -> 0.0086s442-- create_table("geo_lfs_object_deleted_events", {:id=>:bigserial, :force=>:cascade})443 -> 0.0106s444-- add_index("geo_lfs_object_deleted_events", ["lfs_object_id"], {:name=>"index_geo_lfs_object_deleted_events_on_lfs_object_id", :using=>:btree})445 -> 0.0082s446-- create_table("geo_node_namespace_links", {:force=>:cascade})447 -> 0.0107s448-- 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})449 -> 0.0116s450-- add_index("geo_node_namespace_links", ["geo_node_id"], {:name=>"index_geo_node_namespace_links_on_geo_node_id", :using=>:btree})451 -> 0.0096s452-- create_table("geo_node_statuses", {:force=>:cascade})453 -> 0.0116s454-- add_index("geo_node_statuses", ["geo_node_id"], {:name=>"index_geo_node_statuses_on_geo_node_id", :unique=>true, :using=>:btree})455 -> 0.0091s456-- create_table("geo_nodes", {:force=>:cascade})457 -> 0.0106s458-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})459 -> 0.0086s460-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})461 -> 0.0079s462-- add_index("geo_nodes", ["url"], {:name=>"index_geo_nodes_on_url", :unique=>true, :using=>:btree})463 -> 0.0087s464-- create_table("geo_repositories_changed_events", {:id=>:bigserial, :force=>:cascade})465 -> 0.0102s466-- add_index("geo_repositories_changed_events", ["geo_node_id"], {:name=>"index_geo_repositories_changed_events_on_geo_node_id", :using=>:btree})467 -> 0.0100s468-- create_table("geo_repository_created_events", {:id=>:bigserial, :force=>:cascade})469 -> 0.0113s470-- add_index("geo_repository_created_events", ["project_id"], {:name=>"index_geo_repository_created_events_on_project_id", :using=>:btree})471 -> 0.0083s472-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})473 -> 0.0107s474-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})475 -> 0.0085s476-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})477 -> 0.0106s478-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})479 -> 0.0081s480-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})481 -> 0.0104s482-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})483 -> 0.0084s484-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})485 -> 0.0089s486-- create_table("geo_upload_deleted_events", {:id=>:bigserial, :force=>:cascade})487 -> 0.0108s488-- add_index("geo_upload_deleted_events", ["upload_id"], {:name=>"index_geo_upload_deleted_events_on_upload_id", :using=>:btree})489 -> 0.0089s490-- create_table("gpg_key_subkeys", {:force=>:cascade})491 -> 0.0109s492-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})493 -> 0.0080s494-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})495 -> 0.0084s496-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})497 -> 0.0089s498-- create_table("gpg_keys", {:force=>:cascade})499 -> 0.0111s500-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})501 -> 0.0091s502-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})503 -> 0.0077s504-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})505 -> 0.0084s506-- create_table("gpg_signatures", {:force=>:cascade})507 -> 0.0113s508-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})509 -> 0.0084s510-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})511 -> 0.0085s512-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})513 -> 0.0082s514-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})515 -> 0.0365s516-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})517 -> 0.0082s518-- create_table("group_custom_attributes", {:force=>:cascade})519 -> 0.0110s520-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})521 -> 0.0088s522-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})523 -> 0.0087s524-- create_table("historical_data", {:force=>:cascade})525 -> 0.0109s526-- create_table("identities", {:force=>:cascade})527 -> 0.0167s528-- add_index("identities", ["saml_provider_id"], {:name=>"index_identities_on_saml_provider_id", :where=>"(saml_provider_id IS NOT NULL)", :using=>:btree})529 -> 0.0087s530-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})531 -> 0.0099s532-- create_table("index_statuses", {:force=>:cascade})533 -> 0.0109s534-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})535 -> 0.0082s536-- create_table("internal_ids", {:id=>:bigserial, :force=>:cascade})537 -> 0.0111s538-- 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})539 -> 0.0091s540-- 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})541 -> 0.0093s542-- create_table("issue_assignees", {:id=>false, :force=>:cascade})543 -> 0.0107s544-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})545 -> 0.0182s546-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})547 -> 0.0082s548-- create_table("issue_links", {:force=>:cascade})549 -> 0.0112s550-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})551 -> 0.0087s552-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})553 -> 0.0079s554-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})555 -> 0.0077s556-- create_table("issue_metrics", {:force=>:cascade})557 -> 0.0112s558-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})559 -> 0.0090s560-- create_table("issues", {:force=>:cascade})561 -> 0.0127s562-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})563 -> 0.0109s564-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})565 -> 0.0089s566-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})567 -> 0.0009s568-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})569 -> 0.0084s570-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})571 -> 0.0082s572-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})573 -> 0.0108s574-- 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})575 -> 0.0109s576-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})577 -> 0.0094s578-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})579 -> 0.0113s580-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})581 -> 0.0087s582-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})583 -> 0.0085s584-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})585 -> 0.0009s586-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})587 -> 0.0085s588-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})589 -> 0.0107s590-- create_table("keys", {:force=>:cascade})591 -> 0.0106s592-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})593 -> 0.0094s594-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})595 -> 0.0085s596-- create_table("label_links", {:force=>:cascade})597 -> 0.0108s598-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})599 -> 0.0082s600-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})601 -> 0.0084s602-- create_table("label_priorities", {:force=>:cascade})603 -> 0.0111s604-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})605 -> 0.0093s606-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})607 -> 0.0091s608-- create_table("labels", {:force=>:cascade})609 -> 0.0109s610-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})611 -> 0.0098s612-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})613 -> 0.0083s614-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})615 -> 0.0085s616-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})617 -> 0.0106s618-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})619 -> 0.0104s620-- create_table("ldap_group_links", {:force=>:cascade})621 -> 0.0111s622-- create_table("lfs_file_locks", {:force=>:cascade})623 -> 0.0109s624-- add_index("lfs_file_locks", ["project_id", "path"], {:name=>"index_lfs_file_locks_on_project_id_and_path", :unique=>true, :using=>:btree})625 -> 0.0093s626-- add_index("lfs_file_locks", ["user_id"], {:name=>"index_lfs_file_locks_on_user_id", :using=>:btree})627 -> 0.0094s628-- create_table("lfs_objects", {:force=>:cascade})629 -> 0.0113s630-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})631 -> 0.0195s632-- create_table("lfs_objects_projects", {:force=>:cascade})633 -> 0.0118s634-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})635 -> 0.0089s636-- create_table("licenses", {:force=>:cascade})637 -> 0.0110s638-- create_table("lists", {:force=>:cascade})639 -> 0.0118s640-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})641 -> 0.0094s642-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})643 -> 0.0088s644-- add_index("lists", ["user_id"], {:name=>"index_lists_on_user_id", :using=>:btree})645 -> 0.0090s646-- create_table("managed_licenses", {:force=>:cascade})647 -> 0.0132s648-- add_index("managed_licenses", ["project_id", "name"], {:name=>"index_managed_licenses_on_project_id_and_name", :unique=>true, :using=>:btree})649 -> 0.0093s650-- add_index("managed_licenses", ["project_id"], {:name=>"index_managed_licenses_on_project_id", :using=>:btree})651 -> 0.0085s652-- create_table("members", {:force=>:cascade})653 -> 0.0117s654-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})655 -> 0.0091s656-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})657 -> 0.0085s658-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})659 -> 0.0085s660-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})661 -> 0.0098s662-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})663 -> 0.0086s664-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})665 -> 0.0104s666-- 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})667 -> 0.0176s668-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})669 -> 0.0092s670-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})671 -> 0.0117s672-- 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})673 -> 0.0163s674-- create_table("merge_request_diffs", {:force=>:cascade})675 -> 0.0105s676-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})677 -> 0.0096s678-- create_table("merge_request_metrics", {:force=>:cascade})679 -> 0.0106s680-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})681 -> 0.0091s682-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})683 -> 0.0091s684-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})685 -> 0.0085s686-- create_table("merge_requests", {:force=>:cascade})687 -> 0.0113s688-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})689 -> 0.0088s690-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})691 -> 0.0088s692-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})693 -> 0.0097s694-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})695 -> 0.0013s696-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})697 -> 0.0095s698-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})699 -> 0.0092s700-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})701 -> 0.0092s702-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})703 -> 0.0091s704-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})705 -> 0.0090s706-- 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})707 -> 0.0101s708-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})709 -> 0.0098s710-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})711 -> 0.0102s712-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})713 -> 0.0112s714-- 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})715 -> 0.0118s716-- 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})717 -> 0.0118s718-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})719 -> 0.0090s720-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})721 -> 0.0011s722-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})723 -> 0.0099s724-- create_table("merge_requests_closing_issues", {:force=>:cascade})725 -> 0.0101s726-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})727 -> 0.0081s728-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})729 -> 0.0078s730-- create_table("milestones", {:force=>:cascade})731 -> 0.0109s732-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})733 -> 0.0014s734-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})735 -> 0.0095s736-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})737 -> 0.0087s738-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})739 -> 0.0091s740-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})741 -> 0.0091s742-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})743 -> 0.0007s744-- create_table("namespace_statistics", {:force=>:cascade})745 -> 0.0107s746-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})747 -> 0.0081s748-- create_table("namespaces", {:force=>:cascade})749 -> 0.0104s750-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})751 -> 0.0090s752-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})753 -> 0.0081s754-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})755 -> 0.0085s756-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})757 -> 0.0096s758-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})759 -> 0.0009s760-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})761 -> 0.0090s762-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})763 -> 0.0095s764-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})765 -> 0.0084s766-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})767 -> 0.0009s768-- add_index("namespaces", ["plan_id"], {:name=>"index_namespaces_on_plan_id", :using=>:btree})769 -> 0.0093s770-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})771 -> 0.0084s772-- add_index("namespaces", ["runners_token"], {:name=>"index_namespaces_on_runners_token", :unique=>true, :using=>:btree})773 -> 0.0100s774-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})775 -> 0.0115s776-- create_table("note_diff_files", {:force=>:cascade})777 -> 0.0110s778-- add_index("note_diff_files", ["diff_note_id"], {:name=>"index_note_diff_files_on_diff_note_id", :unique=>true, :using=>:btree})779 -> 0.0087s780-- create_table("notes", {:force=>:cascade})781 -> 0.0113s782-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})783 -> 0.0094s784-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})785 -> 0.0088s786-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})787 -> 0.0083s788-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})789 -> 0.0083s790-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})791 -> 0.0078s792-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})793 -> 0.0008s794-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})795 -> 0.0092s796-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})797 -> 0.0085s798-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})799 -> 0.0095s800-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})801 -> 0.0086s802-- create_table("notification_settings", {:force=>:cascade})803 -> 0.0114s804-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})805 -> 0.0094s806-- 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})807 -> 0.0100s808-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})809 -> 0.0084s810-- create_table("oauth_access_grants", {:force=>:cascade})811 -> 0.0107s812-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})813 -> 0.0080s814-- create_table("oauth_access_tokens", {:force=>:cascade})815 -> 0.0105s816-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})817 -> 0.0080s818-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})819 -> 0.0083s820-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})821 -> 0.0083s822-- create_table("oauth_applications", {:force=>:cascade})823 -> 0.0110s824-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})825 -> 0.0091s826-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})827 -> 0.0082s828-- create_table("oauth_openid_requests", {:force=>:cascade})829 -> 0.0117s830-- create_table("pages_domains", {:force=>:cascade})831 -> 0.0121s832-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})833 -> 0.0143s834-- add_index("pages_domains", ["project_id", "enabled_until"], {:name=>"index_pages_domains_on_project_id_and_enabled_until", :using=>:btree})835 -> 0.0093s836-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})837 -> 0.0082s838-- add_index("pages_domains", ["verified_at", "enabled_until"], {:name=>"index_pages_domains_on_verified_at_and_enabled_until", :using=>:btree})839 -> 0.0119s840-- add_index("pages_domains", ["verified_at"], {:name=>"index_pages_domains_on_verified_at", :using=>:btree})841 -> 0.0117s842-- create_table("path_locks", {:force=>:cascade})843 -> 0.0112s844-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})845 -> 0.0095s846-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})847 -> 0.0096s848-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})849 -> 0.0083s850-- create_table("personal_access_tokens", {:force=>:cascade})851 -> 0.0111s852-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})853 -> 0.0083s854-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})855 -> 0.0080s856-- create_table("plans", {:force=>:cascade})857 -> 0.0102s858-- add_index("plans", ["name"], {:name=>"index_plans_on_name", :using=>:btree})859 -> 0.0084s860-- create_table("project_authorizations", {:id=>false, :force=>:cascade})861 -> 0.0106s862-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})863 -> 0.0079s864-- 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})865 -> 0.0213s866-- create_table("project_auto_devops", {:force=>:cascade})867 -> 0.0109s868-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})869 -> 0.0097s870-- create_table("project_ci_cd_settings", {:force=>:cascade})871 -> 0.0120s872-- add_index("project_ci_cd_settings", ["project_id"], {:name=>"index_project_ci_cd_settings_on_project_id", :unique=>true, :using=>:btree})873 -> 0.0087s874-- create_table("project_custom_attributes", {:force=>:cascade})875 -> 0.0114s876-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})877 -> 0.0098s878-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})879 -> 0.0088s880-- create_table("project_deploy_tokens", {:force=>:cascade})881 -> 0.0110s882-- 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})883 -> 0.0088s884-- create_table("project_features", {:force=>:cascade})885 -> 0.0112s886-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :unique=>true, :using=>:btree})887 -> 0.0099s888-- create_table("project_group_links", {:force=>:cascade})889 -> 0.0120s890-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})891 -> 0.0088s892-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})893 -> 0.0084s894-- create_table("project_import_data", {:force=>:cascade})895 -> 0.0113s896-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})897 -> 0.0086s898-- create_table("project_mirror_data", {:force=>:cascade})899 -> 0.0110s900-- add_index("project_mirror_data", ["jid"], {:name=>"index_project_mirror_data_on_jid", :using=>:btree})901 -> 0.0081s902-- add_index("project_mirror_data", ["last_successful_update_at"], {:name=>"index_project_mirror_data_on_last_successful_update_at", :using=>:btree})903 -> 0.0084s904-- add_index("project_mirror_data", ["next_execution_timestamp", "retry_count"], {:name=>"index_mirror_data_on_next_execution_and_retry_count", :using=>:btree})905 -> 0.0091s906-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})907 -> 0.0086s908-- add_index("project_mirror_data", ["status"], {:name=>"index_project_mirror_data_on_status", :using=>:btree})909 -> 0.0086s910-- create_table("project_repository_states", {:force=>:cascade})911 -> 0.0112s912-- 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})913 -> 0.0087s914-- 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})915 -> 0.0095s916-- 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})917 -> 0.0088s918-- add_index("project_repository_states", ["project_id"], {:name=>"index_project_repository_states_on_project_id", :unique=>true, :using=>:btree})919 -> 0.0087s920-- create_table("project_statistics", {:force=>:cascade})921 -> 0.0111s922-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})923 -> 0.0091s924-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})925 -> 0.0087s926-- create_table("projects", {:force=>:cascade})927 -> 0.0128s928-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})929 -> 0.0136s930-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})931 -> 0.0125s932-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})933 -> 0.0114s934-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})935 -> 0.0014s936-- add_index("projects", ["id", "repository_storage", "last_repository_updated_at"], {:name=>"idx_projects_on_repository_storage_last_repository_updated_at", :using=>:btree})937 -> 0.0127s938-- add_index("projects", ["id"], {:name=>"index_projects_on_id_partial_for_visibility", :unique=>true, :where=>"(visibility_level = ANY (ARRAY[10, 20]))", :using=>:btree})939 -> 0.0103s940-- 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})941 -> 0.0096s942-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})943 -> 0.0096s944-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})945 -> 0.0096s946-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})947 -> 0.0101s948-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})949 -> 0.0100s950-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})951 -> 0.0014s952-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})953 -> 0.0096s954-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})955 -> 0.0099s956-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})957 -> 0.0014s958-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})959 -> 0.0098s960-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})961 -> 0.0102s962-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})963 -> 0.0096s964-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})965 -> 0.0099s966-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})967 -> 0.0095s968-- create_table("prometheus_metrics", {:force=>:cascade})969 -> 0.0107s970-- add_index("prometheus_metrics", ["group"], {:name=>"index_prometheus_metrics_on_group", :using=>:btree})971 -> 0.0096s972-- add_index("prometheus_metrics", ["project_id"], {:name=>"index_prometheus_metrics_on_project_id", :using=>:btree})973 -> 0.0082s974-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})975 -> 0.0119s976-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})977 -> 0.0085s978-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})979 -> 0.0084s980-- create_table("protected_branch_push_access_levels", {:force=>:cascade})981 -> 0.0128s982-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})983 -> 0.0084s984-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})985 -> 0.0091s986-- create_table("protected_branch_unprotect_access_levels", {:force=>:cascade})987 -> 0.0110s988-- add_index("protected_branch_unprotect_access_levels", ["group_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_group_id", :using=>:btree})989 -> 0.0093s990-- add_index("protected_branch_unprotect_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_unprotect_access", :using=>:btree})991 -> 0.0103s992-- add_index("protected_branch_unprotect_access_levels", ["user_id"], {:name=>"index_protected_branch_unprotect_access_levels_on_user_id", :using=>:btree})993 -> 0.0095s994-- create_table("protected_branches", {:force=>:cascade})995 -> 0.0111s996-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})997 -> 0.0085s998-- create_table("protected_tag_create_access_levels", {:force=>:cascade})999 -> 0.0130s1000-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})1001 -> 0.0084s1002-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})1003 -> 0.0083s1004-- create_table("protected_tags", {:force=>:cascade})1005 -> 0.0120s1006-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})1007 -> 0.0088s1008-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})1009 -> 0.0111s1010-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})1011 -> 0.0179s1012-- create_table("push_rules", {:force=>:cascade})1013 -> 0.0116s1014-- add_index("push_rules", ["is_sample"], {:name=>"index_push_rules_on_is_sample", :where=>"is_sample", :using=>:btree})1015 -> 0.0104s1016-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})1017 -> 0.0093s1018-- create_table("redirect_routes", {:force=>:cascade})1019 -> 0.0114s1020-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})1021 -> 0.0090s1022-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1023 -> 0.0006s1024-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})1025 -> 0.0095s1026-- create_table("releases", {:force=>:cascade})1027 -> 0.0119s1028-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})1029 -> 0.0090s1030-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})1031 -> 0.0086s1032-- create_table("remote_mirrors", {:force=>:cascade})1033 -> 0.0128s1034-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})1035 -> 0.0105s1036-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})1037 -> 0.0086s1038-- create_table("routes", {:force=>:cascade})1039 -> 0.0114s1040-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})1041 -> 0.0085s1042-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})1043 -> 0.0006s1044-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})1045 -> 0.0088s1046-- create_table("saml_providers", {:force=>:cascade})1047 -> 0.0109s1048-- add_index("saml_providers", ["group_id"], {:name=>"index_saml_providers_on_group_id", :using=>:btree})1049 -> 0.0089s1050-- create_table("sent_notifications", {:force=>:cascade})1051 -> 0.0134s1052-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})1053 -> 0.0086s1054-- create_table("services", {:force=>:cascade})1055 -> 0.0117s1056-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})1057 -> 0.0085s1058-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})1059 -> 0.0086s1060-- create_table("slack_integrations", {:force=>:cascade})1061 -> 0.0111s1062-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})1063 -> 0.0085s1064-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})1065 -> 0.0093s1066-- create_table("snippets", {:force=>:cascade})1067 -> 0.0120s1068-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})1069 -> 0.0083s1070-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})1071 -> 0.0008s1072-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})1073 -> 0.0098s1074-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})1075 -> 0.0007s1076-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})1077 -> 0.0087s1078-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})1079 -> 0.0086s1080-- create_table("spam_logs", {:force=>:cascade})1081 -> 0.0110s1082-- create_table("subscriptions", {:force=>:cascade})1083 -> 0.0109s1084-- 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})1085 -> 0.0100s1086-- create_table("system_note_metadata", {:force=>:cascade})1087 -> 0.0104s1088-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})1089 -> 0.0084s1090-- create_table("taggings", {:force=>:cascade})1091 -> 0.0110s1092-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})1093 -> 0.0112s1094-- add_index("taggings", ["tag_id"], {:name=>"index_taggings_on_tag_id", :using=>:btree})1095 -> 0.0093s1096-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})1097 -> 0.0100s1098-- add_index("taggings", ["taggable_id", "taggable_type"], {:name=>"index_taggings_on_taggable_id_and_taggable_type", :using=>:btree})1099 -> 0.0089s1100-- create_table("tags", {:force=>:cascade})1101 -> 0.0104s1102-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})1103 -> 0.0080s1104-- create_table("term_agreements", {:force=>:cascade})1105 -> 0.0122s1106-- add_index("term_agreements", ["term_id"], {:name=>"index_term_agreements_on_term_id", :using=>:btree})1107 -> 0.0080s1108-- add_index("term_agreements", ["user_id", "term_id"], {:name=>"term_agreements_unique_index", :unique=>true, :using=>:btree})1109 -> 0.0087s1110-- add_index("term_agreements", ["user_id"], {:name=>"index_term_agreements_on_user_id", :using=>:btree})1111 -> 0.0076s1112-- create_table("timelogs", {:force=>:cascade})1113 -> 0.0103s1114-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})1115 -> 0.0089s1116-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})1117 -> 0.0080s1118-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})1119 -> 0.0092s1120-- create_table("todos", {:force=>:cascade})1121 -> 0.0111s1122-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})1123 -> 0.0083s1124-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})1125 -> 0.0081s1126-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})1127 -> 0.0081s1128-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})1129 -> 0.0086s1130-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})1131 -> 0.0095s1132-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_done", :where=>"((state)::text = 'done'::text)", :using=>:btree})1133 -> 0.0097s1134-- add_index("todos", ["user_id", "id"], {:name=>"index_todos_on_user_id_and_id_pending", :where=>"((state)::text = 'pending'::text)", :using=>:btree})1135 -> 0.0099s1136-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})1137 -> 0.0090s1138-- create_table("trending_projects", {:force=>:cascade})1139 -> 0.0123s1140-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :unique=>true, :using=>:btree})1141 -> 0.0100s1142-- create_table("u2f_registrations", {:force=>:cascade})1143 -> 0.0112s1144-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})1145 -> 0.0090s1146-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})1147 -> 0.0091s1148-- create_table("uploads", {:force=>:cascade})1149 -> 0.0114s1150-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})1151 -> 0.0089s1152-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})1153 -> 0.0094s1154-- add_index("uploads", ["uploader", "path"], {:name=>"index_uploads_on_uploader_and_path", :using=>:btree})1155 -> 0.0097s1156-- create_table("user_agent_details", {:force=>:cascade})1157 -> 0.0172s1158-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})1159 -> 0.0102s1160-- create_table("user_callouts", {:force=>:cascade})1161 -> 0.0136s1162-- add_index("user_callouts", ["user_id", "feature_name"], {:name=>"index_user_callouts_on_user_id_and_feature_name", :unique=>true, :using=>:btree})1163 -> 0.0110s1164-- add_index("user_callouts", ["user_id"], {:name=>"index_user_callouts_on_user_id", :using=>:btree})1165 -> 0.0084s1166-- create_table("user_custom_attributes", {:force=>:cascade})1167 -> 0.0108s1168-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})1169 -> 0.0114s1170-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})1171 -> 0.0090s1172-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})1173 -> 0.0104s1174-- add_index("user_interacted_projects", ["project_id", "user_id"], {:name=>"index_user_interacted_projects_on_project_id_and_user_id", :unique=>true, :using=>:btree})1175 -> 0.0186s1176-- add_index("user_interacted_projects", ["user_id"], {:name=>"index_user_interacted_projects_on_user_id", :using=>:btree})1177 -> 0.0081s1178-- create_table("user_synced_attributes_metadata", {:force=>:cascade})1179 -> 0.0104s1180-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})1181 -> 0.0082s1182-- create_table("users", {:force=>:cascade})1183 -> 0.0123s1184-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})1185 -> 0.0111s1186-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})1187 -> 0.0106s1188-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})1189 -> 0.0095s1190-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})1191 -> 0.0097s1192-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})1193 -> 0.0015s1194-- add_index("users", ["feed_token"], {:name=>"index_users_on_feed_token", :using=>:btree})1195 -> 0.0095s1196-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})1197 -> 0.0163s1198-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})1199 -> 0.0103s1200-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})1201 -> 0.0094s1202-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})1203 -> 0.0016s1204-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})1205 -> 0.0103s1206-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})1207 -> 0.0096s1208-- add_index("users", ["state"], {:name=>"index_users_on_state_and_internal_attrs", :where=>"((ghost <> true) AND (support_bot <> true))", :using=>:btree})1209 -> 0.0099s1210-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})1211 -> 0.0100s1212-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})1213 -> 0.0097s1214-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})1215 -> 0.0015s1216-- create_table("users_star_projects", {:force=>:cascade})1217 -> 0.0109s1218-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})1219 -> 0.0092s1220-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})1221 -> 0.0084s1222-- create_table("vulnerability_feedback", {:force=>:cascade})1223 -> 0.0100s1224-- add_index("vulnerability_feedback", ["author_id"], {:name=>"index_vulnerability_feedback_on_author_id", :using=>:btree})1225 -> 0.0084s1226-- add_index("vulnerability_feedback", ["issue_id"], {:name=>"index_vulnerability_feedback_on_issue_id", :using=>:btree})1227 -> 0.0078s1228-- add_index("vulnerability_feedback", ["pipeline_id"], {:name=>"index_vulnerability_feedback_on_pipeline_id", :using=>:btree})1229 -> 0.0093s1230-- add_index("vulnerability_feedback", ["project_id", "category", "feedback_type", "project_fingerprint"], {:name=>"vulnerability_feedback_unique_idx", :unique=>true, :using=>:btree})1231 -> 0.0103s1232-- create_table("web_hook_logs", {:force=>:cascade})1233 -> 0.0121s1234-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})1235 -> 0.0084s1236-- create_table("web_hooks", {:force=>:cascade})1237 -> 0.0113s1238-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})1239 -> 0.0097s1240-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})1241 -> 0.0086s1242-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})1243 -> 0.0215s1244-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1245 -> 0.0223s1246-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1247 -> 0.0223s1248-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})1249 -> 0.0247s1250-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})1251 -> 0.0192s1252-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})1253 -> 0.0204s1254-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})1255 -> 0.0206s1256-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})1257 -> 0.0248s1258-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})1259 -> 0.0231s1260-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})1261 -> 0.0236s1262-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})1263 -> 0.0212s1264-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1265 -> 0.0205s1266-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})1267 -> 0.0230s1268-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})1269 -> 0.0240s1270-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})1271 -> 0.0260s1272-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})1273 -> 0.0236s1274-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})1275 -> 0.0499s1276-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})1277 -> 0.0540s1278-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})1279 -> 0.0574s1280-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})1281 -> 0.0548s1282-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})1283 -> 0.0238s1284-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})1285 -> 0.0216s1286-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})1287 -> 0.0185s1288-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})1289 -> 0.0255s1290-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})1291 -> 0.0276s1292-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})1293 -> 0.0219s1294-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1295 -> 0.0211s1296-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})1297 -> 0.0191s1298-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})1299 -> 0.0223s1300-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})1301 -> 0.0247s1302-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})1303 -> 0.0204s1304-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})1305 -> 0.0359s1306-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})1307 -> 0.0342s1308-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})1309 -> 0.0337s1310-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})1311 -> 0.0214s1312-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})1313 -> 0.0222s1314-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})1315 -> 0.0218s1316-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})1317 -> 0.0301s1318-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})1319 -> 0.0280s1320-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})1321 -> 0.0307s1322-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})1323 -> 0.0311s1324-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})1325 -> 0.0333s1326-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})1327 -> 0.0344s1328-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})1329 -> 0.0313s1330-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})1331 -> 0.0226s1332-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})1333 -> 0.0213s1334-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})1335 -> 0.0211s1336-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})1337 -> 0.0202s1338-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})1339 -> 0.0305s1340-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})1341 -> 0.0212s1342-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})1343 -> 0.0217s1344-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})1345 -> 0.0197s1346-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})1347 -> 0.0209s1348-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})1349 -> 0.0190s1350-- add_foreign_key("clusters_applications_ingress", "clusters", {:name=>"fk_753a7b41c1", :on_delete=>:cascade})1351 -> 0.0204s1352-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})1353 -> 0.0200s1354-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})1355 -> 0.0244s1356-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})1357 -> 0.0228s1358-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})1359 -> 0.0211s1360-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})1361 -> 0.0235s1362-- add_foreign_key("container_repositories", "projects")1363 -> 0.0226s1364-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})1365 -> 0.0198s1366-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})1367 -> 0.0287s1368-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})1369 -> 0.0234s1370-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})1371 -> 0.0206s1372-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})1373 -> 0.0218s1374-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})1375 -> 0.0202s1376-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})1377 -> 0.0342s1378-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})1379 -> 0.0296s1380-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})1381 -> 0.0336s1382-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})1383 -> 0.0317s1384-- add_foreign_key("events", "projects", {:on_delete=>:cascade})1385 -> 0.0252s1386-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})1387 -> 0.0251s1388-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})1389 -> 0.0237s1390-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})1391 -> 0.0249s1392-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})1393 -> 0.0243s1394-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})1395 -> 0.0188s1396-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})1397 -> 0.0199s1398-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})1399 -> 0.0201s1400-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})1401 -> 0.0224s1402-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})1403 -> 0.0236s1404-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1405 -> 0.0288s1406-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1407 -> 0.0329s1408-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1409 -> 0.0356s1410-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1411 -> 0.0343s1412-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1413 -> 0.0330s1414-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1415 -> 0.0361s1416-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1417 -> 0.0344s1418-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})1419 -> 0.0347s1420-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1421 -> 0.0331s1422-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1423 -> 0.0199s1424-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1425 -> 0.0208s1426-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1427 -> 0.0219s1428-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1429 -> 0.0223s1430-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1431 -> 0.0187s1432-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1433 -> 0.0195s1434-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1435 -> 0.0188s1436-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1437 -> 0.0203s1438-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1439 -> 0.0220s1440-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1441 -> 0.0250s1442-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1443 -> 0.0229s1444-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1445 -> 0.0257s1446-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1447 -> 0.0283s1448-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1449 -> 0.0290s1450-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1451 -> 0.0208s1452-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1453 -> 0.0224s1454-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1455 -> 0.0199s1456-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1457 -> 0.0246s1458-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1459 -> 0.0239s1460-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1461 -> 0.0206s1462-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1463 -> 0.0217s1464-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1465 -> 0.0244s1466-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1467 -> 0.0275s1468-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1469 -> 0.0211s1470-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1471 -> 0.0424s1472-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1473 -> 0.0464s1474-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1475 -> 0.0438s1476-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1477 -> 0.0429s1478-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1479 -> 0.0432s1480-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1481 -> 0.0428s1482-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1483 -> 0.0251s1484-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1485 -> 0.0232s1486-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1487 -> 0.0298s1488-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1489 -> 0.0288s1490-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1491 -> 0.0235s1492-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1493 -> 0.0210s1494-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1495 -> 0.0219s1496-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1497 -> 0.0243s1498-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1499 -> 0.0245s1500-- add_foreign_key("managed_licenses", "projects", {:on_delete=>:cascade})1501 -> 0.0200s1502-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1503 -> 0.0258s1504-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1505 -> 0.0197s1506-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1507 -> 0.0376s1508-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1509 -> 0.0347s1510-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1511 -> 0.0330s1512-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1513 -> 0.0315s1514-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1515 -> 0.0234s1516-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1517 -> 0.0257s1518-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1519 -> 0.0472s1520-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1521 -> 0.0556s1522-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1523 -> 0.0525s1524-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1525 -> 0.0491s1526-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1527 -> 0.0478s1528-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1529 -> 0.0505s1530-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1531 -> 0.0514s1532-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1533 -> 0.0503s1534-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1535 -> 0.0580s1536-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1537 -> 0.0232s1538-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1539 -> 0.0216s1540-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1541 -> 0.0311s1542-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1543 -> 0.0270s1544-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1545 -> 0.0221s1546-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1547 -> 0.0428s1548-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1549 -> 0.0193s1550-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1551 -> 0.0379s1552-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1553 -> 0.0216s1554-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1555 -> 0.0294s1556-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1557 -> 0.0283s1558-- add_foreign_key("path_locks", "users")1559 -> 0.0253s1560-- add_foreign_key("personal_access_tokens", "users")1561 -> 0.0233s1562-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1563 -> 0.0283s1564-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1565 -> 0.0188s1566-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1567 -> 0.0208s1568-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1569 -> 0.0200s1570-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1571 -> 0.0210s1572-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1573 -> 0.0221s1574-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1575 -> 0.0213s1576-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1577 -> 0.0202s1578-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1579 -> 0.0212s1580-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1581 -> 0.0204s1582-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1583 -> 0.0286s1584-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1585 -> 0.0283s1586-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1587 -> 0.0321s1588-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1589 -> 0.0216s1590-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1591 -> 0.0232s1592-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1593 -> 0.0230s1594-- add_foreign_key("protected_branch_merge_access_levels", "users")1595 -> 0.0249s1596-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1597 -> 0.0249s1598-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1599 -> 0.0240s1600-- add_foreign_key("protected_branch_push_access_levels", "users")1601 -> 0.0250s1602-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1603 -> 0.0249s1604-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1605 -> 0.0272s1606-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1607 -> 0.0255s1608-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1609 -> 0.0219s1610-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1611 -> 0.0235s1612-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1613 -> 0.0253s1614-- add_foreign_key("protected_tag_create_access_levels", "users")1615 -> 0.0263s1616-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1617 -> 0.0216s1618-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1619 -> 0.0197s1620-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1621 -> 0.0236s1622-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1623 -> 0.0216s1624-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1625 -> 0.0215s1626-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1627 -> 0.0182s1628-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1629 -> 0.0234s1630-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1631 -> 0.0217s1632-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1633 -> 0.0279s1634-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1635 -> 0.0235s1636-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1637 -> 0.0191s1638-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1639 -> 0.0248s1640-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1641 -> 0.0259s1642-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1643 -> 0.0232s1644-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1645 -> 0.0257s1646-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1647 -> 0.0610s1648-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1649 -> 0.0362s1650-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1651 -> 0.0335s1652-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1653 -> 0.0364s1654-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1655 -> 0.0199s1656-- add_foreign_key("u2f_registrations", "users")1657 -> 0.0243s1658-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1659 -> 0.0234s1660-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1661 -> 0.0226s1662-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1663 -> 0.0184s1664-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1665 -> 0.0194s1666-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1667 -> 0.0190s1668-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1669 -> 0.0496s1670-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1671 -> 0.0221s1672-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1673 -> 0.0310s1674-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1675 -> 0.0294s1676-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1677 -> 0.0274s1678-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1679 -> 0.0286s1680-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1681 -> 0.0216s1682-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1683 -> 0.0249s1684-- initialize_schema_migrations_table()1685 -> 0.0326s1686Adding limits to schema.rb for mysql1687-- column_exists?(:merge_request_diffs, :st_commits)1688 -> 0.0013s1689-- column_exists?(:merge_request_diffs, :st_diffs)1690 -> 0.0008s1691-- change_column(:snippets, :content, :text, {:limit=>2147483647})1692 -> 0.0279s1693-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1694 -> 0.0380s1695-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1696 -> 0.0306s1697-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647})1698 -> 0.0187s1699-- change_column(:ci_build_trace_chunks, :raw_data, :binary, {:limit=>16777215})1700 -> 0.0200s1701-- change_column(:gpg_keys, :key, :text, {:limit=>16777215})1702 -> 0.0263s1703Database 'gitlabhq_geo_test' does not exist1704-- enable_extension("plpgsql")1705 -> 0.0011s1706-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1707 -> 0.0120s1708-- create_table("file_registry", {:force=>:cascade})1709 -> 0.0106s1710-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1711 -> 0.0091s1712-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1713 -> 0.0084s1714-- add_index("file_registry", ["retry_at"], {:name=>"index_file_registry_on_retry_at", :using=>:btree})1715 -> 0.0083s1716-- add_index("file_registry", ["success"], {:name=>"index_file_registry_on_success", :using=>:btree})1717 -> 0.0077s1718-- create_table("job_artifact_registry", {:force=>:cascade})1719 -> 0.0099s1720-- add_index("job_artifact_registry", ["artifact_id"], {:name=>"index_job_artifact_registry_on_artifact_id", :using=>:btree})1721 -> 0.0077s1722-- add_index("job_artifact_registry", ["retry_at"], {:name=>"index_job_artifact_registry_on_retry_at", :using=>:btree})1723 -> 0.0075s1724-- add_index("job_artifact_registry", ["success"], {:name=>"index_job_artifact_registry_on_success", :using=>:btree})1725 -> 0.0078s1726-- create_table("project_registry", {:force=>:cascade})1727 -> 0.0105s1728-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1729 -> 0.0084s1730-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1731 -> 0.0081s1732-- 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})1733 -> 0.0083s1734-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_repository_failure_partial", :where=>"(last_repository_verification_failure IS NOT NULL)", :using=>:btree})1735 -> 0.0079s1736-- 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})1737 -> 0.0082s1738-- add_index("project_registry", ["project_id"], {:name=>"idx_project_registry_on_wiki_failure_partial", :where=>"(last_wiki_verification_failure IS NOT NULL)", :using=>:btree})1739 -> 0.0082s1740-- add_index("project_registry", ["project_id"], {:name=>"idx_repository_checksum_mismatch", :where=>"(repository_checksum_mismatch = true)", :using=>:btree})1741 -> 0.0083s1742-- add_index("project_registry", ["project_id"], {:name=>"idx_wiki_checksum_mismatch", :where=>"(wiki_checksum_mismatch = true)", :using=>:btree})1743 -> 0.0089s1744-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :unique=>true, :using=>:btree})1745 -> 0.0139s1746-- add_index("project_registry", ["repository_retry_at"], {:name=>"index_project_registry_on_repository_retry_at", :using=>:btree})1747 -> 0.0142s1748-- 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})1749 -> 0.0141s1750-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1751 -> 0.0089s1752-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1753 -> 0.0094s1754-- add_index("project_registry", ["wiki_retry_at"], {:name=>"index_project_registry_on_wiki_retry_at", :using=>:btree})1755 -> 0.0090s1756-- 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})1757 -> 0.0093s1758-- initialize_schema_migrations_table()1759 -> 0.0251s1760$ date1761Tue Jun 26 13:39:42 UTC 20181762$ JOB_NAME=( $CI_JOB_NAME )1763$ export CI_NODE_INDEX=${JOB_NAME[-2]}1764$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1765$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1766$ export KNAPSACK_GENERATE_REPORT=true1767$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1768$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1769$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1770$ export FLAKY_RSPEC_GENERATE_REPORT=true1771$ export CACHE_CLASSES=true1772$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1773$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1774$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1775$ scripts/gitaly-test-spawn1776Checking gitaly-ruby bundle...1777The Gemfile's dependencies are satisfied1778Trying to connect to gitaly: .... OK1779$ knapsack rspec "--color --format documentation --tag ~geo"1780Report specs:1781spec/models/project_spec.rb1782spec/models/repository_spec.rb1783spec/features/projects/user_uses_shortcuts_spec.rb1784spec/models/concerns/has_status_spec.rb1785spec/policies/project_policy_spec.rb1786spec/features/reportable_note/merge_request_spec.rb1787spec/features/project_variables_spec.rb1788spec/lib/gitlab/background_migration/migrate_events_to_push_event_payloads_spec.rb1789spec/finders/labels_finder_spec.rb1790spec/features/projects/view_on_env_spec.rb1791spec/features/dashboard/issues_filter_spec.rb1792spec/policies/issue_policy_spec.rb1793spec/features/issues/award_spec.rb1794spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb1795spec/features/issues/filtered_search/recent_searches_spec.rb1796spec/features/reportable_note/issue_spec.rb1797spec/features/groups/merge_requests_spec.rb1798spec/models/ability_spec.rb1799spec/models/concerns/mentionable_spec.rb1800spec/presenters/ci/build_presenter_spec.rb1801spec/features/projects/merge_requests/user_rebases_merge_request_spec.rb1802spec/features/projects/commit/mini_pipeline_graph_spec.rb1803spec/controllers/projects/clusters/gcp_controller_spec.rb1804spec/controllers/import/gitlab_controller_spec.rb1805spec/features/projects/badges/list_spec.rb1806spec/features/boards/sub_group_project_spec.rb1807spec/services/issues/resolve_discussions_spec.rb1808spec/features/projects/merge_requests/user_views_open_merge_requests_spec.rb1809spec/lib/gitlab/verify/job_artifacts_spec.rb1810spec/requests/api/snippets_spec.rb1811spec/lib/gitlab/data_builder/build_spec.rb1812spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb1813spec/lib/gitlab/multi_collection_paginator_spec.rb1814spec/views/ci/status/_badge.html.haml_spec.rb1815spec/workers/stuck_merge_jobs_worker_spec.rb1816spec/workers/namespaceless_project_destroy_worker_spec.rb1817spec/features/projects/services/user_activates_prometheus_spec.rb1818spec/controllers/omniauth_callbacks_controller_spec.rb1819spec/requests/openid_connect_spec.rb1820spec/lib/extracts_path_spec.rb1821spec/services/milestones/destroy_service_spec.rb1822spec/features/dashboard/group_spec.rb1823spec/lib/gitlab/import_export/fork_spec.rb1824spec/models/project_group_link_spec.rb1825spec/features/explore/user_explores_projects_spec.rb1826spec/features/projects/wiki/shortcuts_spec.rb1827spec/lib/gitlab/ci/status/build/common_spec.rb1828spec/lib/gitlab/git/commit_spec.rb1829spec/features/security/admin_access_spec.rb1830spec/lib/gitlab/file_finder_spec.rb1831spec/controllers/projects/mirrors_controller_spec.rb1832spec/services/projects/open_issues_count_service_spec.rb1833spec/policies/clusters/cluster_policy_spec.rb1834spec/features/projects/labels/issues_sorted_by_priority_spec.rb1835spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb1836spec/models/email_spec.rb1837spec/models/pages_domain_spec.rb1838spec/views/projects/services/_form.haml_spec.rb1839spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb1840spec/services/note_summary_spec.rb1841spec/workers/gitlab/github_import/advance_stage_worker_spec.rb1842spec/rubocop/cop/line_break_around_conditional_block_spec.rb1843spec/tasks/gitlab/uploads/check_rake_spec.rb1844spec/migrations/rename_more_reserved_project_names_spec.rb1845spec/policies/application_setting/term_policy_spec.rb1846spec/features/global_search_spec.rb1847spec/finders/pipeline_schedules_finder_spec.rb1848spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb1849spec/controllers/projects/protected_tags_controller_spec.rb1850spec/workers/create_note_diff_file_worker_spec.rb1851spec/services/keys/create_service_spec.rb1852spec/services/repository_archive_clean_up_service_spec.rb1853spec/services/protected_branches/update_service_spec.rb1854spec/lib/gitlab/google_code_import/project_creator_spec.rb1855spec/models/concerns/sortable_spec.rb1856spec/models/ci/pipeline_variable_spec.rb1857spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb1858spec/services/users/update_service_spec.rb1859spec/models/project_services/bugzilla_service_spec.rb1860spec/lib/banzai/color_parser_spec.rb1861spec/lib/gitlab/ci/build/policy/refs_spec.rb1862spec/workers/expire_job_cache_worker_spec.rb1863spec/helpers/hooks_helper_spec.rb1864spec/lib/gitlab/auth/ldap/config_spec.rb1865spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb1866spec/routing/api_routing_spec.rb1867spec/lib/gitlab/uploads_transfer_spec.rb1868spec/features/profiles/user_visits_profile_account_page_spec.rb1869spec/workers/delete_user_worker_spec.rb1870spec/serializers/analytics_merge_request_serializer_spec.rb1871spec/workers/upload_checksum_worker_spec.rb1872spec/models/appearance_spec.rb1873spec/controllers/profiles/avatars_controller_spec.rb1874spec/lib/gitlab/sanitizers/svg_spec.rb1875spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb1876spec/lib/gitlab/auth/blocked_user_tracker_spec.rb1877spec/lib/gitlab/cache/request_cache_spec.rb1878spec/lib/feature_spec.rb1879spec/lib/banzai/filter/inline_diff_filter_spec.rb1880spec/helpers/preferences_helper_spec.rb1881spec/lib/gitaly/server_spec.rb1882spec/lib/rspec_flaky/report_spec.rb1883spec/lib/rspec_flaky/listener_spec.rb1884spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb1885spec/initializers/6_validations_spec.rb1886spec/migrations/move_uploads_to_system_dir_spec.rb1887spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb1888spec/lib/gitlab/downtime_check/message_spec.rb1889spec/lib/gitlab/metrics/system_spec.rb1890spec/lib/gitlab/ci/mask_secret_spec.rb1891spec/lib/gitlab/ci/status/running_spec.rb1892spec/lib/gitlab/github_import/representation/to_hash_spec.rb1893spec/models/merge_request_diff_file_spec.rb1894spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1895spec/lib/forever_spec.rb1896spec/lib/gitlab/request_profiler_spec.rb1897spec/workers/gitlab_shell_worker_spec.rb1898spec/presenters/commit_status_presenter_spec.rb1899Leftover specs:1900Knapsack report generator started!1901Run options: exclude {:geo=>true}1902==> Setting up GitLab Shell...1903 GitLab Shell setup in 0.512445841 seconds...1904==> Setting up Gitaly...1905 Gitaly setup in 0.000170467 seconds...1906Project1907 returns valid url to repo1908 associations1909 should belong to group1910 should belong to namespace1911 should belong to creator class_name => User1912 should have many users1913 should have many services1914 should have many events1915 should have many merge_requests1916 should have many issues1917 should have many milestones1918 should have many project_members dependent => delete_all1919 should have many users through project_members1920 should have many requesters dependent => delete_all1921 should have many notes1922 should have many snippets class_name => ProjectSnippet1923 should have many deploy_keys_projects1924 should have many deploy_keys1925 should have many hooks1926 should have many protected_branches1927 should have one forked_project_link1928 should have one slack_service1929 should have one microsoft_teams_service1930 should have one mattermost_service1931 should have one packagist_service1932 should have one pushover_service1933 should have one asana_service1934 should have many boards1935 should have one campfire_service1936 should have one drone_ci_service1937 should have one emails_on_push_service1938 should have one pipelines_email_service1939 should have one irker_service1940 should have one pivotaltracker_service1941 should have one hipchat_service1942 should have one flowdock_service1943 should have one assembla_service1944 should have one slack_slash_commands_service1945 should have one mattermost_slash_commands_service1946 should have one gemnasium_service1947 should have one buildkite_service1948 should have one bamboo_service1949 should have one teamcity_service1950 should have one jira_service1951 should have one github_service1952 should have one redmine_service1953 should have one custom_issue_tracker_service1954 should have one bugzilla_service1955 should have one gitlab_issue_tracker_service1956 should have one external_wiki_service1957 should have one project_feature1958 should have one statistics class_name => ProjectStatistics1959 should have one import_data class_name => ProjectImportData1960 should have one last_event class_name => Event1961 should have one forked_from_project through forked_project_link1962 should have one auto_devops class_name => ProjectAutoDevops1963 should have many commit_statuses1964 should have many pipelines1965 should have many builds1966 should have many build_trace_section_names1967 should have many runner_projects1968 should have many runners1969 should have many variables1970 should have many triggers1971 should have many pages_domains1972 should have many labels class_name => ProjectLabel1973 should have many users_star_projects1974 should have many environments1975 should have many deployments1976 should have many todos1977 should have many releases1978 should have many lfs_objects_projects1979 should have many project_group_links1980 should have many notification_settings dependent => delete_all1981 should have many forks through forked_project_links1982 should have many approver_groups dependent => destroy1983 should have many uploads1984 should have many pipeline_schedules1985 should have many members_and_requesters1986 should have many clusters1987 should have many custom_attributes class_name => ProjectCustomAttribute1988 should have many project_badges class_name => ProjectBadge1989 should have many lfs_file_locks1990 should have many project_deploy_tokens1991 should have many deploy_tokens through project_deploy_tokens1992 after initialized1993 has a project_feature1994 when creating a new project1995 automatically creates a CI/CD settings row1996 updating cd_cd_settings1997 does not raise an error1998 #members & #requesters1999 behaves like members and requesters associations2000 #members_and_requesters2001 includes members and requesters2002 #members2003 includes members and exclude requesters2004 #requesters2005 does not include requesters2006 modules2007 should includes the Gitlab::ConfigHelper module2008 should includes the Gitlab::ShellAdapter module2009 should includes the Gitlab::VisibilityLevel module2010 should includes the Referable module2011 should includes the Sortable module2012 scopes2013 #with_wiki_enabled2014 returns a project2015 validation2016 should validate that :name cannot be empty/falsy2017 should validate that :name is case-sensitively unique within the scope of :namespace_id2018 should validate that the length of :name is at most 2552019 should validate that :path cannot be empty/falsy2020 should validate that the length of :path is at most 2552021 should validate that the length of :description is at most 20002022 should validate that the length of :ci_config_path is at most 2552023 should allow :ci_config_path to be ‹""›2024 should not allow :ci_config_path to be ‹"test/../foo"›2025 should not allow :ci_config_path to be ‹"/test/foo"›2026 should validate that :creator cannot be empty/falsy2027 should validate that :namespace cannot be empty/falsy2028 should validate that :repository_storage cannot be empty/falsy2029 does not allow new projects beyond user limits2030 does not allow an invalid URI as import_url2031 does allow a valid URI as import_url2032 allows an empty URI2033 does not produce import data on an empty URI2034 does not produce import data on an invalid URI2035 does not allow import_url pointing to localhost2036 does not allow import_url with invalid ports2037 does not allow import_url with invalid user2038 creates import state when mirror gets enabled2039 wiki path conflict2040 when the new path has been used by the wiki of other Project2041 has an error on the name attribute2042 when the new wiki path has been used by the path of other Project2043 has an error on the name attribute2044 repository storages inclusion2045 does not allow repository storages that don't match a label in the configuration2046 #mark_stuck_remote_mirrors_as_failed!20472018-06-26T13:40:20.205Z 90 TID-gpqvom9se INFO: Removing remote remote_mirror_1 from project 3720482018-06-26T13:40:20.213Z 90 TID-gpqvom9se ERROR: Could not remove remote remote_mirror_1 from project 372049 fails stuck remote mirrors2050 mirror2051 should validate that :import_url cannot be empty/falsy2052 should validate that :mirror_user cannot be empty/falsy2053 project pending deletion2054 contains errors related to the project being deleted2055 path validation2056 allows paths reserved on the root namespace2057 rejects paths reserved on another level2058 rejects nested paths2059 allows a reserved group name2060 allows a path ending in a period2061 project token2062 sets an random token if none provided2063 does not set an random token if one provided2064 Respond to2065 should respond to #url_to_repo2066 should respond to #repo_exists?2067 should respond to #execute_hooks2068 should respond to #owner2069 should respond to #path_with_namespace2070 should respond to #full_path2071 delegation2072 should delegate #add_guest to #team object2073 should delegate #add_reporter to #team object2074 should delegate #add_developer to #team object2075 should delegate #add_master to #team object2076 should delegate #add_user to #team object2077 should delegate #add_users to #team object2078 should delegate #team_members to #team object as #members2079 should delegate #owner_name to #owner object passing arguments [{:allow_nil=>true}] as #name2080 #to_reference2081 when nil argument2082 returns nil2083 when full is true2084 returns complete path to the project2085 when same project argument2086 returns nil2087 when cross namespace project argument2088 returns complete path to the project2089 when same namespace / cross-project argument2090 returns path to the project2091 when different namespace / cross-project argument2092 returns full path to the project2093 when argument is a namespace2094 with same project path2095 returns path to the project2096 with different project path2097 returns full path to the project2098 #to_human_reference2099 when nil argument2100 returns nil2101 when same project argument2102 returns nil2103 when cross namespace project argument2104 returns complete name with namespace of the project2105 when same namespace / cross-project argument2106 returns name of the project2107 #merge_method2108 ff: true, rebase: true, method: :ff2109 should eq :ff2110 ff: true, rebase: false, method: :ff2111 should eq :ff2112 ff: false, rebase: true, method: :rebase_merge2113 should eq :rebase_merge2114 ff: false, rebase: false, method: :merge2115 should eq :merge2116 #web_url2117 returns the full web URL for this repo2118 #kerberos_url_to_repo2119 returns valid kerberos url for this repo2120 #readme_url2121 with a non-existing repository2122 returns nil2123 with an existing repository2124 when no README exists2125 returns nil2126 when a README exists2127 returns the README2128 #new_issuable_address2129 incoming email enabled2130 returns the address to create a new issue2131 returns the address to create a new merge request2132 incoming email disabled2133 returns nil2134 returns nil2135 last_activity methods2136 last_activity2137 alias last_activity to last_event2138 last_activity_date2139 returns the creation date of the project's last event if present2140 returns the project's last update date if it has no events2141 returns the most recent timestamp2142 #get_issue2143 with default issues tracker2144 returns an issue2145 returns count of open issues2146 returns nil when no issue found2147 returns nil when user doesn't have access2148 with external issues tracker2149 when internal issues are enabled2150 returns interlan issue2151 returns an ExternalIssue when internal issue does not exists2152 when internal issues are disabled2153 returns always an External issues2154 returns an ExternalIssue when internal issue does not exists2155 #issue_exists?2156 is truthy when issue exists2157 is falsey when issue does not exist2158 #to_param2159 with namespace2160 should eq "gitlabhq"2161 with invalid path2162 returns previous path to keep project suitable for use in URLs when persisted2163 returns current path when new record2164 #repository2165 returns valid repo2166 repository size restrictions2167 #changes_will_exceed_size_limit?2168 returns true when changes go over2169 #actual_size_limit2170 returns the limit set in the application settings2171 returns the value set in the group2172 returns the value set locally2173 #size_limit_enabled?2174 returns false when disabled2175 returns true when a limit is set2176 #above_size_limit?2177 returns true when above the limit2178 returns false when not over the limit2179 #size_to_remove2180 returns the correct value2181 #repository_size_limit column2182 support values up to 8 exabytes2183 #default_issues_tracker?2184 is true if used internal tracker2185 is false if used other tracker2186 #empty_repo?2187 when the repo does not exist2188 returns true2189 when the repo exists2190 should equal true2191 should equal false2192 #external_issue_tracker2193 returns nil and does not query services when there is no external issue tracker2194 retrieves external_issue_tracker querying services and cache it when there is external issue tracker2195 on existing projects with no value for has_external_issue_tracker2196 updates the has_external_issue_tracker boolean2197 #cache_has_external_issue_tracker2198 stores true if there is any external_issue_tracker2199 stores false if there is no external_issue_tracker2200 does not cache data when in a read-only GitLab instance2201 #cache_has_external_wiki2202 stores true if there is any external_wikis2203 stores false if there is no external_wikis2204 does not cache data when in a read-only GitLab instance2205 #has_wiki?2206 returns true if project is wiki enabled or has external wiki2207 #external_wiki2208 with an active external wiki2209 sets :has_external_wiki as true2210 sets :has_external_wiki as false if an external wiki service is destroyed later2211 with an inactive external wiki2212 sets :has_external_wiki as false2213 with no external wiki2214 sets :has_external_wiki as false2215 sets :has_external_wiki as true if an external wiki service is created later2216 #star_count2217 counts stars from multiple users2218 counts stars on the right project2219 #avatar_type2220 is true if avatar is image2221 is false if avatar is html page2222 #avatar_url2223 when avatar file is uploaded2224 shows correct url2225 when avatar file in git2226 should eq "http://localhost/namespace148/project150/avatar"2227 when git repo is empty2228 should eq nil2229 #pipeline_for2230 with explicit sha2231 behaves like giving the correct pipeline2232 should eq #<Ci::Pipeline id: 1, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...line_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil, iid: 1>2233 return latest2234 should eq #<Ci::Pipeline id: 3, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...line_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil, iid: 2>2235 with implicit sha2236 behaves like giving the correct pipeline2237 should eq #<Ci::Pipeline id: 4, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...line_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil, iid: 1>2238 return latest2239 should eq #<Ci::Pipeline id: 6, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...line_schedule_id: nil, source: 1, config_source: nil, protected: false, failure_reason: nil, iid: 2>2240 #builds_enabled2241 should be truthy2242 .with_shared_runners2243 when shared runners are enabled for project2244 returns a project2245 when shared runners are disabled for project2246 returns an empty array2247 .cached_count2248 returns total project count2249 .trending2250 sorts projects by the amount of notes in descending order2251 does not take system notes into account2252 .starred_by2253 returns only projects starred by the given user2254 .visible_to_user2255 when a user has access to a project2256 should eq [#<Project id:146 namespace166/project168>]2257 when a user does not have access to any projects2258 should eq []2259 repository storage by default2260 picks storage from ApplicationSetting2261 shared runners by default2262 are enabled2263 should be truthy2264 are disabled2265 should be falsey2266 #any_runners?2267 shared runners2268 for shared runners disabled2269 has no runners available2270 has a specific runner2271 has a shared runner, but they are prohibited to use2272 checks the presence of specific runner2273 returns false if match cannot be found2274 for shared runners enabled2275 has a shared runner2276 checks the presence of shared runner2277 returns false if match cannot be found2278 group runners2279 for group runners disabled2280 has no runners available2281 has a group runner, but they are prohibited to use2282 for group runners enabled2283 has a group runner2284 checks the presence of group runner2285 returns false if match cannot be found2286 #shared_runners2287 when shared runners are enabled for project2288 returns a list of shared runners2289 when shared runners are disabled for project2290 returns a empty list2291 #visibility_level_allowed?2292 when checking on non-forked project2293 should be truthy2294 should be truthy2295 should be truthy2296 when checking on forked project2297 should be truthy2298 should be truthy2299 should be falsey2300 #pages_deployed?2301 if public folder does exist2302 should be truthy2303 if public folder doesn't exist2304 should be falsey2305 #pages_url2306 group page2307 should eq "http://group.example.com"2308 project page2309 should eq "http://group.example.com/project"2310 #pages_group_url2311 group page2312 should eq "http://group.example.com:1234"2313 project page2314 should eq "http://group.example.com:1234"2315 .search2316 returns projects with a matching name2317 returns projects with a partially matching name2318 returns projects with a matching name regardless of the casing2319 returns projects with a matching description2320 returns projects with a partially matching description2321 returns projects with a matching description regardless of the casing2322 returns projects with a matching path2323 returns projects with a partially matching path2324 returns projects with a matching path regardless of the casing2325 with pending_delete project2326 shows pending deletion project2327 #expire_caches_before_rename2328 expires the caches of the repository and wiki2329 .search_by_title2330 returns projects with a matching name2331 returns projects with a partially matching name2332 returns projects with a matching name regardless of the casing2333 when checking projects from groups2334 when group is private project can not be internal2335 should be falsey2336 when group is internal project can not be public2337 should be falsey2338 #create_repository2339 using a regular repository2340 creates the repository2341 adds an error if the repository could not be created2342 using a forked repository2343 does nothing2344 #ensure_repository2345 creates the repository if it not exist2346 does not create the repository if it exists2347 creates the repository if it is a fork2348 handling import URL2349 when project is a mirror2350 returns the full URL2351 when project is not a mirror2352 returns the sanitized URL2353 #container_registry_url2354 for enabled registry2355 should not be nil2356 for disabled registry2357 should be nil2358 #has_container_registry_tags?2359 when container registry is enabled2360 when tags are present for multi-level registries2361 should have image tags2362 when tags are present for root repository2363 should have image tags2364 when there are no tags at all2365 should not have image tags2366 when container registry is disabled2367 should not have image tags2368 should not check root repository tags2369 should iterate through container repositories2370 #ci_config_path=2371 sets nil2372 sets a string2373 sets a string but removes all null characters2374 #human_import_status_name2375 when import_state exists2376 returns the humanized status name2377 when import_state was not created yet2378 ensures import_state is created and returns humanized status name2379 returns humanized status name2380 Project import job2381 imports a project2382 with a mirrored project2383 calls RepositoryImportWorker and inserts in front of the mirror scheduler queue2384 project import state transitions2385 state transition: [:started] => [:finished]2386 resets project import_error2387 performs housekeeping when an import of a fresh project is completed2388 does not perform housekeeping when project repository does not exist2389 does not perform housekeeping when project does not have a valid import type2390 #latest_successful_builds_for2391 with many builds2392 gives the latest builds from latest pipeline2393 with succeeded pipeline2394 standalone pipeline2395 returns builds for ref for default_branch2396 returns empty relation if the build cannot be found2397 with some pending pipeline2398 gives the latest build from latest pipeline2399 with pending pipeline2400 returns empty relation2401 #add_import_job2402 forked2403 schedules a RepositoryForkWorker job2404 without mirror2405 returns nil2406 without repository2407 schedules RepositoryImportWorker2408 with mirror2409 schedules RepositoryUpdateMirrorWorker2410 not forked2411 schedules a RepositoryImportWorker job2412 #gitlab_project_import?2413 should equal true2414 #gitea_import?2415 should equal true2416 #has_remote_mirror?2417 returns true when a remote mirror is enabled2418 returns false when remote mirror is disabled2419 #update_remote_mirrors2420 syncs enabled remote mirror2421 does nothing when remote mirror is disabled globally and not overridden2422 does not sync disabled remote mirrors2423 #remote_mirror_available?2424 when remote mirror global setting is enabled2425 returns true2426 when remote mirror global setting is disabled2427 returns true when overridden2428 returns false when not overridden2429 #ancestors_upto2430 returns all ancestors when no namespace is given (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2431 includes ancestors upto but excluding the given ancestor (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)2432 #lfs_enabled?2433 LFS disabled in group2434 behaves like project overrides group2435 returns true when enabled in project2436 returns false when disabled in project2437 returns the value from the namespace, when no value is set in project2438 LFS enabled in group2439 behaves like project overrides group2440 returns true when enabled in project2441 returns false when disabled in project2442 returns the value from the namespace, when no value is set in project2443 LFS disabled globally2444 when no values are set2445 behaves like it always returns false2446 should be falsey2447 when all values are set to true2448 behaves like it always returns false2449 should be falsey2450 .where_full_path_in2451 without any paths2452 returns an empty relation2453 without any valid paths2454 returns an empty relation2455 with valid paths2456 returns the projects matching the paths2457 returns projects regardless of the casing of paths2458 #find_path_lock2459 returns path_lock2460 returns nil2461 #change_repository_storage2462 schedule the transfer of the repository to the new storage and locks the project2463 doesn't schedule the transfer if the repository is already read-only2464 doesn't lock or schedule the transfer if the storage hasn't changed2465 throws an error if an invalid repository storage is provided2466 #change_head2467 returns error if branch does not exist2468 calls the before_change_head and after_change_head methods2469 creates the new reference with rugged2470 copies the gitattributes2471 reloads the default branch2472 forks2473 #fork_network2474 includes a fork of the project2475 includes a fork of a fork2476 includes sibling forks2477 includes the base project2478 #in_fork_network_of?2479 is true for a real fork2480 is true for a fork of a fork (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)2481 is true for sibling forks2482 is false when another project is given2483 #fork_source2484 returns the direct source if it exists2485 returns the root of the fork network when the directs source was deleted2486 returns nil if it is the root of the fork network2487 #lfs_storage_project2488 returns self for non-forks2489 returns the fork network root for forks2490 returns self when fork_source is nil2491 #all_lfs_objects2492 returns the lfs object for a project2493 returns the lfs object for a fork2494 #pushes_since_gc2495 without any pushes2496 returns 02497 with a number of pushes2498 returns the number of pushes2499 #increment_pushes_since_gc2500 increments the number of pushes since the last GC2501 #repository_and_lfs_size2502 returns the total repository and lfs size2503 #approver_group_ids=2504 create approver_groups2505 #reset_pushes_since_gc2506 resets the number of pushes since the last GC2507 #deployment_variables2508 when project has no deployment service2509 returns an empty array2510 when project has a deployment service2511 when user configured kubernetes from Integration > Kubernetes2512 behaves like same behavior between KubernetesService and Platform::Kubernetes2513 returns variables from this service2514 when user configured kubernetes from CI/CD > Clusters2515 behaves like same behavior between KubernetesService and Platform::Kubernetes2516 returns variables from this service2517 when multiple clusters (EEP) is enabled2518 when environment name is review/name2519 returns variables from this service2520 when environment name is other2521 returns variables from this service2522 #secret_variables_for2523 when the ref is not protected2524 contains only the secret variables2525 when the ref is a protected branch2526 behaves like ref is protected2527 contains all the variables2528 when the ref is a protected tag2529 behaves like ref is protected2530 contains all the variables2531 #protected_for?2532 when the ref is not protected2533 returns false2534 when the ref is a protected branch2535 returns true2536 when the ref is a protected tag2537 returns true2538 #update_project_statistics2539 is called after creation2540 copies the namespace_id2541 updates the namespace_id when changed2542 #create_import_state2543 it is called after save2544 inside_path2545 returns correct project2546 #route_map_for2547 when there is a .gitlab/route-map.yml at the commit2548 when the route map is valid2549 returns a route map2550 when the route map is invalid2551 returns nil2552 when there is no .gitlab/route-map.yml at the commit2553 returns nil2554 #public_path_for_source_path2555 when there is a route map2556 when the source path is mapped2557 returns the public path2558 when the source path is not mapped2559 returns nil2560 when there is no route map2561 returns nil2562 #parent2563 should eq #<Namespace id: 466, name: "namespace333", path: "namespace333", owner_id: 409, created_at: "2018-06-...iod: 48, cached_markdown_version: 11, plan_id: nil, project_creation_level: nil, runners_token: nil>2564 #parent_id2565 should eq 4672566 #parent_changed?2567 should be truthy2568 #pages_url2569 top-level group2570 group page2571 should eq "http://group.example.com"2572 project page2573 should eq "http://group.example.com/project"2574 nested group2575 group page2577 project page2578 should eq "http://group.example.com/group39/project"2579 #http_url_to_repo2580 returns the url to the repo without a username2581 #pipeline_status2582 builds a pipeline status2583 hase a loaded pipeline status2584 #append_or_update_attribute2585 shows full error updating an invalid MR2586 updates the project succesfully2587 #last_repository_updated_at2588 sets to created_at upon creation2589 .public_or_visible_to_user2590 with a user2591 includes projects the user has access to2592 includes projects the user can see2593 without a user2594 only includes public projects2595 #pages_available?2596 when the project is in a top level namespace2597 should equal true2598 when the project is in a subgroup2599 should equal false2600 #remove_private_deploy_keys2601 for a private deploy key2602 when the key is not linked to another project2603 removes the key2604 when the key is linked to another project2605 does not remove the key2606 for a public deploy key2607 does not remove the key2608 #remove_pages2609 removes the pages directory2610 is a no-op when there is no namespace2611 is run when the project is destroyed2612 #remove_export2613 removes the exports directory for the project2614 is a no-op on legacy projects when there is no namespace2615 runs on hashed storage projects when there is no namespace2616 is run when the project is destroyed2617 #remove_exported_project_file2618 removes the exported project file2619 #forks_count2620 returns the number of forks2621 legacy storage2622 #base_dir2623 returns base_dir based on namespace only2624 #disk_path2625 returns disk_path based on namespace and project path2626 #ensure_storage_path_exists2627 delegates to gitlab_shell to ensure namespace is created2628 #legacy_storage?2629 returns true when storage_version is nil2630 returns true when the storage_version is 02631 #hashed_storage?2632 returns false2633 #rename_repo2634 renames a repository2635 updates project full path in .git/config2636 container registry with images2637 should raise StandardError2638 gitlab pages2639 moves pages folder to new location2640 attachments2641 moves uploads folder to new location2642 #pages_path2643 returns a path where pages are stored2644 #migrate_to_hashed_storage!26452018-06-26T13:41:29.806Z 90 TID-gpqvom9se INFO: Skipped attachments migration from '/builds/gitlab-org/gitlab-ee/tmp/tests/public/uploads/namespace377/project378' to '/builds/gitlab-org/gitlab-ee/tmp/tests/public/uploads/@hashed/f6/5c/f65ccfbfec288565c1d414275985547799fde0ed286c85a50bd0ec5faa01d1ac', source path doesn't exist or is not a directory (PROJECT_ID=382)2646 returns true26472018-06-26T13:41:30.333Z 90 TID-gpqvom9se INFO: Skipped attachments migration from '/builds/gitlab-org/gitlab-ee/tmp/tests/public/uploads/namespace378/project379' to '/builds/gitlab-org/gitlab-ee/tmp/tests/public/uploads/@hashed/48/b3/48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157', source path doesn't exist or is not a directory (PROJECT_ID=383)2648 flags as read-only2649 schedules ProjectMigrateHashedStorageWorker with delayed start when the project repo is in use2650 schedules ProjectMigrateHashedStorageWorker with delayed start when the wiki repo is in use2651 schedules ProjectMigrateHashedStorageWorker2652 hashed storage2653 #legacy_storage?2654 returns false2655 #hashed_storage?2656 returns true if rolled out2657 returns false when not rolled out yet2658 #base_dir2659 returns base_dir based on hash of project id2660 #disk_path2661 returns disk_path based on hash of project id2662 #ensure_storage_path_exists2663 delegates to gitlab_shell to ensure namespace is created2664 #rename_repo2665 renames a repository2666 updates project full path in .git/config2667 container registry with images2668 should raise StandardError2669 gitlab pages2670 moves pages folder to new location2671 attachments2672 keeps uploads folder location unchanged2673 when not rolled out2674 moves pages folder to new location2675 #pages_path2676 returns a path where pages are stored2677 #migrate_to_hashed_storage!2678 returns nil2679 does not flag as read-only2680 #gl_repository2681 delegates to Gitlab::GlRepository.gl_repository2682 #has_ci?2683 when has .gitlab-ci.yml2684 CI is available2685 when there is no .gitlab-ci.yml2686 CI is not available2687 when auto devops is enabled2688 CI is available2689 #auto_devops_enabled?2690 when enabled in settings2691 auto devops is implicitly enabled2692 when explicitly enabled2693 auto devops is enabled2694 when explicitly disabled2695 auto devops is disabled2696 when disabled in settings2697 auto devops is implicitly disabled2698 when explicitly enabled2699 auto devops is enabled2700 #has_auto_devops_implicitly_disabled?2701 when enabled in settings2702 does not have auto devops implicitly disabled2703 when disabled in settings2704 auto devops is implicitly disabled2705 when explicitly disabled2706 does not have auto devops implicitly disabled2707 when explicitly enabled2708 does not have auto devops implicitly disabled2709 #auto_devops_variables2710 when enabled in instance settings2711 when domain is empty2712 variables does not include AUTO_DEVOPS_DOMAIN2713 when domain is configured2714 variables includes AUTO_DEVOPS_DOMAIN2715 when explicitely enabled2716 when domain is empty2717 variables does not include AUTO_DEVOPS_DOMAIN2718 when domain is configured2719 variables includes AUTO_DEVOPS_DOMAIN2720 #latest_successful_builds_for2721 without a ref2722 returns a pipeline for the default branch2723 with the ref set to the default branch2724 returns a pipeline for the default branch2725 with a ref that is not the default branch2726 returns the latest successful pipeline for the given ref2727 #check_repository_path_availability2728 skips gitlab-shell exists?2729 #latest_successful_pipeline_for_default_branch2730 memoizes and returns the latest successful pipeline for the default branch2731 #after_import2732 runs the correct hooks2733 branch protection2734 does not protect when branch protection is disabled2735 gives developer access to push when branch protection is set to 'developers can push'2736 gives developer access to merge when branch protection is set to 'developers can merge'2737 protects default branch2738 #update_project_counter_caches2739 updates all project counter caches2740 #remove_import_jid2741 without an import JID2742 does nothing2743 with an import JID2744 unsets the import JID2745 #wiki_repository_exists?2746 returns true when the wiki repository exists2747 returns false when the wiki repository does not exist2748 #root_namespace2749 when namespace has parent group2750 returns root ancestor2751 when namespace is root ancestor2752 returns current namespace2753 #write_repository_config2754 writes full path in .git/config when key is missing2755 updates full path in .git/config when key is present2756 does not raise an error with an empty repository2757 #execute_hooks2758 executes the projects hooks with the specified scope2759 executes the system hooks with the specified scope2760 executes the system hooks when inside a transaction2761 #badges2762 returns the project and the project group badges2763 with cross project merge requests2764 #merge_requests_allowing_push_to_user2765 returns open merge requests for which the user has developer access to the target project2766 does not include closed merge requests2767 does not include merge requests for guest users2768 does not include the merge request for other users2769 is empty when no user is passed2770 #branch_allows_collaboration_push?2771 allows access if the user can merge the merge request2772 allows access when there are merge requests open but no branch name is given2773 does not allow guest users access2774 does not allow access to branches for which the merge request was closed2775 does not allow access if the user cannot merge the merge request2776 caches the result2777 when the requeststore is active2778 only queries per project across instances2779 #pages_https_only?2780 when HTTPS pages are disabled2781 should not be pages https only2782 when HTTPS pages are enabled2783 should be pages https only2784 #pages_https_only? validation2785 when no domains are associated2786 should be valid2787 when domains including keys and certificates are associated2788 should be valid2789 when domains including no keys or certificates are associated2790 should not be valid2791 #toggle_ci_cd_settings!2792 toggles the value on #settings2793 #gitlab_deploy_token2794 when there is a gitlab deploy token associated2795 should eq #<DeployToken id: 7, revoked: false, read_repository: true, read_registry: true, expires_at: "2018-07...41:55", name: "gitlab-deploy-token", token: "5e97493efc93017a1da78bcf5ec1c5585f7e25085796675eaf...">2796 when there is no a gitlab deploy token associated2797 should be nil2798 when there is a gitlab deploy token associated but is has been revoked2799 should be nil2800 when there is a gitlab deploy token associated but it is expired2801 should be nil2802 when there is a deploy token associated with a different name2803 should be nil2804 when there is a deploy token associated to a different project2805 should be nil2806 with uploads2807 behaves like model with mounted uploader2808 .destroy2809 deletes remote uploads2810 deletes any FileUploader uploads which are not mounted2811Repository2812 #branch_names_contains2813 when gitaly is enabled2814 behaves like #branch_names_contains2815 should include "master"2816 should not include "feature"2817 should not include "fix"2818 when storage is broken2819 should raise a storage error2820 when gitaly is disabled2821 behaves like #branch_names_contains2822 should include "master"2823 should not include "feature"2824 should not include "fix"2825 when storage is broken2826 should raise a storage error2827 #tag_names_contains2828 when gitaly is enabled2829 behaves like #tag_names_contains2830 should include "v1.1.0"2831 should not include "v1.0.0"2832 when gitaly is enabled2833 behaves like #tag_names_contains2834 should include "v1.1.0"2835 should not include "v1.0.0"2836 tags_sorted_by2837 name_desc2838 should eq ["v1.1.0", "v1.0.0"]2839 name_asc2840 should eq ["v1.0.0", "v1.1.0"]2841 updated2842 desc2843 should eq ["v1.0.0", "v1.1.0"]2844 asc2845 should eq ["v1.1.0", "v1.0.0"]2846 annotated tag pointing to a blob2847 should eq ["v1.1.0", "v1.0.0", "annotated-tag"]2848 #ref_name_for_sha2849 returns the ref2850 #ref_exists?2851 when ref exists2852 returns true2853 when ref does not exist2854 returns false2855 when ref format is incorrect2856 returns false2857 #last_commit_for_path2858 when Gitaly feature last_commit_for_path is enabled2859 behaves like getting last commit for path2860 should eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"2861 when storage is broken2862 should raise a storage error2863 when Gitaly feature last_commit_for_path is disabled2864 behaves like getting last commit for path2865 should eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"2866 when storage is broken2867 should raise a storage error2868 #last_commit_id_for_path2869 when Gitaly feature last_commit_for_path is enabled2870 behaves like getting last commit ID for path2871 returns last commit id for a given path2872 caches last commit id for a given path2873 when storage is broken2874 should raise a storage error2875 when Gitaly feature last_commit_for_path is disabled2876 behaves like getting last commit ID for path2877 returns last commit id for a given path2878 caches last commit id for a given path2879 when storage is broken2880 should raise a storage error2881 #commits2882 when neither the all flag nor a ref are specified2883 returns every commit from default branch2884 when ref is passed2885 returns every commit from the specified ref2886 when all2887 returns every commit from the repository2888 with path2889 sets follow when it is a single path2890 does not set follow when it is multiple paths2891 without path2892 does not set follow2893 when 'all' flag is set2894 returns every commit from the repository2895 #new_commits2896 delegates to Gitlab::Git::RevList2897 #commits_by2898 when Gitaly list_commits_by_oid is enabled2899 behaves like batch commits fetching2900 finds each commit2901 returns only Commit instances2902 when some commits are not found2903 returns only found commits2904 when no oids are passed2905 does not call #batch_by_oid2906 when Gitaly list_commits_by_oid is enabled2907 behaves like batch commits fetching2908 finds each commit2909 returns only Commit instances2910 when some commits are not found2911 returns only found commits2912 when no oids are passed2913 does not call #batch_by_oid2914 #find_commits_by_message2915 when Gitaly commits_by_message feature is enabled2916 behaves like finding commits by message2917 returns commits with messages containing a given string2918 is case insensitive2919 when Gitaly commits_by_message feature is disabled2920 behaves like finding commits by message2921 returns commits with messages containing a given string2922 is case insensitive2923 when storage is broken2924 should raise a storage error2925 #blob_at2926 blank sha2927 should be nil2928 #merged_to_root_ref?2929 merged branch without ff2930 should be truthy2931 merged with ff2932 should be truthy2933 not merged branch2934 should be falsey2935 default branch2936 should be falsey2937 #can_be_merged?2938 when Gitaly can_be_merged feature is enabled2939 behaves like can be merged2940 mergeable branches2941 should be truthy2942 non-mergeable branches without conflict sides missing2943 should be falsey2944 non-mergeable branches with conflict sides missing2945 should be falsey2946 non merged branch2947 should be falsey2948 non existent branch2949 should be nil2950 when Gitaly can_be_merged feature is disabled2951 behaves like can be merged2952 mergeable branches2953 should be truthy2954 non-mergeable branches without conflict sides missing2955 should be falsey2956 non-mergeable branches with conflict sides missing2957 should be falsey2958 non merged branch2959 should be falsey2960 non existent branch2961 should be nil2962 #commit2963 when ref exists2964 returns commit object2965 when ref does not exist2966 returns nil2967 when ref is not valid2968 when preceding tree element exists2969 returns nil2970 when preceding tree element does not exist2971 returns nil2972 #create_dir2973 commits a change that creates a new directory2974 when committing to another project2975 creates a fork and commit to the forked project2976 when an author is specified2977 uses the given email/name to set the commit's author2978 #create_file2979 commits new file successfully2980 creates new file and dir when file_path has a forward slash2981 respects the autocrlf setting2982 when an author is specified2983 uses the given email/name to set the commit's author2984 #update_file2985 updates file successfully2986 updates filename successfully2987 when an author is specified2988 uses the given email/name to set the commit's author2989 #delete_file2990 removes file successfully2991 when an author is specified2992 uses the given email/name to set the commit's author2993 with gitaly enabled2994 behaves like search_files_by_content2995 should be a kind of Array2996 regex-escapes the query string2997 properly handles an unmatched parenthesis2998 properly handles when query is not present2999 properly handles query when repo is empty3000 when storage is broken3001 should raise a storage error3002 result3003 should be a kind of String3004 should eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"3005 behaves like search_files_by_name3006 returns result3007 ignores leading slashes3008 properly handles when query is only slashes3009 properly handles when query is not present3010 properly handles query when repo is empty3011 when storage is broken3012 should raise a storage error3013 with gitaly disabled3014 behaves like search_files_by_content3015 should be a kind of Array3016 regex-escapes the query string3017 properly handles an unmatched parenthesis3018 properly handles when query is not present3019 properly handles query when repo is empty3020 when storage is broken3021 should raise a storage error3022 result3023 should be a kind of String3024 should eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"3025 behaves like search_files_by_name3026 returns result3027 ignores leading slashes3028 properly handles when query is only slashes3029 properly handles when query is not present3030 properly handles query when repo is empty3031 when storage is broken3032 should raise a storage error3033 #async_remove_remote3034 when worker is scheduled successfully3035 returns job_id3036 when worker does not schedule successfully3037 returns nil3038 #fetch_ref3039 when storage is broken3040 should raise a storage error3041 #create_ref3042 redirects the call to write_ref3043 #changelog3044 accepts changelog3045 accepts news instead of changelog3046 accepts history instead of changelog3047 accepts changes instead of changelog3048 is case-insensitive3049 #license_blob3050 handles when HEAD points to non-existent ref3051 looks in the root_ref only3052 detects license file with no recognizable open-source license content3053 detects 'LICENSE'3054 detects 'LICENCE'3055 detects 'LiCensE'3056 detects 'LICENSE.md'3057 detects 'LICENSE.foo'3058 detects 'COPYING'3059 detects 'COPYING.md'3060 #license_key3061 returns nil when no license is detected3062 returns nil when the repository does not exist3063 returns nil when the content is not recognizable3064 returns nil when the commit SHA does not exist3065 returns nil when master does not exist3066 returns the license key3067 #license3068 returns nil when no license is detected3069 returns nil when the repository does not exist3070 returns nil when the content is not recognizable3071 returns the license3072 #gitlab_ci_yml3073 returns valid file3074 returns nil if not exists3075 returns nil for empty repository3076 #add_branch3077 calls Gitaly's OperationService3078 creates_the_branch3079 with a non-existing target3080 returns false and doesn't create the branch3081 #find_branch3082 fresh_repo is true3083 delegates the call to raw_repository3084 fresh_repo is false3085 delegates the call to raw_repository3086 #update_branch_with_hooks3087 when pre hooks were successful3088 runs without errors3089 ensures the autocrlf Git option is set to :input3090 when the branch wasn't empty3091 updates the head3092 when target project does not have the commit3093 fetch_ref and create the branch3094 when target project already has the commit3095 does not fetch_ref and just pass the commit3096 when temporary ref failed to be created from other project3097 raises Rugged::ReferenceError3098 when the update adds more than one commit3099 runs without errors3100 when the update would remove commits from the target branch3101 raises an exception3102 when pre hooks failed3103 gets an error3104 when target branch is different from source branch3105 returns branch_created as true3106 when repository is empty3107 expires creation and branch cache3108 #exists?3109 returns true when a repository exists3110 returns false if no full path can be constructed3111 with broken storage3112 should raise a storage error3113 #has_visible_content?3114 when true3115 returns true and caches it3116 when false3117 returns false and caches it3118 #branch_exists?3119 uses branch_names3120 #tag_exists?3121 uses tag_names3122 #branch_names3123 gets cached across Repository instances3124 #update_autocrlf_option3125 when autocrlf is not already set to :input3126 sets autocrlf to :input3127 when autocrlf is already set to :input3128 does nothing3129 #empty?3130 returns true for an empty repository3131 returns false for a non-empty repository3132 caches the output3133 #root_ref3134 returns a branch name3135 caches the output3136 #expire_root_ref_cache3137 expires the root reference cache3138 #expire_branch_cache3139 expires the cache for all branches3140 expires the cache for all branches when the root branch is given3141 expires the cache for a specific branch3142 #expire_emptiness_caches3143 expires the caches for an empty repository3144 does not expire the cache for a non-empty repository3145 expires the memoized repository cache3146 skip_merges option3147 should not include "e56497bb5f03a90a51293fc6d516788730953899"3148 #merge3149 with gitaly3150 behaves like #merge3151 merges the code and returns the commit id3152 sets the `in_progress_merge_commit_sha` flag for the given merge request3153 removes carriage returns from commit message3154 without gitaly3155 behaves like #merge3156 merges the code and returns the commit id3157 sets the `in_progress_merge_commit_sha` flag for the given merge request3158 removes carriage returns from commit message3159 #ff_merge3160 merges the code and return the commit id3161 sets the `in_progress_merge_commit_sha` flag for the given merge request3162 #revert3163 when Gitaly revert feature is enabled3164 behaves like reverting a commit3165 when there is a conflict3166 raises an error3167 when commit was already reverted3168 raises an error3169 when commit can be reverted3170 reverts the changes3171 reverting a merge commit3172 reverts the changes3173 when Gitaly revert feature is disabled3174 behaves like reverting a commit3175 when there is a conflict3176 raises an error3177 when commit was already reverted3178 raises an error3179 when commit can be reverted3180 reverts the changes3181 reverting a merge commit3182 reverts the changes3183 #cherry_pick3184 when Gitaly cherry_pick feature is enabled3185 behaves like cherry-picking a commit3186 when there is a conflict3187 raises an error3188 when commit was already cherry-picked3189 raises an error3190 when commit can be cherry-picked3191 cherry-picks the changes3192 cherry-picking a merge commit3193 cherry-picks the changes3194 when Gitaly cherry_pick feature is disabled3195 behaves like cherry-picking a commit3196 when there is a conflict3197 raises an error3198 when commit was already cherry-picked3199 raises an error3200 when commit can be cherry-picked3201 cherry-picks the changes3202 cherry-picking a merge commit3203 cherry-picks the changes3204 #before_delete3205 when a repository does not exist3206 does not flush caches that depend on repository data3207 flushes the tags cache3208 flushes the branches cache3209 flushes the root ref cache3210 flushes the emptiness caches3211 flushes the exists cache3212 when a repository exists3213 flushes the tags cache3214 flushes the branches cache3215 flushes the root ref cache3216 flushes the emptiness caches3217 #before_change_head3218 flushes the branch cache3219 flushes the root ref cache3220 #after_change_head3221 flushes the readme cache3222 #before_push_tag3223 flushes the cache3224 #after_import3225 flushes and builds the cache3226 #after_push_commit3227 expires statistics caches3228 #after_create_branch3229 expires the branch caches3230 #after_remove_branch3231 expires the branch caches3232 #after_create3233 flushes the exists cache3234 flushes the root ref cache3235 flushes the emptiness caches3236 #copy_gitattributes3237 returns true with a valid ref3238 returns false with an invalid ref3239 #before_remove_tag3240 flushes the tag cache3241 #branch_count3242 returns the number of branches3243 #tag_count3244 returns the number of tags3245 #expire_branches_cache3246 expires the cache3247 #expire_tags_cache3248 expires the cache3249 #add_tag3250 when Gitaly operation_user_add_tag feature is enabled3251 behaves like adding tag3252 with a valid target3253 creates the tag3254 returns a Gitlab::Git::Tag object3255 with an invalid target3256 returns false3257 when Gitaly operation_user_add_tag feature is disabled3258 passes commit SHA to pre-receive and update hooks and tag SHA to post-receive hook3259 behaves like adding tag3260 with a valid target3261 creates the tag3262 returns a Gitlab::Git::Tag object3263 with an invalid target3264 returns false3265 #rm_branch3266 with gitaly enabled3267 behaves like user deleting a branch3268 removes a branch3269 when pre hooks failed3270 gets an error and does not delete the branch3271 with gitaly disabled3272 behaves like user deleting a branch3273 removes a branch3274 when pre hooks were successful3275 runs without errors3276 deletes the branch3277 when pre hooks failed3278 gets an error3279 does not delete the branch3280 #rm_tag3281 when Gitaly operation_user_delete_tag feature is enabled3282 behaves like removing tag3283 removes a tag3284 when Gitaly operation_user_delete_tag feature is disabled3285 behaves like removing tag3286 removes a tag3287 #avatar3288 returns nil if repo does not exist3289 returns the first avatar file found in the repository3290 caches the output3291 #expire_exists_cache3292 expires the cache3293 #xcode_project?3294 when the root contains a *.xcodeproj directory3295 returns true3296 when the root contains a *.xcworkspace directory3297 returns true3298 when the root contains no Xcode config directory3299 returns false3300 #keep_around3301 does not fail if we attempt to reference bad commit3302 stores a reference to the specified commit sha so it isn't garbage collected3303 attempting to call keep_around on truncated ref does not fail3304 #update_ref3305 can create a ref3306 raises CommitError when the ref update fails3307 #contribution_guide3308 returns and caches the output3309 #gitignore3310 returns and caches the output3311 #koding_yml3312 returns and caches the output3313 #readme3314 with a non-existing repository3315 returns nil3316 with an existing repository3317 when no README exists3318 returns nil3319 when a README exists3320 returns the README3321 #expire_statistics_caches3322 expires the caches3323 #expire_all_method_caches3324 expires the caches of all methods3325 all cache_method definitions are in the lists of method caches3326 #file_on_head3327 with a non-existing repository3328 returns nil3329 with a repository that has no blobs3330 returns nil3331 with an existing repository3332 returns a Gitlab::Git::Tree3333 #head_tree3334 with an existing repository3335 returns a Tree3336 with a non-existing repository3337 returns nil3338 #tree3339 using a non-existing repository3340 returns nil3341 returns nil when using a path3342 using an existing repository3343 returns a Tree3344 #size3345 with a non-existing repository3346 returns 03347 with an existing repository3348 returns the repository size as a Float3349 #local_branches3350 returns the local branches3351 #remote_branches3352 returns the remote branches3353 #upstream_branches3354 returns branches from the upstream remote3355 #commit_count3356 with a non-existing repository3357 returns 03358 with an existing repository3359 returns the commit count3360 #commit_count_for_ref3361 with a non-existing repository3362 returns 03363 with empty repository3364 returns 03365 when searching for the root ref3366 returns the same count as #commit_count3367 #diverging_commit_counts3368 returns the commit counts behind and ahead of default branch3369 #refresh_method_caches3370 refreshes the caches of the given types3371 #gitlab_ci_yml_for3372 when there is a .gitlab-ci.yml at the commit3373 returns the content3374 when there is no .gitlab-ci.yml at the commit3375 returns nil3376 #route_map_for3377 when there is a .gitlab/route-map.yml at the commit3378 returns the content3379 when there is no .gitlab/route-map.yml at the commit3380 returns nil3381 #after_sync3382 expires repository cache3383 #ancestor?3384 with Gitaly enabled3385 behaves like #ancestor?3386 it is an ancestor3387 it is not an ancestor3388 returns false on nil-values3389 returns false for invalid commit IDs3390 with Gitaly disabled3391 behaves like #ancestor?3392 it is an ancestor3393 it is not an ancestor3394 returns false on nil-values3395 returns false for invalid commit IDs3396 #archive_metadata3397 with hashed storage disabled3398 uses the project path to generate the filename3399 with hashed storage enabled3400 uses the project path to generate the filename3401 commit cache3402 caches based on SHA3403 caches nil values3404 #raw_repository3405 returns a Gitlab::Git::Repository representation of the repository3406 with a wiki repository3407 creates a Gitlab::Git::Repository with the proper attributes3408 #contributors3409 returns the array of Gitlab::Contributor for the repository3410 order_by email3411 asc3412 returns all the contributors ordered by email asc case insensitive3413 desc3414 returns all the contributors ordered by email desc case insensitive3415 order_by name3416 asc3417 returns all the contributors ordered by name asc case insensitive3418 desc3419 returns all the contributors ordered by name desc case insensitive3420 order_by commits3421 asc3422 returns all the contributors ordered by commits asc3423 desc3424 returns all the contributors ordered by commits desc3425 invalid ordering3426 returns the contributors unsorted3427 invalid sorting3428 returns the contributors unsorted3429User uses shortcuts3430Starting the Capybara driver server...3431 when navigating to the Project pages3432 redirects to the details page3433 redirects to the activity page3434 when navigating to the Repository pages3435 redirects to the repository files page3436 redirects to the repository commits page3437 redirects to the repository graph page3438 redirects to the repository charts page3439 when navigating to the Issues pages3440 redirects to the issues list page3441 redirects to the issue board page3442 redirects to the new issue page3443 when navigating to the Merge Requests pages3444 redirects to the merge requests page3445 when navigating to the CI / CD pages3446 redirects to the Jobs page3447 when navigating to the Operations pages3448 redirects to the Environments page3449 redirects to the Kubernetes page3450 when navigating to the Snippets pages3451 redirects to the snippets page3452 when navigating to the Wiki pages3453 redirects to the wiki page3454HasStatus3455 .status3456 ci build statuses3457 behaves like build status summary3458 all successful3459 should eq "success"3460 at least one failed3461 should eq "failed"3462 at least one running3463 should eq "running"3464 at least one pending3465 should eq "running"3466 success and failed but allowed to fail3467 should eq "success"3468 one failed but allowed to fail3469 should eq "success"3470 success and canceled3471 should eq "canceled"3472 one failed and one canceled3473 should eq "failed"3474 one failed but allowed to fail and one canceled3475 should eq "canceled"3476 one running one canceled3477 should eq "running"3478 all canceled3479 should eq "canceled"3480 success and canceled but allowed to fail3481 should eq "success"3482 one finished and second running but allowed to fail3483 should eq "running"3484 when one status finished and second is still created3485 should eq "running"3486 when there is a manual status before created status3487 should eq "manual"3488 when one status is a blocking manual action3489 should eq "manual"3490 when one status is a non-blocking manual action3491 should eq "failed"3492 generic commit statuses3493 behaves like build status summary3494 all successful3495 should eq "success"3496 at least one failed3497 should eq "failed"3498 at least one running3499 should eq "running"3500 at least one pending3501 should eq "running"3502 success and failed but allowed to fail3503 should eq "success"3504 one failed but allowed to fail3505 should eq "success"3506 success and canceled3507 should eq "canceled"3508 one failed and one canceled3509 should eq "failed"3510 one failed but allowed to fail and one canceled3511 should eq "canceled"3512 one running one canceled3513 should eq "running"3514 all canceled3515 should eq "canceled"3516 success and canceled but allowed to fail3517 should eq "success"3518 one finished and second running but allowed to fail3519 should eq "running"3520 when one status finished and second is still created3521 should eq "running"3522 when there is a manual status before created status3523 should eq "manual"3524 when one status is a blocking manual action3525 should eq "manual"3526 when one status is a non-blocking manual action3527 should eq "failed"3528 for scope with one status3529 behaves like having a job3530 when it's created ci_build job3531 .created3532 contains the job3533 .relevant3534 contains nothing3535 when it's created generic_commit_status job3536 .created3537 contains the job3538 .relevant3539 contains nothing3540 behaves like having a job3541 when it's running ci_build job3542 .running3543 contains the job3544 .relevant3545 contains the job3546 when it's running generic_commit_status job3547 .running3548 contains the job3549 .relevant3550 contains the job3551 behaves like having a job3552 when it's pending ci_build job3553 .pending3554 contains the job3555 .relevant3556 contains the job3557 when it's pending generic_commit_status job3558 .pending3559 contains the job3560 .relevant3561 contains the job3562 behaves like having a job3563 when it's success ci_build job3564 .success3565 contains the job3566 .relevant3567 contains the job3568 when it's success generic_commit_status job3569 .success3570 contains the job3571 .relevant3572 contains the job3573 behaves like having a job3574 when it's failed ci_build job3575 .failed3576 contains the job3577 .relevant3578 contains the job3579 when it's failed generic_commit_status job3580 .failed3581 contains the job3582 .relevant3583 contains the job3584 behaves like having a job3585 when it's canceled ci_build job3586 .canceled3587 contains the job3588 .relevant3589 contains the job3590 when it's canceled generic_commit_status job3591 .canceled3592 contains the job3593 .relevant3594 contains the job3595 behaves like having a job3596 when it's skipped ci_build job3597 .skipped3598 contains the job3599 .relevant3600 contains the job3601 when it's skipped generic_commit_status job3602 .skipped3603 contains the job3604 .relevant3605 contains the job3606 for scope with more statuses3607 .running_or_pending3608 behaves like containing the job3609 when it's running ci_build job3610 contains the job3611 when it's running generic_commit_status job3612 contains the job3613 behaves like containing the job3614 when it's pending ci_build job3615 contains the job3616 when it's pending generic_commit_status job3617 contains the job3618 behaves like not containing the job3619 when it's created ci_build job3620 contains nothing3621 when it's created generic_commit_status job3622 contains nothing3623 behaves like not containing the job3624 when it's failed ci_build job3625 contains nothing3626 when it's failed generic_commit_status job3627 contains nothing3628 behaves like not containing the job3629 when it's success ci_build job3630 contains nothing3631 when it's success generic_commit_status job3632 contains nothing3633 .alive3634 behaves like containing the job3635 when it's running ci_build job3636 contains the job3637 when it's running generic_commit_status job3638 contains the job3639 behaves like containing the job3640 when it's pending ci_build job3641 contains the job3642 when it's pending generic_commit_status job3643 contains the job3644 behaves like containing the job3645 when it's created ci_build job3646 contains the job3647 when it's created generic_commit_status job3648 contains the job3649 behaves like not containing the job3650 when it's failed ci_build job3651 contains nothing3652 when it's failed generic_commit_status job3653 contains nothing3654 behaves like not containing the job3655 when it's success ci_build job3656 contains nothing3657 when it's success generic_commit_status job3658 contains nothing3659 .created_or_pending3660 behaves like containing the job3661 when it's created ci_build job3662 contains the job3663 when it's created generic_commit_status job3664 contains the job3665 behaves like containing the job3666 when it's pending ci_build job3667 contains the job3668 when it's pending generic_commit_status job3669 contains the job3670 behaves like not containing the job3671 when it's running ci_build job3672 contains nothing3673 when it's running generic_commit_status job3674 contains nothing3675 behaves like not containing the job3676 when it's failed ci_build job3677 contains nothing3678 when it's failed generic_commit_status job3679 contains nothing3680 behaves like not containing the job3681 when it's success ci_build job3682 contains nothing3683 when it's success generic_commit_status job3684 contains nothing3685 .finished3686 behaves like containing the job3687 when it's success ci_build job3688 contains the job3689 when it's success generic_commit_status job3690 contains the job3691 behaves like containing the job3692 when it's failed ci_build job3693 contains the job3694 when it's failed generic_commit_status job3695 contains the job3696 behaves like containing the job3697 when it's canceled ci_build job3698 contains the job3699 when it's canceled generic_commit_status job3700 contains the job3701 behaves like not containing the job3702 when it's created ci_build job3703 contains nothing3704 when it's created generic_commit_status job3705 contains nothing3706 behaves like not containing the job3707 when it's running ci_build job3708 contains nothing3709 when it's running generic_commit_status job3710 contains nothing3711 behaves like not containing the job3712 when it's pending ci_build job3713 contains nothing3714 when it's pending generic_commit_status job3715 contains nothing3716 .cancelable3717 behaves like containing the job3718 when it's running ci_build job3719 contains the job3720 when it's running generic_commit_status job3721 contains the job3722 behaves like containing the job3723 when it's pending ci_build job3724 contains the job3725 when it's pending generic_commit_status job3726 contains the job3727 behaves like containing the job3728 when it's created ci_build job3729 contains the job3730 when it's created generic_commit_status job3731 contains the job3732 behaves like not containing the job3733 when it's failed ci_build job3734 contains nothing3735 when it's failed generic_commit_status job3736 contains nothing3737 behaves like not containing the job3738 when it's success ci_build job3739 contains nothing3740 when it's success generic_commit_status job3741 contains nothing3742 behaves like not containing the job3743 when it's skipped ci_build job3744 contains nothing3745 when it's skipped generic_commit_status job3746 contains nothing3747 behaves like not containing the job3748 when it's canceled ci_build job3749 contains nothing3750 when it's canceled generic_commit_status job3751 contains nothing3752 .manual3753 behaves like containing the job3754 when it's manual ci_build job3755 contains the job3756 when it's manual generic_commit_status job3757 contains the job3758 behaves like not containing the job3759 when it's failed ci_build job3760 contains nothing3761 when it's failed generic_commit_status job3762 contains nothing3763 behaves like not containing the job3764 when it's success ci_build job3765 contains nothing3766 when it's success generic_commit_status job3767 contains nothing3768 behaves like not containing the job3769 when it's skipped ci_build job3770 contains nothing3771 when it's skipped generic_commit_status job3772 contains nothing3773 behaves like not containing the job3774 when it's canceled ci_build job3775 contains nothing3776 when it's canceled generic_commit_status job3777 contains nothing3778 ::DEFAULT_STATUS3779 is a status created3780 ::BLOCKED_STATUS3781 is a status manual3782ProjectPolicy3783 does not include the read_issue permission when the issue author is not a member of the private project3784 when the feature is disabled3785 does not include the wiki permissions3786 issues feature3787 when the feature is disabled3788 does not include the issues permissions3789 when the feature is disabled and external tracker configured3790 does not include the issues permissions3791 merge requests feature3792 disallows all permissions when the feature is disabled3793 behaves like project policies as anonymous3794 abilities for public projects3795 when a project has pending invites3796 does not grant owner access3797 behaves like archived project policies3798 when the project is archived3799 disables write actions on all relevant project features3800 disables some other important write actions3801 does not disable other other abilities3802 abilities for non-public projects3803 should be banned3804 behaves like project policies as guest3805 abilities for non-public projects3806 should not be allowed :destroy_issue3807 behaves like archived project policies3808 when the project is archived3809 disables write actions on all relevant project features3810 disables some other important write actions3811 does not disable other other abilities3812 public builds enabled3813 should be allowed :read_pipeline3814 when public builds disabled3815 should not be allowed :read_pipeline3816 when builds are disabled3817 should be allowed :read_pipeline3818 behaves like project policies as reporter3819 abilities for non-public projects3820 should not be allowed :destroy_issue3821 behaves like archived project policies3822 when the project is archived3823 disables write actions on all relevant project features3824 disables some other important write actions3825 does not disable other other abilities3826 behaves like project policies as developer3827 abilities for non-public projects3828 should not be allowed :destroy_issue3829 behaves like archived project policies3830 when the project is archived3831 disables write actions on all relevant project features3832 disables some other important write actions3833 does not disable other other abilities3834 behaves like project policies as master3835 abilities for non-public projects3836 should not be allowed :destroy_issue3837 behaves like archived project policies3838 when the project is archived3839 disables write actions on all relevant project features3840 disables some other important write actions3841 does not disable other other abilities3842 behaves like project policies as owner3843 abilities for non-public projects3844 should be allowed :destroy_issue3845 behaves like archived project policies3846 when the project is archived3847 disables write actions on all relevant project features3848 disables some other important write actions3849 does not disable other other abilities3850 behaves like project policies as admin3851 abilities for non-public projects3852 should be allowed :destroy_issue3853 behaves like archived project policies3854 when the project is archived3855 disables write actions on all relevant project features3856 disables some other important write actions3857 does not disable other other abilities3858 EE3859 behaves like project policies as anonymous3860 abilities for public projects3861 when a project has pending invites3862 does not grant owner access3863 behaves like archived project policies3864 when the project is archived3865 disables write actions on all relevant project features3866 disables some other important write actions3867 does not disable other other abilities3868 abilities for non-public projects3869 should be banned3870 behaves like project policies as guest3871 abilities for non-public projects3872 should not be allowed :destroy_issue3873 behaves like archived project policies3874 when the project is archived3875 disables write actions on all relevant project features3876 disables some other important write actions3877 does not disable other other abilities3878 public builds enabled3879 should be allowed :read_pipeline3880 when public builds disabled3881 should not be allowed :read_pipeline3882 when builds are disabled3883 should be allowed :read_pipeline3884 behaves like project policies as reporter3885 abilities for non-public projects3886 should not be allowed :destroy_issue3887 behaves like archived project policies3888 when the project is archived3889 disables write actions on all relevant project features3890 disables some other important write actions3891 does not disable other other abilities3892 behaves like project policies as developer3893 abilities for non-public projects3894 should not be allowed :destroy_issue3895 behaves like archived project policies3896 when the project is archived3897 disables write actions on all relevant project features3898 disables some other important write actions3899 does not disable other other abilities3900 behaves like project policies as master3901 abilities for non-public projects3902 should not be allowed :destroy_issue3903 behaves like archived project policies3904 when the project is archived3905 disables write actions on all relevant project features3906 disables some other important write actions3907 does not disable other other abilities3908 behaves like project policies as owner3909 abilities for non-public projects3910 should be allowed :destroy_issue3911 behaves like archived project policies3912 when the project is archived3913 disables write actions on all relevant project features3914 disables some other important write actions3915 does not disable other other abilities3916 behaves like project policies as admin3917 abilities for non-public projects3918 should be allowed :destroy_issue3919 behaves like archived project policies3920 when the project is archived3921 disables write actions on all relevant project features3922 disables some other important write actions3923 does not disable other other abilities3924 auditor3925 who is not a team member3926 should be allowed :download_code, :download_wiki_code, :read_project, :read_board, :read_list, :read_project_for_iids, :read_issue_iid, :read_merge_request_iid, :read_wiki, :read_issue, :read_label, :read_issue_link, :read_milestone, :read_project_snippet, :read_project_member, :read_note, :read_cycle_analytics, :read_pipeline, :read_build, :read_commit_status, :read_container_image, :read_environment, :read_deployment, :read_merge_request, :read_pages, :create_merge_request_in, and :award_emoji3927 who is a team member3928 should be allowed :download_code, :download_wiki_code, :read_project, :read_board, :read_list, :read_project_for_iids, :read_issue_iid, :read_merge_request_iid, :read_wiki, :read_issue, :read_label, :read_issue_link, :read_milestone, :read_project_snippet, :read_project_member, :read_note, :read_cycle_analytics, :read_pipeline, :read_build, :read_commit_status, :read_container_image, :read_environment, :read_deployment, :read_merge_request, :read_pages, :create_merge_request_in, and :award_emoji3929 when a public project has merge requests allowing access3930 does not allow pushing code3931 allows pushing if the user is a member with push access to the target project3932 dissallows abilities to a maintainer if the merge request was closed3933Reportable note on merge request3934 a normal note3935 behaves like reportable note3936 has an edit button3937 has a `More actions` dropdown3938 dropdown has Report and Delete links3939 Report button links to a report page3940 a diff note3941 behaves like reportable note3942 has an edit button3943 has a `More actions` dropdown3944 dropdown has Report and Delete links3945 Report button links to a report page3946Project variables3947 behaves like variable list3948 shows list of variables3949 adds new secret variable3950 adds empty variable3951 adds new protected variable3952 reveals and hides variables3953 deletes variable3954 edits variable3955 edits variable with empty value3956 edits variable to be protected3957 edits variable to be unprotected3958 handles multiple edits and deletion in the middle3959 shows validation error box about duplicate keys3960Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads::Event3961 #commit_title3962 returns nil when there are no commits3963 returns nil when there are commits without commit messages3964 returns the commit message when it is less than 70 characters long3965 returns the first line of a commit message if multiple lines are present3966 truncates the commit to 70 characters when it is too long3967 #commit_from_sha3968 returns nil when pushing to a new ref3969 returns the ID of the first commit when pushing to an existing ref3970 #commit_to_sha3971 returns nil when removing an existing ref3972 returns the ID of the last commit when pushing to an existing ref3973 #data3974 returns the deserialized data3975 returns an empty hash when no data is present3976 #commits3977 returns an Array of commits3978 returns an empty array when no data is present3979 #commit_count3980 returns the number of commits3981 returns 0 when no data is present3982 #ref3983 returns the name of the ref3984 #trimmed_ref_name3985 returns the trimmed ref name for a branch3986 returns the trimmed ref name for a tag3987 #create?3988 returns true when creating a new ref3989 returns false when pushing to an existing ref3990 #remove?3991 returns true when removing an existing ref3992 returns false when pushing to an existing ref3993 #push_action3994 returns :created when creating a new ref3995 returns :removed when removing an existing ref3996 returns :pushed when pushing to an existing ref3997 #ref_type3998 returns :tag for a tag3999 returns :branch for a branch4000Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads4001 #perform4002 returns if data should not be migrated4003 migrates the range of events if data is to be migrated4004 #process_event4005 processes a regular event4006 processes a push event4007 handles an error gracefully4008 #replicate_event4009 replicates the event to the "events_for_migration" table4010 #create_push_event_payload4011 creates a push event payload for an event4012 does not create push event payloads for removed events4013 encodes and decodes the commit IDs from and to binary data4014 #find_events4015 returns the events for the given ID range4016 #migrate?4017 returns true when data should be migrated4018 returns false if the "events" table does not exist4019 returns false if the "push_event_payloads" table does not exist4020 returns false when the "events_for_migration" table does not exist4021 #pack4022 packs a SHA1 into a 20 byte binary string4023 returns nil if the input value is nil4024LabelsFinder4025 #execute4026 with no filter4027 returns labels from projects the user have access4028 returns labels available if nil title is supplied4029 filtering by group_id4030 returns labels available for any non-archived project within the group4031 when only_group_labels is true4032 returns only group labels4033 when group has no projects4034 when only group labels is false4035 returns group labels4036 when including labels from group ancestors4037 returns labels from group and its ancestors (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4038 ignores labels from groups which user can not read (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4039 when including labels from group descendants4040 returns labels from group and its descendants (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4041 ignores labels from groups which user can not read (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4042 filtering by project_id4043 returns labels available for the project (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4044 when include_ancestor_groups is true4045 returns all ancestor labels (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4046 as an administrator4047 does not return labels from another project (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4048 filtering by title4049 returns label with that title4050 returns label with title alias4051 returns no labels if empty title is supplied4052 returns no labels if blank title is supplied4053 returns no labels if empty name is supplied4054View on environment4055 when the branch has a route map4056 and an active deployment4057 when visiting the diff of a merge request for the branch4058 has a "View on env" button4059 when visiting a comparison for the branch4060 has a "View on env" button4061 when visiting a comparison for the commit4062 has a "View on env" button4063 when visiting a blob on the branch4064 has a "View on env" button4065 when visiting a blob on the commit4066 has a "View on env" button4067 when visiting the commit4068 has a "View on env" button4069Dashboard Issues filtering4070 without any filter4071 shows error message4072 filtering by milestone4073 shows all issues with no milestone4074 shows all issues with the selected milestone4075 updates atom feed link4076 filtering by label4077 shows all issues with the selected label4078 sorting4079 remembers last sorting value4080 keeps sorting issues after visiting Projects Issues page4081IssuePolicy4082 a private project4083 does not allow non-members to read issues4084 allows guests to read issues4085 allows reporters to read, update, and admin issues4086 allows reporters from group links to read, update, and admin issues4087 allows issue authors to read and update their issues4088 allows issue assignees to read and update their issues4089 with confidential issues4090 does not allow non-members to read confidential issues4091 does not allow guests to read confidential issues4092 allows reporters to read, update, and admin confidential issues4093 allows reporters from group links to read, update, and admin confidential issues4094 allows issue authors to read and update their confidential issues4095 allows issue assignees to read and update their confidential issues4096 a public project4097 allows guests to read issues4098 allows reporters to read, update, and admin issues4099 allows reporters from group links to read, update, and admin issues4100 allows issue authors to read and update their issues4101 allows issue assignees to read and update their issues4102 with confidential issues4103 does not allow guests to read confidential issues4104 allows reporters to read, update, and admin confidential issues4105 allows reporter from group links to read, update, and admin confidential issues4106 allows issue authors to read and update their confidential issues4107 allows issue assignees to read and update their confidential issues4108Issue awards4109 logged in4110 adds award to issue4111 removes award from issue4112 only has one menu on the page4113 logged out4114 does not see award menu button4115User views an open merge request4116 when a merge request does not have repository4117 renders both the title and the description4118 when a merge request has repository4119 when rendering description preview4120 renders empty description preview4121 renders description preview4122 when the branch is rebased on the target4123 does not show diverged commits count4124 when the branch is diverged on the target4125 shows diverged commits count4126Recent searches4127 searching adds to recent searches4128 visiting URL with search params adds to recent searches4129 saved recent searches are restored last on the list4130 searches are scoped to projects4131 clicking item fills search input4132 clear recent searches button, clears recent searches4133 shows flash error when failed to parse saved history4134Reportable note on issue4135 behaves like reportable note4136 has an edit button4137 has a `More actions` dropdown4138 dropdown has Report and Delete links4139 Report button links to a report page4140Group merge requests page4141 public access level4142 group member4143 should text "this is my created issuable"4144 non-member4145 should text "this is my created issuable"4146 private access level4147 group member4148 should text "this is my created issuable"4149 non-member4150 should not text "this is my created issuable"4151 archived issuable4152 hides archived merge requests4153 ignores archived merge request count badges in navbar4154 ignores archived merge request count badges in state-filters4155 when merge request assignee to user4156 should text "this is my created issuable"4157 group filtered search4158 filters by assignee only group users4159Ability4160 using a nil subject4161 has no permissions4162 .users_that_can_read_project4163 using a public project4164 returns all the users4165 using an internal project4166 returns users that are administrators4167 returns internal users while skipping external users4168 returns external users if they are the project owner4169 returns external users if they are project members4170 returns an empty Array if all users are external users without access4171 using a private project4172 returns users that are administrators4173 returns external users if they are the project owner4174 returns external users if they are project members4175 returns an empty Array if all users are internal users without access4176 returns an empty Array if all users are external users without access4177 .users_that_can_read_personal_snippet4178 private snippet is readable only by its author4179 internal snippet is readable by all registered users4180 public snippet is readable by all users4181 .merge_requests_readable_by_user4182 with an admin4183 returns all merge requests4184 without a user4185 returns merge_requests that are publicly visible4186 with a user4187 returns projects visible to the user4188 when a user cannot read cross project and a filter is passed4189 returns only MRs of the specified project without checking access on others4190 .issues_readable_by_user4191 with an admin user4192 returns all given issues4193 with a regular user4194 returns the issues readable by the user4195 returns an empty Array when no issues are readable4196 without a regular user4197 returns issues that are publicly visible4198 when the user cannot read cross project4199 excludes issues from other projects whithout checking separatly when passing a scope4200 .project_disabled_features_rules4201 wiki named abilities4202 disables wiki abilities if the project has no wiki4203Mentionable4204 references4205 excludes JIRA references4206Issue Mentionable4207 #mentioned_users4208 should contain exactly #<User id:1631 @stranger>4209 when a note on personal snippet4210 should contain exactly #<User id:1635 @stranger> and #<User id:1637 @jim>4211 #referenced_mentionables4212 with an issue on a private project4213 when the current user can see the issue4214 includes the reference4215 when the current user cannot see the issue4216 does not include the reference4217 when there is no current user4218 does not include the reference4219 #create_cross_references!4220 correctly removes already-mentioned Commits4221 #create_new_cross_references!4222 before changes are persisted4223 ignores pre-existing references4224 notifies new references4225 after changes are persisted4226 ignores pre-existing references4227 notifies new references4228 notifies new references from project snippet note4229Commit Mentionable4230 #matches_cross_reference_regex?4231 is false when message doesn't reference anything4232 is true if issue #number mentioned in title4233 is true if references an MR4234 is true if references a commit4235 is true if issue referenced by url4236 with external issue tracker4237 is true if external issues referenced4238 is true if internal issues referenced4239Ci::BuildPresenter4240 inherits from Gitlab::View::Presenter::Delegated4241 #initialize4242 takes a build and optional params4243 exposes build4244 forwards missing methods to build4245 #erased_by_user?4246 takes a build and optional params4247 #erased_by_name4248 when build is not erased4249 returns nil4250 when build is erased4251 returns the name of the eraser4252 #status_title4253 when build is auto-canceled4254 shows that the build is auto-canceled4255 when build failed4256 returns the reason of failure4257 when build has failed && retried4258 does not include retried title4259 when build has failed and is allowed to4260 returns the reason of failure4261 For any other build4262 returns the status4263 quack like a Ci::Build permission-wise4264 user is not allowed4265 returns false4266 user is allowed4267 returns true4268 #trigger_variables4269 when variable is stored in ci_pipeline_variables4270 when pipeline is triggered by trigger API4271 returns variables4272 when pipeline is not triggered by trigger API4273 does not return variables4274 when variable is stored in ci_trigger_requests.variables4275 returns variables4276 #tooltip_message4277 When build has failed4278 returns the reason of failure4279 When build has failed and retried4280 should include the reason of failure and the retried title4281 When build has failed and is allowed to4282 should include the reason of failure4283 For any other build (no retried)4284 should include build name and status4285 For any other build (retried)4286 should include build name and status4287 #callout_failure_message4288 returns a verbose failure reason4289 #recoverable?4290 when is a script or missing dependency failure4291 should return false4292 when is any other failure type4293 should return true4294User rebases a merge request4295 when merge is regular4296 behaves like rebases4297 rebases4298 when merge is ff-only4299 behaves like rebases4300 rebases4301Mini Pipeline Graph in Commit View4302 when commit has pipelines4303 display icon with status4304 displays a mini pipeline graph4305 when commit does not have pipelines4306 should not display a mini pipeline graph4307Projects::Clusters::GcpController4308 GET login4309 functionality4310 when omniauth has been configured4311 has authorize_url4312 when omniauth has not configured4313 does not have authorize_url4314 security4315 should be allowed for admin. Expected: 200,201,204,302 Got: 2004316 should be allowed for owner. Expected: 200,201,204,302 Got: 2004317 should be allowed for master. Expected: 200,201,204,302 Got: 2004318 should be denied for developer. Expected: 401,404 Got: 4044319 should be denied for reporter. Expected: 401,404 Got: 4044320 should be denied for guest. Expected: 401,404 Got: 4044321 should be denied for user. Expected: 401,404 Got: 4044322 should be denied for external. Expected: 401,404 Got: 4044323 GET new4324 functionality4325 when access token is valid4326 has new object4327 when access token is expired4328 should redirect to "/namespace1217/project1315/clusters/providers/gcp/login"4329 when access token is not stored in session4330 should redirect to "/namespace1217/project1315/clusters/providers/gcp/login"4331 security4332 should be allowed for admin. Expected: 200,201,204,302 Got: 3024333 should be allowed for owner. Expected: 200,201,204,302 Got: 3024334 should be allowed for master. Expected: 200,201,204,302 Got: 3024335 should be denied for developer. Expected: 401,404 Got: 4044336 should be denied for reporter. Expected: 401,404 Got: 4044337 should be denied for guest. Expected: 401,404 Got: 4044338 should be denied for user. Expected: 401,404 Got: 4044339 should be denied for external. Expected: 401,404 Got: 4044340 POST create4341 functionality4342 when access token is valid4343 creates a new cluster4344 when access token is expired4345 redirects to login page4346 when access token is not stored in session4347 redirects to login page4348 security4349 should be allowed for admin. Expected: 200,201,204,302 Got: 3024350 should be allowed for owner. Expected: 200,201,204,302 Got: 3024351 should be allowed for master. Expected: 200,201,204,302 Got: 3024352 should be denied for developer. Expected: 401,404 Got: 4044353 should be denied for reporter. Expected: 401,404 Got: 4044354 should be denied for guest. Expected: 401,404 Got: 4044355 should be denied for user. Expected: 401,404 Got: 4044356 should be denied for external. Expected: 401,404 Got: 4044357Import::GitlabController4358 GET callback4359 updates access token4360 GET status4361 assigns variables4362 does not show already added project4363 POST create4364 returns 200 response when the project is imported successfully4365 returns 422 response when the project could not be imported4366 when the repository owner is the GitLab.com user4367 when the GitLab.com user and GitLab server user's usernames match4368 takes the current user's namespace4369 when the GitLab.com user and GitLab server user's usernames don't match4370 takes the current user's namespace4371 when the repository owner is not the GitLab.com user4372 when a namespace with the GitLab.com user's username already exists4373 when the namespace is owned by the GitLab server user4374 takes the existing namespace4375 when the namespace is not owned by the GitLab server user4376 doesn't create a project4377 when a namespace with the GitLab.com user's username doesn't exist4378 when current user can create namespaces4379 creates the namespace4380 takes the new namespace4381 when current user can't create namespaces4382 doesn't create the namespace4383 takes the current user's namespace4384 user has chosen an existing nested namespace for the project4385 takes the selected namespace and name (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4386 user has chosen a non-existent nested namespaces for the project4387 takes the selected namespace and name (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4388 creates the namespaces (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4389 new namespace has the right parent (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4390 user has chosen existent and non-existent nested namespaces and name for the project4391 takes the selected namespace and name (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4392 creates the namespaces (PENDING: around hook at ./spec/spec_helper.rb:202 did not execute the example)4393 when user can not create projects in the chosen namespace4394 returns 422 response4395list of badges4396 user wants to see build status badge4397 user wants to see coverage report badge4398 user changes current ref of build status badge4399Sub-group project issue boards4400 creates new label from sidebar4401Issues::ResolveDiscussions4402 for resolving discussions4403 #merge_request_for_resolving_discussion4404 finds the merge request4405 only queries for the merge request once4406 #discussions_to_resolve4407 contains a single discussion when matching merge request and discussion are passed4408 contains all discussions when only a merge request is passed4409 contains only unresolved discussions4410 is empty when a discussion and another merge request are passed4411User views open merge requests4412 when project is public4413 when not signed in4414 when the target branch is the project's default branch4415 shows merge requests4416 shows open merge requests4417 does not show target branch name4418 when the target branch is different from the project's default branch4419 shows target branch name4420 when a merge request has pipelines4421 shows pipeline status4422 when signed in4423 shows merge requests4424 shows the new merge request button4425 when the project is archived4426 hides the new merge request button4427 when project is internal4428 when signed in4429 shows merge requests4430Gitlab::Verify::JobArtifacts4431 behaves like Gitlab::Verify::BatchVerifier subclass4432 batching4433 iterates through objects in batches4434 allows the starting ID to be specified4435 allows the finishing ID to be specified4436 #run_batches4437 passes artifacts with the correct file4438 fails artifacts with a missing file4439 fails artifacts with a mismatched checksum4440 with remote files4441 passes artifacts in object storage that exist4442 fails artifacts in object storage that do not exist4443API::Snippets4444 GET /snippets/4445 returns snippets available4446 hides private snippets from regular user4447 returns 404 for non-authenticated4448 does not return snippets related to a project with disable feature visibility4449 GET /snippets/public4450 returns all snippets with public visibility from all users4451 GET /snippets/:id/raw4452 returns raw text4453 returns 404 for invalid snippet id4454 GET /snippets/:id4455 returns snippet json4456 returns 404 for invalid snippet id4457 POST /snippets/4458 creates a new snippet4459 returns 400 for missing parameters4460 when the snippet is spam4461 when the snippet is private4462 creates the snippet4463 when the snippet is public4464 rejects the shippet4465 creates a spam log4466 PUT /snippets/:id4467 updates snippet4468 returns 404 for invalid snippet id4469 returns 404 for another user's snippet4470 returns 400 for missing parameters4471 when the snippet is spam4472 when the snippet is private4473 updates the snippet4474 when the snippet is public4475 rejects the shippet4476 creates a spam log4477 when a private snippet is made public4478 rejects the snippet4479 creates a spam log4480 DELETE /snippets/:id4481 deletes snippet4482 returns 404 for invalid snippet id4483 behaves like 412 response4484 for a modified ressource4485 returns 4124486 for an unmodified ressource4487 returns accepted4488 GET /snippets/:id/user_agent_detail4489 exposes known attributes4490 returns unautorized for non-admin users4491Gitlab::DataBuilder::Build4492 .build4493 should be a kind of Hash4494 should eq "master"4495 should eq "97de212e80737a608d939f648d959671fb0a0142"4496 should eq false4497 should eq 2234498 should eq "pending"4499 should eq false4500 should eq 13754501 should eq "John Doe1892 / project1363"4502 commit author_url4503 when no commit present4504 sets to mailing address of git_author_email4505 when commit present but has no author4506 sets to mailing address of git_author_email4507 when commit and author are present4508 sets to GitLab user url4509Gitlab::GithubImport::Importer::PullRequestImporter4510 #execute4511 imports the pull request4512 #create_merge_request4513 when the author could be found4514 imports the pull request with the pull request author as the merge request author4515 returns the created merge request4516 when the author could not be found4517 imports the pull request with the project creator as the merge request author4518 when the source and target branch are identical4519 uses a generated source branch name for the merge request4520 when the import fails due to a foreign key error4521 does not raise any errors4522 when the merge request already exists4523 returns the existing merge request4524 #insert_git_data4525 creates the merge request diffs4526 creates the merge request diff commits4527 when the merge request exists4528 creates the merge request diffs if they do not yet exist4529Gitlab::MultiCollectionPaginator4530 combines both collections4531 includes elements second collection if first collection is empty4532 with a full first page4533 knows the total count of the collection4534 fills the first page with elements of the first collection4535 fils the second page with a mixture of of the first & second collection4536 fils the last page with elements from the second collection4537ci/status/_badge4538 when rendering status for build4539 when user has ability to see details4540 has link to build details page4541 when user do not have ability to see build details4542 contains build status text4543 does not contain links4544 when rendering status for external job4545 when user has ability to see commit status details4546 status has external target url4547 contains valid commit status text4548 has link to external status page4549 status do not have external target url4550 contains valid commit status text4551 has link to external status page4552StuckMergeJobsWorker4553 perform4554 merge job identified as completed4555 updates merge request to merged when locked but has merge_commit_sha4556 updates merge request to opened when locked but has not been merged4557 logs updated stuck merge job ids4558 merge job not identified as completed4559 does not change merge request state when job is not completed yet4560NamespacelessProjectDestroyWorker4561 #perform4562 project has namespace4563 does not do anything4564 project has no namespace4565 project not a fork of another project4566 truncates the project's team4567 deletes the project4568 does not call unlink_fork4569 does not do anything in Project#remove_pages method4570 project forked from another4571 closes open merge requests4572 destroys the link4573 project has non-existing namespace4574 deletes the project4575User activates Prometheus4576 activates service4577OmniauthCallbacksController4578 when the user is on the last sign in attempt4579 when using a form based provider4580 locks the user when sign in fails4581 when using a button based provider4582 does not lock the user when sign in fails4583 strategies4584 github4585 allows sign in4586 sign up4587 is allowed4588 when OAuth is disabled4589 prevents login via POST4590 shows warning when attempting login4591 allows linking the disabled provider4592 sign up4593 is prevented4594 auth04595 does not allow sign in without extern_uid4596OpenID Connect requests4597 Application without OpenID scope4598 token response does not include an ID token4599 userinfo response is unauthorized4600 Application with OpenID scope4601 token response includes an ID token4602 UserInfo payload4603 includes all user information and group memberships4604 ID token payload4605 includes the Gitlab root URL4606 includes the hashed user ID4607 includes the time of the last authentication4608 does not include any unknown properties4609 when user is blocked4610 returns authentication error4611 when user is ldap_blocked4612 returns authentication error4613 OpenID configuration information4614 correctly returns the configuration4615ExtractsPath4616 #assign_ref_vars4617 log tree path has no escape sequences4618 ref contains %204619 is not converted to a space in @id4620 path contains space4621 is not converted to %20 in @path4622 subclass overrides get_id4623 uses ref returned by get_id4624 ref only exists without .atom suffix4625 with a path4626 renders a 4044627 without a path4628 sets the un-suffixed version as @ref4629 sets the request format to Atom4630 ref exists with .atom suffix4631 with a path4632 sets the suffixed version as @ref4633 does not change the request format4634 without a path4635 sets the suffixed version as @ref4636 does not change the request format4637 #extract_ref4638 returns an empty pair when no @project is set4639 without a path4640 extracts a valid branch4641 extracts a valid tag4642 extracts a valid commit ref without a path4643 falls back to a primitive split for an invalid ref4644 extracts the longest matching ref4645 with a path4646 extracts a valid branch4647 extracts a valid tag4648 extracts a valid commit SHA4649 falls back to a primitive split for an invalid ref4650 #extract_ref_without_atom4651 ignores any matching refs suffixed with atom4652 returns the longest matching ref4653 returns nil if there are no matching refs4654Milestones::DestroyService4655 #execute4656 deletes milestone4657 deletes milestone id from issuables4658 group milestones4659 should be nil4660 does not update milestone issuables4661Dashboard Group4662 defaults sort dropdown to last created4663 creates new group4664forked project import4665 can access the MR4666ProjectGroupLink4667 Associations4668 should belong to group4669 should belong to project4670 Validation4671 should validate that :project_id cannot be empty/falsy4672 should validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure4673 should validate that :group cannot be empty/falsy4674 should validate that :group_access cannot be empty/falsy4675 doesn't allow a project to be shared with the group it is in4676 doesn't allow a project to be shared with an ancestor of the group it is in (PENDING: around hook at ./spec/spec_helper.rb:198 did not execute the example)4677 destroying a record4678 refreshes group users' authorized projects4679User explores projects4680 when not signed in4681 when viewing public projects4682 shows projects4683 when signed in4684 when viewing public projects4685 shows projects4686 when viewing most starred projects4687 shows projects4688 when viewing trending projects4689 shows projects4690Wiki shortcuts4691 Visit edit wiki page using "e" keyboard shortcut4692Gitlab::Ci::Status::Build::Common4693 #has_action?4694 should not have action4695 #has_details?4696 when user has access to read build4697 should have details4698 when user does not have access to read build4699 should not have details4700 #details_path4701 links to the build details page4702 #illustration4703 provides a fallback empty state illustration4704Gitlab::Git::Commit4705 Commit info4706 should eq "0e0c2994cde"4707 should eq "0e0c2994cde7a5de156897cdf354be4a24ea91f3"4708 should eq "0e0c2994cde7a5de156897cdf354be4a24ea91f3"4709 should eq "Refactoring specs"4710 should eq 2018-06-26 13:53:04.000000000 +00004711 should eq 2018-06-26 13:53:04.000000000 +00004712 should eq "john@smith.com"4713 should eq "John Smith"4714 should eq "Mike Smith"4715 should eq "mike@smith.com"4716 should be truthy4717 should eq [#<Gitlab::Git::Commit:0x000055c68eff8ca0 @repository=#<Gitlab::Git::Repository:0x000055c68eff8e08 @s...arent_ids=["0e50ec4d3c7ce42ab74dda1d422cb2cbffe1e326", "0e1b353b348f8477bdbec1ef47087171c5032cd9"]>]4718 should eq "4b4918a572fa86f9771e5ba40fbd48e1eb03e2c6"4719 should eq "--no commit message"4720 Commit info from gitaly commit4721 should eq "7ca344d30c5"4722 should eq "0a3181906977d6c638e26b6c40566820f7e97d3e"4723 should eq "9f5220f4e849107c465ca7804d33d3ef3e6f1db9"4724 should eq "My commitMy body"4725 should eq 2018-06-26 13:53:04.000000000 +00004726 should eq "user2039@example.org"4727 should eq "John Doe2080"4728 should eq "John Doe2083"4729 should eq "user2046@example.org"4730 should eq ["bd703ff4859055b687e46045dbd82fd7f7c92d98", "509fc6b481d16729e15fff327fb5089ce9348235"]4731 body_size != body.size4732 zero body_size4733 should eq "My commit"4734 body_size less than threshold4735 fetches commit message seperately4736 body_size greater than threshold4737 returns the suject plus a notice about message size4738 Class methods4739 .find4740 should return first head commit if without params4741 should return valid commit4742 returns an array of parent ids4743 should return valid commit for tag4744 should return nil for non-commit ids4745 should return nil for parent of non-commit object4746 should return nil for nonexisting ids4747 with broken repo4748 returns nil4749 .last_for_path4750 no path4751 #id4752 should eq "4b4918a572fa86f9771e5ba40fbd48e1eb03e2c6"4753 path4754 #id4755 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4756 ref + path4757 #id4758 should eq "913c66a37b4a45b9769037c55c2d238bd0942d2e"4759 .where with gitaly4760 it should behave like .where4761 path is empty string4762 has 10 elements4763 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4764 path is nil4765 has 10 elements4766 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4767 ref is branch name4768 has 3 elements4769 should include "d14d6c0abdd253381df51a723d58691b2ee1ab08"4770 should not include "eb49186cfa5c4338011f5f590fac11bd66c5c631"4771 ref is commit id4772 has 3 elements4773 should include "2f63565e7aac07bcdadb654e253078b727143ec4"4774 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4775 ref is tag4776 has 3 elements4777 should include "874797c3a73b60d2187ed6e2fcabd289ff75171e"4778 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4779 .where without gitaly4780 it should behave like .where4781 path is empty string4782 has 10 elements4783 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4784 path is nil4785 has 10 elements4786 should include "b0e52af38d7ea43cf41d8a6f2471351ac036d6c9"4787 ref is branch name4788 has 3 elements4789 should include "d14d6c0abdd253381df51a723d58691b2ee1ab08"4790 should not include "eb49186cfa5c4338011f5f590fac11bd66c5c631"4791 ref is commit id4792 has 3 elements4793 should include "2f63565e7aac07bcdadb654e253078b727143ec4"4794 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4795 ref is tag4796 has 3 elements4797 should include "874797c3a73b60d2187ed6e2fcabd289ff75171e"4798 should not include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4799 .between4800 has 1 element4801 should include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4802 should not include "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"4803 .shas_with_signatures with gitaly on4804 it should behave like .shas_with_signatures4805 has 2 signed shas4806 has 0 signed shas4807 has 1 signed sha4808 .shas_with_signatures with gitaly disabled4809 it should behave like .shas_with_signatures4810 has 2 signed shas4811 has 0 signed shas4812 has 1 signed sha4813 .find_all4814 when Gitaly find_all_commits feature is enabled4815 behaves like finding all commits4816 should return a return a collection of commits4817 max_count4818 has 34 elements4819 includes the expected commits4820 ref + max_count + skip4821 has 24 elements4822 includes the expected commits4823 when Gitaly find_all_commits feature is disabled4824 behaves like finding all commits4825 should return a return a collection of commits4826 max_count4827 has 34 elements4828 includes the expected commits4829 ref + max_count + skip4830 has 24 elements4831 includes the expected commits4832 while applying a sort order based on the `order` option4833 allows ordering topologically (no parents shown before their children)4834 allows ordering by date4835 applies no sorting by default4836 #batch_by_oid4837 when oids is empty4838 makes no Gitaly request4839 .extract_signature_lazily4840 with Gitaly extract_commit_signature_in_batch feature enabled4841 behaves like extracting commit signature4842 when the commit is signed4843 returns signature and signed text4844 when the commit has no signature4845 returns nil4846 when the commit cannot be found4847 returns nil4848 when the commit ID is invalid4849 raises ArgumentError4850 behaves like loading signatures in batch once4851 fetches signatures in batch once4852 with Gitaly extract_commit_signature_in_batch feature disabled4853 behaves like extracting commit signature4854 when the commit is signed4855 returns signature and signed text4856 when the commit has no signature4857 returns nil4858 when the commit cannot be found4859 returns nil4860 when the commit ID is invalid4861 raises ArgumentError4862 behaves like loading signatures in batch once4863 fetches signatures in batch once4864 .extract_signature4865 with gitaly4866 behaves like extracting commit signature4867 when the commit is signed4868 returns signature and signed text4869 when the commit has no signature4870 returns nil4871 when the commit cannot be found4872 returns nil4873 when the commit ID is invalid4874 raises ArgumentError4875 without gitaly4876 behaves like extracting commit signature4877 when the commit is signed4878 returns signature and signed text4879 when the commit has no signature4880 returns nil4881 when the commit cannot be found4882 returns nil4883 when the commit ID is invalid4884 raises ArgumentError4885 #init_from_rugged4886 #id4887 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4888 #init_from_hash4889 #id4890 should eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4891 #message4892 should eq "tree css fixes"4893 #stats with gitaly on4894 it should behave like #stats4895 #additions4896 should eq 114897 #deletions4898 should eq 64899 #total4900 should eq 174901 #stats with gitaly disabled4902 it should behave like #stats4903 #additions4904 should eq 114905 #deletions4906 should eq 64907 #total4908 should eq 174909 #has_zero_stats?4910 should eq false4911 #to_hash4912 should be a kind of Hash4913 #keys4914 should match [:author_email, :author_name, :authored_date, :committed_date, :committer_email, :committer_name, :id, :message, :parent_ids]4915 #diffs4916 should be a kind of Gitlab::Git::DiffCollection4917 should eq 24918 should be a kind of Gitlab::Git::Diff4919 #ref_names4920 has 2 element4921 should include "master"4922 should not include "feature"4923 .get_message4924 when Gitaly commit_messages feature is enabled4925 gets messages in one batch4926 behaves like getting commit messages4927 gets commit messages4928 when Gitaly commit_messages feature is disabled4929 behaves like getting commit messages4930 gets commit messages4931Admin::Projects4932 GET /admin/projects4933 should be allowed for admin4934 should be denied for user4935 should be denied for visitor4936 should be denied for auditor4937 GET /admin/users4938 should be allowed for admin4939 should be denied for user4940 should be denied for visitor4941 should be denied for auditor4942 GET /admin/hooks4943 should be allowed for admin4944 should be denied for user4945 should be denied for visitor4946 should be denied for auditor4947Gitlab::FileFinder4948 #find4949 behaves like file finder4950 finds by name4951 finds by content4952Projects::MirrorsController4953 setting up a remote mirror4954 when the current project is not a mirror49552018-06-26T13:53:08.520Z 90 TID-gpqvom9se INFO: Removing remote remote_mirror_7 from project 147149562018-06-26T13:53:08.526Z 90 TID-gpqvom9se ERROR: Could not remove remote remote_mirror_7 from project 14714957 allows to create a remote mirror4958 #update4959 With valid URL for a push4960 processes a successful update4961 should create a RemoteMirror object4962 With invalid URL for a push4963 processes an unsuccessful update4964 should not create a RemoteMirror object4965Projects::OpenIssuesCountService4966 #count4967 when user is nil4968 does not include confidential issues in the issue count4969 when user is provided4970 when user can read confidential issues4971 returns the right count with confidential issues4972 uses total_open_issues_count cache key4973 when user cannot read confidential issues4974 does not include confidential issues4975 uses public_open_issues_count cache key4976Clusters::ClusterPolicy4977 rules4978 when developer4979 should be disallowed :update_cluster4980 should be disallowed :admin_cluster4981 when master4982 should be allowed :update_cluster4983 should be allowed :admin_cluster4984Issue prioritization4985 when issues have one label4986 Are sorted properly4987 when issues have multiple labels4988 Are sorted properly4989projects/settings/ci_cd/_autodevops_form4990 when kubernetes is not active4991 when auto devops domain is not defined4992 shows warning message4993 when auto devops domain is defined4994 shows warning message4995 when kubernetes is active4996 when auto devops domain is not defined4997 shows warning message4998 when auto devops domain is defined4999 does not show warning message5000Email5001 normalize email value5002 validations5003 behaves like an object with email-formated attributes5004 specifically its :email attribute5005 with a value of 'info@example.com'5006 is valid5007 with a value of 'info+test@example.com'5008 is valid5009 with a value of 'o'reilly@example.com'5010 is valid5011 with a value of 'mailto:test@example.com'5012 is valid5013 with a value of 'lol!'+=?><#$%^&*()@gmail.com'5014 is valid5015 with a value of 'foobar'5016 is invalid5017 with a value of 'test@test@example.com'5018 is invalid5019 #update_invalid_gpg_signatures5020 synchronizes the gpg keys when the email is updated5021 scopes5022 scopes confirmed emails5023 delegation5024 delegates to :user5025PagesDomain5026 associations5027 should belong to project5028 validate domain5029 is unique5030 should validate that :domain is case-insensitively unique5031 hostname5032 domain "my.domain.com" validity5033 should eq true5034 domain "123.456.789" validity5035 should eq true5036 domain "0x12345.com" validity5037 should eq true5038 domain "0123123" validity5039 should eq true5040 domain "_foo.com" validity5041 should eq false5042 domain "reserved.com" validity5043 should eq false5044 domain "a.reserved.com" validity5045 should eq false5046 domain nil validity5047 should eq false5048 HTTPS-only5049 pages_https_only: true, certificate: nil, key: nil, errors_on: [:certificate, :key]5050 is adds the expected errors5051 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, errors_on: [:key]5052 is adds the expected errors5053 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", errors_on: [:certificate, :key]5054 is adds the expected errors5055 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", errors_on: []5056 is adds the expected errors5057 pages_https_only: false, certificate: nil, key: nil, errors_on: []5058 is adds the expected errors5059 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: nil, errors_on: [:key]5060 is adds the expected errors5061 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", errors_on: [:key]5062 is adds the expected errors5063 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIICGzCCAYSgAwIBAgIBATANBgkqhkiG9w0BAQUFADAbMRkwFwYDVQQDExB0ZXN0\nLWNlcnRpZmljYXRlMB4XDTE2MDIxMjE0MzIwMFoXDTIwMDQxMjE0MzIwMFowGzEZ\nMBcGA1UEAxMQdGVzdC1jZXJ0aWZpY2F0ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw\ngYkCgYEApL4J9L0ZxFJ1hI1LPIflAlAGvm6ZEvoT4qKU5Xf2JgU7/2geNR1qlNFa\nSvCc08Knupp5yTgmvyK/Xi09U0N82vvp4Zvr/diSc4A/RA6Mta6egLySNT438kdT\nnY2tR5feoTLwQpX0t4IMlwGQGT5h6Of2fKmDxzuwuyffcIHqLdsCAwEAAaNvMG0w\nDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxl9WSxBprB0z0ibJs3rXEk0+95AwCwYD\nVR0PBAQDAgXgMBEGCWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNh\nIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGC4T8SlFHK0yPSa+idGLQFQ\njoZp2JHYvNlTPkRJ/J4TcXxBTJmArcQgTIuNoBtC+0A/SwdK4MfTCUY4vNWNdese\n5A4K65Nb7Oh1AdQieTBHNXXCdyFsva9/ScfQGEl7p55a52jOPs0StPd7g64uvjlg\nYHi2yesCrOvVXt+lgPTd\n-----END CERTIFICATE-----", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----", errors_on: []5064 is adds the expected errors5065 validate certificate5066 with matching key5067 should be valid5068 when no certificate is specified5069 should not be valid5070 when no key is specified5071 should not be valid5072 for not matching key5073 should not be valid5074 validations5075 should validate that :verification_code cannot be empty/falsy5076 #verification_code5077 is set automatically with 128 bits of SecureRandom data5078 #keyed_verification_code5079 should eq "gitlab-pages-verification-code=47e3d361fdc11489ce41e824eec1ea6d"5080 #verification_domain5081 should be nil5082 is a well-known subdomain if the domain is present5083 #url5084 should eq "https://my14.domain.com"5085 without the certificate5086 should eq "http://my15.domain.com"5087 #has_matching_key?5088 should be truthy5089 for invalid key5090 should be falsey5091 #has_intermediates?5092 for self signed5093 should be truthy5094 for missing certificate chain5095 should be falsey5096 for trusted certificate chain5097 should be truthy5098 #expired?5099 for valid5100 should be falsey5101 for expired5102 should be truthy5103 #subject5104 should eq "/CN=test-certificate"5105 #certificate_text5106 should not be empty5107 #https?5108 when a certificate is present5109 should be https5110 when no certificate is present5111 should not be https5112 #update_daemon5113 runs when the domain is created5114 runs when the domain is destroyed5115 delegates to Projects::UpdatePagesConfigurationService5116 configuration updates when attributes change5117 attribute: :project, old_value: nil, new_value: :project1, update_expected: true5118 runs if a relevant attribute has changed5119 attribute: :project, old_value: :project1, new_value: :project1, update_expected: false5120 runs if a relevant attribute has changed5121 attribute: :project, old_value: :project1, new_value: :project2, update_expected: true5122 runs if a relevant attribute has changed5123 attribute: :project, old_value: :project1, new_value: nil, update_expected: true5124 runs if a relevant attribute has changed5125 attribute: :domain, old_value: "a.com", new_value: "a.com", update_expected: false5126 runs if a relevant attribute has changed5127 attribute: :domain, old_value: "a.com", new_value: "b.com", update_expected: true5128 runs if a relevant attribute has changed5129 attribute: :verification_code, old_value: "foo", new_value: "foo", update_expected: false5130 runs if a relevant attribute has changed5131 attribute: :verification_code, old_value: "foo", new_value: "bar", update_expected: false5132 runs if a relevant attribute has changed5133 attribute: :verified_at, old_value: nil, new_value: 2018-06-26 13:40:09 +0000, update_expected: false5134 runs if a relevant attribute has changed5135 attribute: :verified_at, old_value: 2018-06-26 13:40:09 +0000, new_value: 2018-06-26 13:40:09 +0000, update_expected: false5136 runs if a relevant attribute has changed5137 attribute: :verified_at, old_value: 2018-06-26 13:40:09 +0000, new_value: 2018-06-27 13:40:09 +0000, update_expected: false5138 runs if a relevant attribute has changed5139 attribute: :verified_at, old_value: 2018-06-26 13:40:09 +0000, new_value: nil, update_expected: false5140 runs if a relevant attribute has changed5141 attribute: :enabled_until, old_value: nil, new_value: 2018-06-26 13:40:09 +0000, update_expected: true5142 runs if a relevant attribute has changed5143 attribute: :enabled_until, old_value: 2018-06-26 13:40:09 +0000, new_value: 2018-06-26 13:40:09 +0000, update_expected: false5144 runs if a relevant attribute has changed5145 attribute: :enabled_until, old_value: 2018-06-26 13:40:09 +0000, new_value: 2018-06-27 13:40:09 +0000, update_expected: false5146 runs if a relevant attribute has changed5147 attribute: :enabled_until, old_value: 2018-06-26 13:40:09 +0000, new_value: nil, update_expected: true5148 runs if a relevant attribute has changed5149 TLS configuration5150 updates when added5151 updates when changed5152 updates when removed5153projects/services/_form5154 commit_events and merge_request_events5155 display merge_request_events and commit_events descriptions5156 when service is JIRA5157 display merge_request_events and commit_events descriptions5158Gitlab::Ci::Pipeline::Chain::Populate5159 when pipeline doesn not have seeds block5160 does not persist the pipeline5161 does not break the chain5162 populates pipeline with stages5163 correctly assigns user5164 has pipeline iid5165 when pipeline is empty5166 breaks the chain5167 appends an error about missing stages5168 wastes pipeline iid5169 when pipeline has validation errors5170 breaks the chain5171 appends validation error5172 wastes pipeline iid5173 when there is a seed blocks present5174 when seeds block builds some resources5175 populates pipeline with resources described in the seeds block5176 has pipeline iid5177 when seeds block tries to persist some resources5178 raises exception5179WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<ActiveRecord::RecordNotSaved: You cannot call create unless the parent is saved>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab-ee/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb:144:in `block (4 levels) in <top (required)>'.5180 wastes pipeline iid5181 when pipeline gets persisted during the process5182 raises error5183 when variables policy is specified5184 when using only/except build policies5185 behaves like a correct pipeline5186 populates pipeline according to used policies5187 when variables expression is specified5188 when pipeline iid is the subject5189 behaves like a correct pipeline5190 populates pipeline according to used policies5191NoteSummary5192 #metadata?5193 returns true when metadata present5194 returns false when metadata not present5195 #note5196 returns note hash5197 when noteable is a commit5198 returns note hash specific to commit5199 #metadata5200 returns metadata hash5201Gitlab::GithubImport::AdvanceStageWorker5202 #perform5203 when the project no longer exists5204 does not perform any work5205 when there are remaining jobs5206 reschedules itself5207 when there are no remaining jobs5208 schedules the next stage5209 raises KeyError when the stage name is invalid5210 #wait_for_jobs5211 waits for jobs to complete and returns a new pair of keys to wait for5212 #find_project5213 returns a Project5214 returns nil if the project import is not running5215RuboCop::Cop::LineBreakAroundConditionalBlock5216 doesn't flag violation for if with elsif5217 behaves like examples with conditional5218 flags violation for if without line break before5219 flags violation for if without line break after5220 doesn't flag violation for if with line break before and after5221 doesn't flag violation for if preceded by a method definition5222 doesn't flag violation for if preceded by a class definition5223 doesn't flag violation for if preceded by a module definition5224 doesn't flag violation for if preceded by a begin definition5225 doesn't flag violation for if preceded by an assign/begin definition5226 doesn't flag violation for if preceded by a block definition5227 doesn't flag violation for if preceded by a block definition using brackets5228 doesn't flag violation for if preceded by a comment5229 doesn't flag violation for if preceded by an assignment5230 doesn't flag violation for if preceded by a multiline comment5231 doesn't flag violation for if preceded by another conditional5232 doesn't flag violation for if preceded by an else5233 doesn't flag violation for if preceded by an elsif5234 doesn't flag violation for if preceded by an ensure5235 doesn't flag violation for if preceded by a when5236 doesn't flag violation for if followed by a comment5237 doesn't flag violation for if followed by an end5238 doesn't flag violation for if followed by an else5239 doesn't flag violation for if followed by a when5240 doesn't flag violation for if followed by an elsif5241 doesn't flag violation for if followed by a rescue5242Parser::Source::Rewriter is deprecated.5243Please update your code to use Parser::Source::TreeRewriter instead5244 autocorrects if without line break before5245 autocorrects if without line break after5246 autocorrects if without line break before and after5247 behaves like examples with conditional5248 flags violation for unless without line break before5249 flags violation for unless without line break after5250 doesn't flag violation for unless with line break before and after5251 doesn't flag violation for unless preceded by a method definition5252 doesn't flag violation for unless preceded by a class definition5253 doesn't flag violation for unless preceded by a module definition5254 doesn't flag violation for unless preceded by a begin definition5255 doesn't flag violation for unless preceded by an assign/begin definition5256 doesn't flag violation for unless preceded by a block definition5257 doesn't flag violation for unless preceded by a block definition using brackets5258 doesn't flag violation for unless preceded by a comment5259 doesn't flag violation for unless preceded by an assignment5260 doesn't flag violation for unless preceded by a multiline comment5261 doesn't flag violation for unless preceded by another conditional5262 doesn't flag violation for unless preceded by an else5263 doesn't flag violation for unless preceded by an elsif5264 doesn't flag violation for unless preceded by an ensure5265 doesn't flag violation for unless preceded by a when5266 doesn't flag violation for unless followed by a comment5267 doesn't flag violation for unless followed by an end5268 doesn't flag violation for unless followed by an else5269 doesn't flag violation for unless followed by a when5270 doesn't flag violation for unless followed by an elsif5271 doesn't flag violation for unless followed by a rescue5272 autocorrects unless without line break before5273 autocorrects unless without line break after5274 autocorrects unless without line break before and after5275gitlab:uploads rake tasks5276 check5277 outputs the integrity check for each batch5278 errors out about missing files on the file system5279 errors out about invalid checksum5280RenameMoreReservedProjectNames5281 #up5282 when project repository exists5283 when no exception is raised5284 renames project with reserved names5285 when exception is raised during rename5286 captures exception from project rename5287 when project repository does not exist5288 does not raise error5289ApplicationSetting::TermPolicy5290 has the correct permissions5291 for anonymous users5292 has the correct permissions5293 when the terms are not current5294 has the correct permissions5295 when the user already accepted the terms5296 has the correct permissions5297Global search5298 I search through the issues and I see pagination5299 has a pagination5300PipelineSchedulesFinder5301 #execute5302 when the scope is nil5303 selects all pipeline pipeline schedules5304 when the scope is active5305 selects only active pipelines5306 when the scope is inactve5307 selects only inactive pipelines5308Gitlab::GithubImport::Importer::LabelLinksImporter5309 #execute5310 creates the label links5311 #create_labels5312 inserts the label links in bulk5313 does not insert label links for non-existing labels5314 #find_target_id5315 returns the ID of the issuable to create the label link for5316Projects::ProtectedTagsController5317 GET #index5318 redirects empty repo to projects page5319 DELETE #destroy5320 deletes the protected tag5321CreateNoteDiffFileWorker5322 #perform5323 creates diff file5324Keys::CreateService5325 creates a key5326 notification5327 sends a notification5328RepositoryArchiveCleanUpService5329 #execute (new archive locations)5330 removes outdated archives and directories in a new-style path5331 does not remove directories when they contain outdated non-archives5332 does not remove in-date archives in a new-style path5333 #execute (legacy archive locations)5334 when the downloads directory does not exist5335 does not remove any archives5336 when the downloads directory exists5337 removes files older than 2 hours that matches valid archive extensions5338 with files older than 2 hours that does not matches valid archive extensions5339 behaves like invalid archive files5340 does not remove files and directory5341 with files older than 2 hours inside invalid directories5342 behaves like invalid archive files5343 does not remove files and directory5344 with files newer than 2 hours that matches valid archive extensions5345 behaves like invalid archive files5346 does not remove files and directory5347 with files newer than 2 hours that does not matches valid archive extensions5348 behaves like invalid archive files5349 does not remove files and directory5350 with files newer than 2 hours inside invalid directories5351 behaves like invalid archive files5352 does not remove files and directory5353ProtectedBranches::UpdateService5354 #execute5355 updates a protected branch5356 without admin_project permissions5357 raises error5358 when a policy restricts rule creation5359 prevents creation of the protected branch rule5360Gitlab::GoogleCodeImport::ProjectCreator5361 creates project5362Sortable5363 .order_by5364 does not call reorder in case of unrecognized ordering5365 ordering by id5366 ascending5367 descending5368 ordering by created day5369 ascending5370 descending5371 order by "date"5372 ordering by name5373 ascending5374 descending5375 ordering by Updated Time5376 ascending5377 descending5378 sorting groups5379 sorts groups by id5380 sorts groups by name via case-insentitive comparision5381 sorts groups by created_at5382 sorts groups by updated_at5383Ci::PipelineVariable5384 should includes the HasVariable module5385 should validate that :key is case-sensitively unique within the scope of :pipeline_id5386Gitlab::SlashCommands::Presenters::IssueNew5387 should be a kind of Hash5388 shows the issue5389Users::UpdateService5390 #execute5391 updates the name5392 returns an error result when record cannot be updated5393 includes namespace error messages5394 #execute!5395 updates the name5396 raises an error when record cannot be updated5397 fires system hooks when a new user is saved5398BugzillaService5399 Associations5400 should belong to project5401 should have one service_hook5402 Validations5403 when service is active5404 should validate that :project_url cannot be empty/falsy5405 should validate that :issues_url cannot be empty/falsy5406 should validate that :new_issue_url cannot be empty/falsy5407 behaves like issue tracker service URL attribute5408 should allow :project_url to be ‹"https://example.com"›5409 should not allow :project_url to be ‹"example.com"›5410 should not allow :project_url to be ‹"ftp://example.com"›5411 should not allow :project_url to be ‹"herp-and-derp"›5412 behaves like issue tracker service URL attribute5413 should allow :issues_url to be ‹"https://example.com"›5414 should not allow :issues_url to be ‹"example.com"›5415 should not allow :issues_url to be ‹"ftp://example.com"›5416 should not allow :issues_url to be ‹"herp-and-derp"›5417 behaves like issue tracker service URL attribute5418 should allow :new_issue_url to be ‹"https://example.com"›5419 should not allow :new_issue_url to be ‹"example.com"›5420 should not allow :new_issue_url to be ‹"ftp://example.com"›5421 should not allow :new_issue_url to be ‹"herp-and-derp"›5422 when service is inactive5423 should not validate that :project_url cannot be empty/falsy5424 should not validate that :issues_url cannot be empty/falsy5425 should not validate that :new_issue_url cannot be empty/falsy5426Banzai::ColorParser5427 .parse5428 HEX format5429 parses the valid hex color #abc5430 parses the valid hex color #ABC5431 parses the valid hex color #d2d2d25432 parses the valid hex color #D2D2D25433 parses the valid hex color #123a5434 parses the valid hex color #123A5435 parses the valid hex color #123456aa5436 parses the valid hex color #123456AA5437 does not parse the invalid hex color #5438 does not parse the invalid hex color #15439 does not parse the invalid hex color #125440 does not parse the invalid hex color #12g5441 does not parse the invalid hex color #12G5442 does not parse the invalid hex color #123455443 does not parse the invalid hex color #r2r2r25444 does not parse the invalid hex color #R2R2R25445 does not parse the invalid hex color #12345675446 does not parse the invalid hex color # 1235447 does not parse the invalid hex color # 12345448 does not parse the invalid hex color # 1234565449 does not parse the invalid hex color # 123456785450 does not parse the invalid hex color #1 2 35451 does not parse the invalid hex color #123 45452 does not parse the invalid hex color #12 34 565453 does not parse the invalid hex color #123456 785454 RGB format5455 parses the valid rgb color rgb(0,0,0)5456 parses the valid rgb color rgb(255,255,255)5457 parses the valid rgb color rgb(0, 0, 0)5458 parses the valid rgb color RGB(0,0,0)5459 parses the valid rgb color rgb(0,0,0,0)5460 parses the valid rgb color rgb(0,0,0,0.0)5461 parses the valid rgb color rgb(0,0,0,.0)5462 parses the valid rgb color rgb(0,0,0, 0)5463 parses the valid rgb color rgb(0,0,0, 0.0)5464 parses the valid rgb color rgb(0,0,0, .0)5465 parses the valid rgb color rgb(0,0,0,1)5466 parses the valid rgb color rgb(0,0,0,1.0)5467 parses the valid rgb color rgba(0,0,0)5468 parses the valid rgb color rgba(0,0,0,0)5469 parses the valid rgb color RGBA(0,0,0)5470 parses the valid rgb color rgb(0%,0%,0%)5471 parses the valid rgb color rgba(0%,0%,0%,0%)5472 does not parse the invalid rgb color FOOrgb(0,0,0)5473 does not parse the invalid rgb color rgb(0,0,0)BAR5474 does not parse the invalid rgb color rgb(0,0,-1)5475 does not parse the invalid rgb color rgb(0,0,-0)5476 does not parse the invalid rgb color rgb(0,0,256)5477 does not parse the invalid rgb color rgb(0,0,0,-0.1)5478 does not parse the invalid rgb color rgb(0,0,0,-0.0)5479 does not parse the invalid rgb color rgb(0,0,0,-.1)5480 does not parse the invalid rgb color rgb(0,0,0,1.1)5481 does not parse the invalid rgb color rgb(0,0,0,2)5482 does not parse the invalid rgb color rgba(0,0,0,)5483 does not parse the invalid rgb color rgba(0,0,0,0.)5484 does not parse the invalid rgb color rgba(0,0,0,1.)5485 does not parse the invalid rgb color rgb(0,0,0%)5486 does not parse the invalid rgb color rgb(101%,0%,0%)5487 HSL format5488 parses the valid hsl color hsl(0,0%,0%)5489 parses the valid hsl color hsl(0,100%,100%)5490 parses the valid hsl color hsl(540,0%,0%)5491 parses the valid hsl color hsl(-720,0%,0%)5492 parses the valid hsl color hsl(0deg,0%,0%)5493 parses the valid hsl color hsl(0DEG,0%,0%)5494 parses the valid hsl color hsl(0, 0%, 0%)5495 parses the valid hsl color HSL(0,0%,0%)5496 parses the valid hsl color hsl(0,0%,0%,0)5497 parses the valid hsl color hsl(0,0%,0%,0.0)5498 parses the valid hsl color hsl(0,0%,0%,.0)5499 parses the valid hsl color hsl(0,0%,0%, 0)5500 parses the valid hsl color hsl(0,0%,0%, 0.0)5501 parses the valid hsl color hsl(0,0%,0%, .0)5502 parses the valid hsl color hsl(0,0%,0%,1)5503 parses the valid hsl color hsl(0,0%,0%,1.0)5504 parses the valid hsl color hsla(0,0%,0%)5505 parses the valid hsl color hsla(0,0%,0%,0)5506 parses the valid hsl color HSLA(0,0%,0%)5507 parses the valid hsl color hsl(1rad,0%,0%)5508 parses the valid hsl color hsl(1.1rad,0%,0%)5509 parses the valid hsl color hsl(.1rad,0%,0%)5510 parses the valid hsl color hsl(-1rad,0%,0%)5511 parses the valid hsl color hsl(1RAD,0%,0%)5512 does not parse the invalid hsl color hsl(+0,0%,0%)5513 does not parse the invalid hsl color hsl(0,0,0%)5514 does not parse the invalid hsl color hsl(0,0%,0)5515 does not parse the invalid hsl color hsl(0 deg,0%,0%)5516 does not parse the invalid hsl color hsl(0,-0%,0%)5517 does not parse the invalid hsl color hsl(0,101%,0%)5518 does not parse the invalid hsl color hsl(0,-1%,0%)5519 does not parse the invalid hsl color hsl(0,0%,0%,-0.1)5520 does not parse the invalid hsl color hsl(0,0%,0%,-.1)5521 does not parse the invalid hsl color hsl(0,0%,0%,1.1)5522 does not parse the invalid hsl color hsl(0,0%,0%,2)5523 does not parse the invalid hsl color hsl(0,0%,0%,)5524 does not parse the invalid hsl color hsl(0,0%,0%,0.)5525 does not parse the invalid hsl color hsl(0,0%,0%,1.)5526 does not parse the invalid hsl color hsl(deg,0%,0%)5527 does not parse the invalid hsl color hsl(rad,0%,0%)5528Gitlab::Ci::Build::Policy::Refs5529 #satisfied_by?5530 when matching ref5531 is satisfied when pipeline branch matches5532 is not satisfied when pipeline branch does not match5533 when maching tags5534 when pipeline runs for a tag5535 is satisfied when tags matcher is specified5536 when pipeline is not created for a tag5537 is not satisfied when tag match is specified5538 when also matching a path5539 is satisfied when provided patch matches specified one5540 is not satisfied when path differs5541 when maching a source5542 is satisifed when provided source keyword matches5543 is not satisfied when provided source keyword does not match5544 when matching a ref by a regular expression5545 is satisfied when regexp matches pipeline ref5546 is not satisfied when regexp does not match pipeline ref5547ExpireJobCacheWorker5548 #perform5549 with a job in the pipeline5550 invalidates Etag caching for the job path5551 when there is no job in the pipeline5552 does not change the etag store5553HooksHelper5554 #link_to_test_hook5555 returns project namespaced link5556 returns admin namespaced link5557Gitlab::Auth::LDAP::Config5558 .servers5559 returns empty array if no server information is available5560 #initialize5561 requires a provider5562 works5563 raises an error if a unknown provider is used5564 #adapter_options5565 constructs basic options5566 includes authentication options when auth is configured5567 sets encryption method to simple_tls when configured as simple_tls5568 sets encryption method to start_tls when configured as start_tls5569 when verify_certificates is enabled5570 sets tls_options to OpenSSL defaults5571 when verify_certificates is disabled5572 sets verify_mode to OpenSSL VERIFY_NONE5573 when ca_file is specified5574 passes it through in tls_options5575 when ca_file is a blank string5576 does not add the ca_file key to tls_options5577 when ssl_version is specified5578 passes it through in tls_options5579 when ssl_version is a blank string5580 does not add the ssl_version key to tls_options5581 #omniauth_options5582 constructs basic options5583 includes authentication options when auth is configured5584 when verify_certificates is enabled5585 specifies disable_verify_certificates as false5586 when verify_certificates is disabled5587 specifies disable_verify_certificates as true5588 when ca_file is present5589 passes it through5590 when ca_file is blank5591 does not include the ca_file option5592 when ssl_version is present5593 passes it through5594 when ssl_version is blank5595 does not include the ssl_version option5596 #has_auth?5597 is true when password is set5598 is true when bind_dn is set and password is empty5599 is false when password and bind_dn are not set5600 #attributes5601 uses default attributes when no custom attributes are configured5602 merges the configuration attributes with default attributes5603 #base5604 when the configured base is not normalized5605 returns the normalized base5606 when the configured base is normalized5607 returns the base unaltered5608 when the configured base is malformed5609 returns the base unaltered5610 when the configured base is blank5611 returns the base unaltered5612Gitlab::Ci::Pipeline::Chain::Skip5613 when pipeline has been skipped by a user5614 should break the chain5615 skips the pipeline5616 when pipeline has not been skipped5617 should not break the chain5618 should not skip a pipeline chain5619 when [ci skip] should be ignored5620 does not break the chain5621 when pipeline should be skipped but not persisted5622 breaks the chain5623 does not skip pipeline5624api routing5625 when graphql is disabled5626 does not route to the GraphqlController5627 does not expose graphiql5628 when graphql is disabled5629 routes to the GraphqlController5630 exposes graphiql5631Gitlab::UploadsTransfer5632 leaves avatar uploads where they are5633User visits the profile account page5634 shows correct menu item5635DeleteUserWorker5636 calls the DeleteUserWorker with the params it was given5637 uses symbolized keys5638AnalyticsMergeRequestSerializer5639 when there is a single object provided5640 contains important elements of the merge request5641UploadChecksumWorker5642 #perform5643 without a valid record5644 rescues ActiveRecord::RecordNotFound5645 with a valid record5646 calls calculate_checksum!5647 calls save!5648Appearance5649 example at ./spec/models/appearance_spec.rb:65650 should eq nil5651 should have many uploads5652 #single_appearance_row5653 adds an error when more than 1 row exists5654 with uploads5655 behaves like model with mounted uploader5656 .destroy5657 deletes remote uploads5658 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)5659Profiles::AvatarsController5660 removes avatar from DB by calling destroy5661Gitlab::Sanitizers::SVG5662 .clean5663 delegates sanitization to scrubber5664 returns sanitized data5665 scrubber5666 #scrub5667 removes an invalid element5668 removes an invalid attribute5669 accepts valid element5670 accepts valid namespaced attributes5671 #attribute_name_with_namespace5672 returns name with prefix when attribute is namespaced5673 #unsafe_href?5674 returns true if href attribute is an external url5675 returns false if href atttribute is an internal reference5676 #data_attribute?5677 returns true if is a valid data attribute5678 returns false if attribute is namespaced5679 returns false if not a data attribute5680Gitlab::GithubImport::Importer::DiffNotesImporter5681 #parallel?5682 returns true when running in parallel mode5683 returns false when running in sequential mode5684 #execute5685 when running in parallel mode5686 imports diff notes in parallel5687 when running in sequential mode5688 imports diff notes in sequence5689 #sequential_import5690 imports each diff note in sequence5691 #parallel_import5692 imports each diff note in parallel5693 #id_for_already_imported_cache5694 returns the ID of the given note5695 #collection_options5696 returns an empty Hash5697Gitlab::Auth::BlockedUserTracker5698 .log_if_user_blocked5699 does not log if user failed to login due to undefined reason5700 gracefully handles malformed environment variables5701 failed login due to blocked user5702 via GitLab login5703 logs a blocked user5704 logs a blocked user by e-mail5705 via LDAP login5706 logs a blocked user5707 logs a LDAP blocked user5708Gitlab::Cache::RequestCache5709 when RequestStore is active5710 computes once for different instances when keys are the same5711 computes twice if RequestStore starts over5712 behaves like cache for the same instance5713 does not compute twice for the same argument5714 computes twice for the different argument5715 computes twice for the different class name5716 computes twice for the different method5717 when request_cache_key is provided5718 computes twice for the different keys, id5719 computes twice for the different keys, name5720 uses extra method cache key if provided5721 when RequestStore is inactive5722 computes twice for different instances even if keys are the same5723 behaves like cache for the same instance5724 does not compute twice for the same argument5725 computes twice for the different argument5726 computes twice for the different class name5727 computes twice for the different method5728 when request_cache_key is provided5729 computes twice for the different keys, id5730 computes twice for the different keys, name5731 uses extra method cache key if provided5732Feature5733 .get5734 returns the Flipper feature5735 .persisted_names5736 returns the names of the persisted features5737 returns an empty Array when no features are presisted5738 caches the feature names when request store is active5739 .persisted?5740 returns true for a persisted feature5741 returns false for a feature that is not persisted5742 .all5743 returns the Flipper features as an array5744 .flipper5745 when request store is inactive5746 behaves like a memoized Flipper instance5747 memoizes the Flipper instance5748 when request store is inactive5749 behaves like a memoized Flipper instance5750 memoizes the Flipper instance5751Banzai::Filter::InlineDiffFilter5752 adds inline diff span tags for deletions when using square brackets5753 adds inline diff span tags for deletions when using curley braces5754 does not add inline diff span tags when a closing tag is not provided5755 adds inline span tags for additions when using square brackets5756 adds inline span tags for additions when using curley braces5757 does not add inline diff span tags when a closing addition tag is not provided5758 does not add inline diff span tags when the tags do not match5759 prevents user-land html being injected5760 preserves content inside pre tags5761 preserves content inside code tags5762 preserves content inside tt tags5763PreferencesHelper5764 #dashboard_choices5765 raises an exception when defined choices may be missing5766 raises an exception when defined choices may be using the wrong key5767 provides better option descriptions5768 #user_application_theme5769 with a user5770 returns user's theme's css_class5771 returns the default when id is invalid5772 without a user5773 returns the default theme5774 #user_color_scheme5775 with a user5776 returns user's scheme's css_class5777 returns the default when id is invalid5778 without a user5779 returns the default theme5780Gitaly::Server5781 should respond to #server_version5782 should respond to #git_binary_version5783 should respond to #up_to_date?5784 should respond to #address5785 .all5786 includes all storages5787 request memoization5788 when requesting multiple properties5789 uses memoization for the info request5790RspecFlaky::Report5791 delegates to #flaky_examples using SimpleDelegator5792 .load5793 loads the report file5794 .load_json5795 loads the report file5796 #initialize5797 accepts a RspecFlaky::FlakyExamplesCollection5798 does not accept anything else5799 #write5800 when RspecFlaky::Config.generate_report? is false5801 does not write any report file5802 when RspecFlaky::Config.generate_report? is true5803 delegates the writes to RspecFlaky::Report5804 #prune_outdated5805 returns a new collection without the examples older than 90 days by default5806 accepts a given number of days5807RspecFlaky::Listener5808 #initialize5809 when no report file exists5810 behaves like a valid Listener instance5811 returns a valid Listener instance5812 when SUITE_FLAKY_RSPEC_REPORT_PATH is set5813 and report file exists5814 delegates the load to RspecFlaky::Report5815 and report file does not exist5816 return an empty hash5817 #example_passed5818 when the RSpec example does not respond to attempts5819 behaves like a non-flaky example5820 does not change the flaky examples hash5821 when the RSpec example has 1 attempt5822 behaves like a non-flaky example5823 does not change the flaky examples hash5824 when the RSpec example has 2 attempts5825 behaves like a new flaky example5826 changes the all flaky examples hash5827 with an existing flaky example5828 behaves like an existing flaky example5829 changes the flaky examples hash5830 #dump_summary5831 when a report file path is set by FLAKY_RSPEC_REPORT_PATH5832 delegates the writes to RspecFlaky::Report5833Gitlab::Ci::Pipeline::Expression::Lexer5834 #tokens5835 returns single value5836 does ignore whitespace characters5837 returns multiple values of the same token5838 returns multiple values with different tokens5839 returns tokens and operators5840 limits statement to specified amount of tokens5841 raises syntax error in case of finding unknown tokens5842 #lexemes5843 returns an array of syntax lexemes58446_validations5845 validate_storages_config5846 with correct settings5847 passes through5848 when one of the settings is incorrect5849 throws an error5850 with invalid storage names5851 throws an error5852 validate_storages_paths5853 with correct settings5854 passes through5855 with nested storage paths5856 throws an error5857 with similar but un-nested storage paths5858 passes through5859 inaccessible storage5860 passes through with a warning5861MoveUploadsToSystemDir5862 #up5863 moves the directory to the new path5864 creates a symlink in the old location5865 #down5866 moves the directory to the old path5867 removes the symlink if it existed5868Gitlab::Ci::Pipeline::Expression::Lexeme::Variable5869 .build5870 creates a new instance of the token5871 .type5872 is a value lexeme5873 #evaluate5874 returns variable value if it is defined5875 allows to use a string as a variable key too5876 returns nil if it is not defined5877 returns an empty string if it is empty5878Gitlab::DowntimeCheck::Message5879 #to_s5880 returns an ANSI formatted String for an offline migration5881 returns an ANSI formatted String for an online migration5882 #reason?5883 returns false when no reason is specified5884 returns true when a reason is specified5885 #reason5886 strips excessive whitespace from the returned String5887Gitlab::Metrics::System5888 .memory_usage5889 returns the process' memory usage in bytes5890 .file_descriptor_count5891 returns the amount of open file descriptors5892 .cpu_time5893 returns a Fixnum5894 .real_time5895 returns a Fixnum5896 .monotonic_time5897 returns a Float5898Gitlab::Ci::MaskSecret5899 #mask5900 masks exact number of characters5901 masks multiple occurrences5902 does not mask if not found5903 does support null token5904Gitlab::Ci::Status::Running5905 #text5906 should eq "running"5907 #label5908 should eq "running"5909 #icon5910 should eq "status_running"5911 #favicon5912 should eq "favicon_status_running"5913 #group5914 should eq "running"5915Gitlab::GithubImport::Representation::ToHash5916 #to_hash5917 converts an object to a Hash5918 converts nested objects to Hashes5919 converts Array values to Hashes5920 keeps values as-is if they do not respond to #to_hash5921MergeRequestDiffFile5922 #diff5923 when the diff is marked as binary5924 unpacks from base 645925 when the diff is not marked as binary5926 returns the raw diff5927 #utf8_diff5928 does not raise error when the diff is binary5929Gitlab::GithubImport::ImportDiffNoteWorker5930 #import5931 imports a diff note5932Forever5933 .date5934 when using PostgreSQL5935 should return Postgresql future date5936 when using MySQL5937 should return MySQL future date5938Gitlab::RequestProfiler5939 .profile_token5940 returns a token5941 caches the token5942 .remove_all_profiles5943 removes Gitlab::RequestProfiler::PROFILES_DIR directory5944GitlabShellWorker5945 #perform with add_key5946 calls add_key on Gitlab::Shell5947CommitStatusPresenter5948 inherits from Gitlab::View::Presenter::Delegated5949Knapsack report was generated. Preview:5950{5951 "spec/models/project_spec.rb": 100.49458289146423,5952 "spec/models/repository_spec.rb": 78.45450043678284,5953 "spec/features/projects/user_uses_shortcuts_spec.rb": 56.959229946136475,5954 "spec/models/concerns/has_status_spec.rb": 33.06889820098877,5955 "spec/policies/project_policy_spec.rb": 30.78747868537903,5956 "spec/features/reportable_note/merge_request_spec.rb": 140.46202445030212,5957 "spec/features/project_variables_spec.rb": 30.94031858444214,5958 "spec/lib/gitlab/background_migration/migrate_events_to_push_event_payloads_spec.rb": 18.45144271850586,5959 "spec/finders/labels_finder_spec.rb": 8.232064962387085,5960 "spec/features/projects/view_on_env_spec.rb": 14.142718076705933,5961 "spec/features/dashboard/issues_filter_spec.rb": 12.009236335754395,5962 "spec/policies/issue_policy_spec.rb": 13.856539487838745,5963 "spec/features/issues/award_spec.rb": 9.896885871887207,5964 "spec/features/projects/merge_requests/user_views_open_merge_request_spec.rb": 6.839287519454956,5965 "spec/features/issues/filtered_search/recent_searches_spec.rb": 10.284691572189331,5966 "spec/features/reportable_note/issue_spec.rb": 7.267577886581421,5967 "spec/features/groups/merge_requests_spec.rb": 6.568201780319214,5968 "spec/models/ability_spec.rb": 5.7333221435546875,5969 "spec/models/concerns/mentionable_spec.rb": 5.237675905227661,5970 "spec/presenters/ci/build_presenter_spec.rb": 4.832330703735352,5971 "spec/features/projects/merge_requests/user_rebases_merge_request_spec.rb": 4.402349948883057,5972 "spec/features/projects/commit/mini_pipeline_graph_spec.rb": 3.762584686279297,5973 "spec/controllers/projects/clusters/gcp_controller_spec.rb": 4.05624532699585,5974 "spec/controllers/import/gitlab_controller_spec.rb": 2.376600980758667,5975 "spec/features/projects/badges/list_spec.rb": 3.1996936798095703,5976 "spec/features/boards/sub_group_project_spec.rb": 2.7874791622161865,5977 "spec/services/issues/resolve_discussions_spec.rb": 3.7545554637908936,5978 "spec/features/projects/merge_requests/user_views_open_merge_requests_spec.rb": 4.139723777770996,5979 "spec/lib/gitlab/verify/job_artifacts_spec.rb": 3.1550309658050537,5980 "spec/requests/api/snippets_spec.rb": 3.9757587909698486,5981 "spec/lib/gitlab/data_builder/build_spec.rb": 2.7829861640930176,5982 "spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb": 2.484663248062134,5983 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 2.301792621612549,5984 "spec/views/ci/status/_badge.html.haml_spec.rb": 2.2464325428009033,5985 "spec/workers/stuck_merge_jobs_worker_spec.rb": 2.0586628913879395,5986 "spec/workers/namespaceless_project_destroy_worker_spec.rb": 2.003551483154297,5987 "spec/features/projects/services/user_activates_prometheus_spec.rb": 1.7539489269256592,5988 "spec/controllers/omniauth_callbacks_controller_spec.rb": 1.8546249866485596,5989 "spec/requests/openid_connect_spec.rb": 2.8376967906951904,5990 "spec/lib/extracts_path_spec.rb": 1.7776343822479248,5991 "spec/services/milestones/destroy_service_spec.rb": 1.7844560146331787,5992 "spec/features/dashboard/group_spec.rb": 2.8991618156433105,5993 "spec/lib/gitlab/import_export/fork_spec.rb": 1.579474925994873,5994 "spec/models/project_group_link_spec.rb": 1.124206781387329,5995 "spec/features/explore/user_explores_projects_spec.rb": 0.8316845893859863,5996 "spec/features/projects/wiki/shortcuts_spec.rb": 1.546424150466919,5997 "spec/lib/gitlab/ci/status/build/common_spec.rb": 1.3312945365905762,5998 "spec/lib/gitlab/git/commit_spec.rb": 1.281869649887085,5999 "spec/features/security/admin_access_spec.rb": 1.3221862316131592,6000 "spec/lib/gitlab/file_finder_spec.rb": 0.3878176212310791,6001 "spec/controllers/projects/mirrors_controller_spec.rb": 1.237412929534912,6002 "spec/services/projects/open_issues_count_service_spec.rb": 1.0565135478973389,6003 "spec/policies/clusters/cluster_policy_spec.rb": 1.2784349918365479,6004 "spec/features/projects/labels/issues_sorted_by_priority_spec.rb": 1.3363840579986572,6005 "spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb": 0.9264516830444336,6006 "spec/models/email_spec.rb": 1.0280795097351074,6007 "spec/models/pages_domain_spec.rb": 0.8305237293243408,6008 "spec/views/projects/services/_form.haml_spec.rb": 0.7337238788604736,6009 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 1.0582237243652344,6010 "spec/services/note_summary_spec.rb": 0.8056740760803223,6011 "spec/workers/gitlab/github_import/advance_stage_worker_spec.rb": 0.653374195098877,6012 "spec/rubocop/cop/line_break_around_conditional_block_spec.rb": 0.7261459827423096,6013 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 0.6138381958007812,6014 "spec/migrations/rename_more_reserved_project_names_spec.rb": 0.5295867919921875,6015 "spec/policies/application_setting/term_policy_spec.rb": 0.6107826232910156,6016 "spec/features/global_search_spec.rb": 0.8467330932617188,6017 "spec/finders/pipeline_schedules_finder_spec.rb": 0.40731048583984375,6018 "spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb": 0.5283722877502441,6019 "spec/controllers/projects/protected_tags_controller_spec.rb": 0.4929921627044678,6020 "spec/workers/create_note_diff_file_worker_spec.rb": 0.4894998073577881,6021 "spec/services/keys/create_service_spec.rb": 0.5274510383605957,6022 "spec/services/repository_archive_clean_up_service_spec.rb": 0.4891476631164551,6023 "spec/services/protected_branches/update_service_spec.rb": 0.41069483757019043,6024 "spec/lib/gitlab/google_code_import/project_creator_spec.rb": 0.35346341133117676,6025 "spec/models/concerns/sortable_spec.rb": 0.34090518951416016,6026 "spec/models/ci/pipeline_variable_spec.rb": 0.3293306827545166,6027 "spec/lib/gitlab/slash_commands/presenters/issue_new_spec.rb": 0.36133742332458496,6028 "spec/services/users/update_service_spec.rb": 0.2798726558685303,6029 "spec/models/project_services/bugzilla_service_spec.rb": 0.2127091884613037,6030 "spec/lib/banzai/color_parser_spec.rb": 0.21995210647583008,6031 "spec/lib/gitlab/ci/build/policy/refs_spec.rb": 0.2107987403869629,6032 "spec/workers/expire_job_cache_worker_spec.rb": 0.08402681350708008,6033 "spec/helpers/hooks_helper_spec.rb": 0.18380975723266602,6034 "spec/lib/gitlab/auth/ldap/config_spec.rb": 0.1307542324066162,6035 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 0.1612870693206787,6036 "spec/routing/api_routing_spec.rb": 0.13869667053222656,6037 "spec/lib/gitlab/uploads_transfer_spec.rb": 0.12578153610229492,6038 "spec/features/profiles/user_visits_profile_account_page_spec.rb": 0.33425354957580566,6039 "spec/workers/delete_user_worker_spec.rb": 0.12406492233276367,6040 "spec/serializers/analytics_merge_request_serializer_spec.rb": 0.17051005363464355,6041 "spec/workers/upload_checksum_worker_spec.rb": 0.08813142776489258,6042 "spec/models/appearance_spec.rb": 0.08508849143981934,6043 "spec/controllers/profiles/avatars_controller_spec.rb": 0.08867740631103516,6044 "spec/lib/gitlab/sanitizers/svg_spec.rb": 0.06379032135009766,6045 "spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb": 0.03679227828979492,6046 "spec/lib/gitlab/auth/blocked_user_tracker_spec.rb": 0.08220982551574707,6047 "spec/lib/gitlab/cache/request_cache_spec.rb": 0.04355144500732422,6048 "spec/lib/feature_spec.rb": 0.0413210391998291,6049 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.03469109535217285,6050 "spec/helpers/preferences_helper_spec.rb": 0.0645596981048584,6051 "spec/lib/gitaly/server_spec.rb": 0.02421736717224121,6052 "spec/lib/rspec_flaky/report_spec.rb": 0.026261568069458008,6053 "spec/lib/rspec_flaky/listener_spec.rb": 0.04217052459716797,6054 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 0.01993274688720703,6055 "spec/initializers/6_validations_spec.rb": 0.025526046752929688,6056 "spec/migrations/move_uploads_to_system_dir_spec.rb": 0.01819443702697754,6057 "spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb": 0.014561176300048828,6058 "spec/lib/gitlab/downtime_check/message_spec.rb": 0.022686243057250977,6059 "spec/lib/gitlab/metrics/system_spec.rb": 0.01187896728515625,6060 "spec/lib/gitlab/ci/mask_secret_spec.rb": 0.009076356887817383,6061 "spec/lib/gitlab/ci/status/running_spec.rb": 0.012549400329589844,6062 "spec/lib/gitlab/github_import/representation/to_hash_spec.rb": 0.0097503662109375,6063 "spec/models/merge_request_diff_file_spec.rb": 0.010442495346069336,6064 "spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb": 0.004250526428222656,6065 "spec/lib/forever_spec.rb": 0.005808115005493164,6066 "spec/lib/gitlab/request_profiler_spec.rb": 0.007417201995849609,6067 "spec/workers/gitlab_shell_worker_spec.rb": 0.0032913684844970703,6068 "spec/presenters/commit_status_presenter_spec.rb": 0.0023155212402343756069}6070Knapsack global time execution for tests: 11m 28s6071Pending: (Failures listed here are expected and do not affect your suite's status)6072 1) Project#ancestors_upto returns all ancestors when no namespace is given6073 # around hook at ./spec/spec_helper.rb:198 did not execute the example6074 # ./spec/models/project_spec.rb:21916075 2) Project#ancestors_upto includes ancestors upto but excluding the given ancestor6076 # around hook at ./spec/spec_helper.rb:198 did not execute the example6077 # ./spec/models/project_spec.rb:21956078 3) Project forks #in_fork_network_of? is true for a fork of a fork6079 # around hook at ./spec/spec_helper.rb:202 did not execute the example6080 # ./spec/models/project_spec.rb:24176081 4) LabelsFinder#execute filtering by group_id when including labels from group ancestors returns labels from group and its ancestors6082 # around hook at ./spec/spec_helper.rb:198 did not execute the example6083 # ./spec/finders/labels_finder_spec.rb:936084 5) LabelsFinder#execute filtering by group_id when including labels from group ancestors ignores labels from groups which user can not read6085 # around hook at ./spec/spec_helper.rb:198 did not execute the example6086 # ./spec/finders/labels_finder_spec.rb:1026087 6) LabelsFinder#execute filtering by group_id when including labels from group descendants returns labels from group and its descendants6088 # around hook at ./spec/spec_helper.rb:198 did not execute the example6089 # ./spec/finders/labels_finder_spec.rb:1126090 7) LabelsFinder#execute filtering by group_id when including labels from group descendants ignores labels from groups which user can not read6091 # around hook at ./spec/spec_helper.rb:198 did not execute the example6092 # ./spec/finders/labels_finder_spec.rb:1216093 8) LabelsFinder#execute filtering by project_id returns labels available for the project6094 # around hook at ./spec/spec_helper.rb:198 did not execute the example6095 # ./spec/finders/labels_finder_spec.rb:1466096 9) LabelsFinder#execute filtering by project_id when include_ancestor_groups is true returns all ancestor labels6097 # around hook at ./spec/spec_helper.rb:198 did not execute the example6098 # ./spec/finders/labels_finder_spec.rb:1416099 10) LabelsFinder#execute filtering by project_id as an administrator does not return labels from another project6100 # around hook at ./spec/spec_helper.rb:198 did not execute the example6101 # ./spec/finders/labels_finder_spec.rb:1536102 11) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen an existing nested namespace for the project takes the selected namespace and name6103 # around hook at ./spec/spec_helper.rb:202 did not execute the example6104 # ./spec/controllers/import/gitlab_controller_spec.rb:2076105 12) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen a non-existent nested namespaces for the project takes the selected namespace and name6106 # around hook at ./spec/spec_helper.rb:202 did not execute the example6107 # ./spec/controllers/import/gitlab_controller_spec.rb:2196108 13) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen a non-existent nested namespaces for the project creates the namespaces6109 # around hook at ./spec/spec_helper.rb:202 did not execute the example6110 # ./spec/controllers/import/gitlab_controller_spec.rb:2276111 14) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen a non-existent nested namespaces for the project new namespace has the right parent6112 # around hook at ./spec/spec_helper.rb:202 did not execute the example6113 # ./spec/controllers/import/gitlab_controller_spec.rb:2366114 15) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen existent and non-existent nested namespaces and name for the project takes the selected namespace and name6115 # around hook at ./spec/spec_helper.rb:202 did not execute the example6116 # ./spec/controllers/import/gitlab_controller_spec.rb:2556117 16) Import::GitlabController POST create when the repository owner is not the GitLab.com user user has chosen existent and non-existent nested namespaces and name for the project creates the namespaces6118 # around hook at ./spec/spec_helper.rb:202 did not execute the example6119 # ./spec/controllers/import/gitlab_controller_spec.rb:2636120 17) ProjectGroupLink Validation doesn't allow a project to be shared with an ancestor of the group it is in6121 # around hook at ./spec/spec_helper.rb:198 did not execute the example6122 # ./spec/models/project_group_link_spec.rb:266123 18) Appearance with uploads behaves like model with mounted uploader .destroy deletes any FileUploader uploads which are not mounted6124 # No reason given6125 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:176126Finished in 13 minutes 37 seconds (files took 24.61 seconds to load)61272237 examples, 0 failures, 18 pending6129$ date6130Tue Jun 26 13:53:59 UTC 20186133coverage/: found 5 matching files 6134knapsack/: found 5 matching files 6135rspec_flaky/: found 4 matching files 6136WARNING: tmp/capybara/: no matching files 6137Uploading artifacts to coordinator... ok id=77521941 responseStatus=201 Created token=RHsz5xzH6138Job succeeded