rspec-pg 8 25
Passed Started
by
@godfat
Lin Jen-Shin
1Running with gitlab-ci-multi-runner 9.4.2 (6d06f2e)2 on docker-auto-scale (ab89f037)3Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6 ...4Starting service postgres:9.2 ...5Pulling docker image postgres:9.2 ...6Using docker image postgres:9.2 ID=sha256:db720e33840f96601414915e5685d9e886ca931caffa1afe05ad784e9be2921f for postgres service...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image redis:alpine ID=sha256:9d8fa9aa0e5b35f1790162225a6ffe6207a3ca73d967d8f6920ed0f293086ff9 for redis service...10Starting service docker.elastic.co/elasticsearch/elasticsearch:5.3.2 ...11Pulling docker image docker.elastic.co/elasticsearch/elasticsearch:5.3.2 ...12Using docker image docker.elastic.co/elasticsearch/elasticsearch:5.3.2 ID=sha256:4b1cbf4a40912c3c0ad6c667a9998c98fda28d4c753ebcbb21b50c7e9aa244ba for docker.elastic.co/elasticsearch/elasticsearch service...13Waiting for services to be up and running...14Using docker image sha256:1c3a5de24292f2fd33da3a9f1b4ed0f9a78ef3fc0ba7299a3397ddaf118fce12 for predefined container...15Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6 ...16Using docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6 ID=sha256:bfb7deb8429c4531a0bbbd7accfe3b0ba22388e09e94dee3db3f82f7f5898d98 for build container...17Running on runner-ab89f037-project-278964-concurrent-0 via runner-ab89f037-auto-scale-1501865675-edd8425d...18Fetching changes for ce-to-ee-2017-08-03 with git depth set to 20...19Removing .gitlab_shell_secret20Removing .gitlab_workhorse_secret21Removing .yarn-cache/22Removing config/database.yml23Removing config/database_geo.yml24Removing config/gitlab.yml25Removing config/redis.cache.yml26Removing config/redis.queues.yml27Removing config/redis.shared_state.yml28Removing config/resque.yml29Removing config/secrets.yml30Removing coverage/31Removing knapsack/32Removing log/application.log33Removing log/gitaly-test.log34Removing log/githost.log35Removing log/repocheck.log36Removing log/sidekiq.log37Removing log/test.log38Removing log/test_json.log39Removing node_modules/40Removing public/assets/41Removing public/uploads.1501870676/42Removing public/uploads/43Removing shared/artifacts.1501870677/44Removing shared/artifacts/2017_08/45Removing shared/artifacts/tmp/cache/1501870780-63-0022-8557/46Removing shared/lfs.1501870677/47Removing shared/registry.1501870677/48Removing tmp/cache/49Removing tmp/tests/50Removing vendor/ruby/51HEAD is now at b5d3645 Fix trial banner padding53 * [new branch] ce-to-ee-2017-08-03 -> origin/ce-to-ee-2017-08-0354Checking out 22476cad as ce-to-ee-2017-08-03...55Skipping Git submodules setup56Checking cache for ruby-233-with-yarn...57Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/278964/ruby-233-with-yarn 58Successfully extracted cache59Downloading artifacts for knapsack (28149484)...60Downloading artifacts from coordinator... ok id=28149484 responseStatus=200 OK token=CTkmdks261Downloading artifacts for setup-test-env (28149485)...62Downloading artifacts from coordinator... ok id=28149485 responseStatus=200 OK token=r7fdcY_Z63WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 64$ bundle --version65Bundler version 1.14.666$ source scripts/utils.sh67$ source scripts/prepare_build.sh68Warning: the running version of Bundler (1.14.6) is older than the version that created the lockfile (1.15.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.69The Gemfile's dependencies are satisfied70Successfully installed knapsack-1.14.0711 gem installed72WARNING: Unable to check/update clone_url_prefix for Geo: PG::UndefinedTable: ERROR: relation "geo_nodes" does not exist73LINE 5: WHERE a.attrelid = '"geo_nodes"'::regclass74 ^75: SELECT a.attname, format_type(a.atttypid, a.atttypmod),76 pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod77 FROM pg_attribute a LEFT JOIN pg_attrdef d78 ON a.attrelid = d.adrelid AND a.attnum = d.adnum79 WHERE a.attrelid = '"geo_nodes"'::regclass80 AND a.attnum > 0 AND NOT a.attisdropped81 ORDER BY a.attnum82Missing Rails.application.secrets.secret_key_base for test environment. The secret will be generated and stored in config/secrets.yml.83Missing Rails.application.secrets.otp_key_base for test environment. The secret will be generated and stored in config/secrets.yml.84Missing Rails.application.secrets.db_key_base for test environment. The secret will be generated and stored in config/secrets.yml.85Missing Rails.application.secrets.jws_private_key for test environment. The secret will be generated and stored in config/secrets.yml.86-- enable_extension("plpgsql")87 -> 0.0149s88-- enable_extension("pg_trgm")89 -> 0.0254s90-- create_table("abuse_reports", {:force=>:cascade})91 -> 0.0137s92-- create_table("appearances", {:force=>:cascade})93 -> 0.0075s94-- create_table("application_settings", {:force=>:cascade})95 -> 0.0310s96-- create_table("approvals", {:force=>:cascade})97 -> 0.0046s98-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})99 -> 0.0038s100-- create_table("approver_groups", {:force=>:cascade})101 -> 0.0050s102-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})103 -> 0.0036s104-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})105 -> 0.0035s106-- create_table("approvers", {:force=>:cascade})107 -> 0.0053s108-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})109 -> 0.0036s110-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})111 -> 0.0034s112-- create_table("audit_events", {:force=>:cascade})113 -> 0.0054s114-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})115 -> 0.0040s116-- create_table("award_emoji", {:force=>:cascade})117 -> 0.0049s118-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})119 -> 0.0038s120-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})121 -> 0.0037s122-- create_table("boards", {:force=>:cascade})123 -> 0.0054s124-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})125 -> 0.0033s126-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})127 -> 0.0042s128-- create_table("broadcast_messages", {:force=>:cascade})129 -> 0.0050s130-- create_table("chat_names", {:force=>:cascade})131 -> 0.0052s132-- 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})133 -> 0.0040s134-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})135 -> 0.0036s136-- create_table("chat_teams", {:force=>:cascade})137 -> 0.0059s138-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})139 -> 0.0039s140-- create_table("ci_builds", {:force=>:cascade})141 -> 0.0075s142-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})143 -> 0.0034s144-- 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})145 -> 0.0037s146-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})147 -> 0.0033s148-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})149 -> 0.0036s150-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})151 -> 0.0036s152-- add_index("ci_builds", ["project_id"], {:name=>"index_ci_builds_on_project_id", :using=>:btree})153 -> 0.0032s154-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})155 -> 0.0031s156-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})157 -> 0.0031s158-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})159 -> 0.0033s160-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})161 -> 0.0038s162-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})163 -> 0.0029s164-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})165 -> 0.0029s166-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})167 -> 0.0029s168-- create_table("ci_group_variables", {:force=>:cascade})169 -> 0.0049s170-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})171 -> 0.0031s172-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})173 -> 0.0043s174-- 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})175 -> 0.0031s176-- create_table("ci_pipeline_schedules", {:force=>:cascade})177 -> 0.0048s178-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})179 -> 0.0032s180-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})181 -> 0.0029s182-- create_table("ci_pipeline_variables", {:force=>:cascade})183 -> 0.0049s184-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})185 -> 0.0043s186-- create_table("ci_pipelines", {:force=>:cascade})187 -> 0.0069s188-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})189 -> 0.0035s190-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})191 -> 0.0034s192-- add_index("ci_pipelines", ["project_id", "ref", "status"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status", :using=>:btree})193 -> 0.0033s194-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})195 -> 0.0031s196-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})197 -> 0.0031s198-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})199 -> 0.0034s200-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})201 -> 0.0031s202-- create_table("ci_runner_projects", {:force=>:cascade})203 -> 0.0037s204-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})205 -> 0.0033s206-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})207 -> 0.0030s208-- create_table("ci_runners", {:force=>:cascade})209 -> 0.0063s210-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})211 -> 0.0030s212-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})213 -> 0.0029s214-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})215 -> 0.0029s216-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})217 -> 0.0028s218-- create_table("ci_sources_pipelines", {:force=>:cascade})219 -> 0.0034s220-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_pipeline_source_pipelines_on_pipeline_id", :using=>:btree})221 -> 0.0032s222-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_pipeline_source_pipelines_on_project_id", :using=>:btree})223 -> 0.0030s224-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_job_id", :using=>:btree})225 -> 0.0031s226-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_pipeline_id", :using=>:btree})227 -> 0.0028s228-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_project_id", :using=>:btree})229 -> 0.0029s230-- create_table("ci_stages", {:force=>:cascade})231 -> 0.0050s232-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :using=>:btree})233 -> 0.0032s234-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})235 -> 0.0044s236-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})237 -> 0.0031s238-- create_table("ci_trigger_requests", {:force=>:cascade})239 -> 0.0048s240-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})241 -> 0.0029s242-- create_table("ci_triggers", {:force=>:cascade})243 -> 0.0044s244-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})245 -> 0.0030s246-- create_table("ci_variables", {:force=>:cascade})247 -> 0.0057s248-- 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})249 -> 0.0047s250-- create_table("container_repositories", {:force=>:cascade})251 -> 0.0070s252-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})253 -> 0.0048s254-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})255 -> 0.0065s256-- create_table("conversational_development_index_metrics", {:force=>:cascade})257 -> 0.0062s258-- create_table("deploy_keys_projects", {:force=>:cascade})259 -> 0.0057s260-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})261 -> 0.0052s262-- create_table("deployments", {:force=>:cascade})263 -> 0.0066s264-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})265 -> 0.0036s266-- add_index("deployments", ["project_id", "environment_id", "iid"], {:name=>"index_deployments_on_project_id_and_environment_id_and_iid", :using=>:btree})267 -> 0.0050s268-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})269 -> 0.0051s270-- create_table("emails", {:force=>:cascade})271 -> 0.0070s272-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})273 -> 0.0049s274-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})275 -> 0.0048s276-- create_table("environments", {:force=>:cascade})277 -> 0.0078s278-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})279 -> 0.0048s280-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})281 -> 0.0051s282-- create_table("events", {:force=>:cascade})283 -> 0.0071s284-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})285 -> 0.0038s286-- add_index("events", ["author_id"], {:name=>"index_events_on_author_id", :using=>:btree})287 -> 0.0042s288-- add_index("events", ["created_at"], {:name=>"index_events_on_created_at", :using=>:btree})289 -> 0.0044s290-- add_index("events", ["project_id"], {:name=>"index_events_on_project_id", :using=>:btree})291 -> 0.0035s292-- add_index("events", ["target_id"], {:name=>"index_events_on_target_id", :using=>:btree})293 -> 0.0038s294-- add_index("events", ["target_type"], {:name=>"index_events_on_target_type", :using=>:btree})295 -> 0.0040s296-- create_table("feature_gates", {:force=>:cascade})297 -> 0.0058s298-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})299 -> 0.0038s300-- create_table("features", {:force=>:cascade})301 -> 0.0056s302-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})303 -> 0.0037s304-- create_table("forked_project_links", {:force=>:cascade})305 -> 0.0038s306-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})307 -> 0.0037s308-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})309 -> 0.0039s310-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})311 -> 0.0037s312-- create_table("geo_nodes", {:force=>:cascade})313 -> 0.0065s314-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})315 -> 0.0033s316-- add_index("geo_nodes", ["host"], {:name=>"index_geo_nodes_on_host", :using=>:btree})317 -> 0.0032s318-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})319 -> 0.0035s320-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})321 -> 0.0050s322-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})323 -> 0.0039s324-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})325 -> 0.0047s326-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})327 -> 0.0029s328-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})329 -> 0.0050s330-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})331 -> 0.0031s332-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})333 -> 0.0030s334-- create_table("historical_data", {:force=>:cascade})335 -> 0.0032s336-- create_table("gpg_keys", {:force=>:cascade})337 -> 0.0052s338-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})339 -> 0.0032s340-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})341 -> 0.0032s342-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})343 -> 0.0031s344-- create_table("gpg_signatures", {:force=>:cascade})345 -> 0.0049s346-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})347 -> 0.0029s348-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})349 -> 0.0029s350-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})351 -> 0.0029s352-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})353 -> 0.0031s354-- create_table("identities", {:force=>:cascade})355 -> 0.0044s356-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})357 -> 0.0030s358-- create_table("index_statuses", {:force=>:cascade})359 -> 0.0052s360-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})361 -> 0.0029s362-- create_table("issue_assignees", {:id=>false, :force=>:cascade})363 -> 0.0014s364-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})365 -> 0.0028s366-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})367 -> 0.0031s368-- create_table("issue_links", {:force=>:cascade})369 -> 0.0032s370-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})371 -> 0.0028s372-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})373 -> 0.0028s374-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})375 -> 0.0029s376-- create_table("issue_metrics", {:force=>:cascade})377 -> 0.0033s378-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})379 -> 0.0049s380-- create_table("issues", {:force=>:cascade})381 -> 0.0058s382-- add_index("issues", ["assignee_id"], {:name=>"index_issues_on_assignee_id", :using=>:btree})383 -> 0.0031s384-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})385 -> 0.0032s386-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})387 -> 0.0028s388-- add_index("issues", ["deleted_at"], {:name=>"index_issues_on_deleted_at", :using=>:btree})389 -> 0.0030s390-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})391 -> 0.0025s392-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})393 -> 0.0031s394-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})395 -> 0.0031s396-- add_index("issues", ["project_id", "due_date", "id", "state"], {:name=>"index_issues_on_project_id_and_due_date_and_id_and_state", :using=>:btree})397 -> 0.0411s398-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})399 -> 0.0036s400-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})401 -> 0.0032s402-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})403 -> 0.0029s404-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})405 -> 0.0032s406-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})407 -> 0.0023s408-- create_table("keys", {:force=>:cascade})409 -> 0.0055s410-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})411 -> 0.0030s412-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})413 -> 0.0028s414-- create_table("label_links", {:force=>:cascade})415 -> 0.0063s416-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})417 -> 0.0035s418-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})419 -> 0.0035s420-- create_table("label_priorities", {:force=>:cascade})421 -> 0.0038s422-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})423 -> 0.0032s424-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})425 -> 0.0030s426-- create_table("labels", {:force=>:cascade})427 -> 0.0055s428-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})429 -> 0.0041s430-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})431 -> 0.0043s432-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})433 -> 0.0048s434-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})435 -> 0.0045s436-- create_table("ldap_group_links", {:force=>:cascade})437 -> 0.0072s438-- create_table("lfs_objects", {:force=>:cascade})439 -> 0.0071s440-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})441 -> 0.0049s442-- create_table("lfs_objects_projects", {:force=>:cascade})443 -> 0.0051s444-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})445 -> 0.0045s446-- create_table("licenses", {:force=>:cascade})447 -> 0.0060s448-- create_table("lists", {:force=>:cascade})449 -> 0.0049s450-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})451 -> 0.0040s452-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})453 -> 0.0039s454-- create_table("members", {:force=>:cascade})455 -> 0.0071s456-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})457 -> 0.0042s458-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})459 -> 0.0040s460-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})461 -> 0.0039s462-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})463 -> 0.0041s464-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})465 -> 0.0079s466-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})467 -> 0.0050s468-- 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})469 -> 0.0053s470-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})471 -> 0.0053s472-- 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})473 -> 0.0046s474-- create_table("merge_request_diffs", {:force=>:cascade})475 -> 0.0073s476-- add_index("merge_request_diffs", ["merge_request_id"], {:name=>"index_merge_request_diffs_on_merge_request_id", :using=>:btree})477 -> 0.0044s478-- create_table("merge_request_metrics", {:force=>:cascade})479 -> 0.0047s480-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})481 -> 0.0043s482-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})483 -> 0.0039s484-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})485 -> 0.0046s486-- create_table("merge_requests", {:force=>:cascade})487 -> 0.0111s488-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})489 -> 0.0065s490-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})491 -> 0.0055s492-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})493 -> 0.0057s494-- add_index("merge_requests", ["deleted_at"], {:name=>"index_merge_requests_on_deleted_at", :using=>:btree})495 -> 0.0056s496-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})497 -> 0.0045s498-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})499 -> 0.0055s500-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})501 -> 0.0055s502-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})503 -> 0.0047s504-- add_index("merge_requests", ["source_project_id"], {:name=>"index_merge_requests_on_source_project_id", :using=>:btree})505 -> 0.0048s506-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})507 -> 0.0045s508-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})509 -> 0.0046s510-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})511 -> 0.0053s512-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})513 -> 0.0040s514-- create_table("merge_requests_closing_issues", {:force=>:cascade})515 -> 0.0046s516-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})517 -> 0.0042s518-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})519 -> 0.0050s520-- create_table("milestones", {:force=>:cascade})521 -> 0.0064s522-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})523 -> 0.0031s524-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})525 -> 0.0038s526-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})527 -> 0.0049s528-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})529 -> 0.0045s530-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})531 -> 0.0034s532-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})533 -> 0.0029s534-- create_table("namespace_statistics", {:force=>:cascade})535 -> 0.0058s536-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})537 -> 0.0042s538-- create_table("namespaces", {:force=>:cascade})539 -> 0.0109s540-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})541 -> 0.0047s542-- add_index("namespaces", ["deleted_at"], {:name=>"index_namespaces_on_deleted_at", :using=>:btree})543 -> 0.0046s544-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})545 -> 0.0058s546-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})547 -> 0.0041s548-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})549 -> 0.0046s550-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})551 -> 0.0037s552-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})553 -> 0.0046s554-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})555 -> 0.0046s556-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})557 -> 0.0041s558-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})559 -> 0.0035s560-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})561 -> 0.0040s562-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})563 -> 0.0043s564-- create_table("notes", {:force=>:cascade})565 -> 0.0073s566-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})567 -> 0.0051s568-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})569 -> 0.0062s570-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})571 -> 0.0047s572-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})573 -> 0.0045s574-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})575 -> 0.0045s576-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})577 -> 0.0037s578-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})579 -> 0.0049s580-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})581 -> 0.0043s582-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})583 -> 0.0042s584-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})585 -> 0.0041s586-- create_table("notification_settings", {:force=>:cascade})587 -> 0.0075s588-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})589 -> 0.0043s590-- 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})591 -> 0.0045s592-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})593 -> 0.0038s594-- create_table("oauth_access_grants", {:force=>:cascade})595 -> 0.0056s596-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})597 -> 0.0038s598-- create_table("oauth_access_tokens", {:force=>:cascade})599 -> 0.0058s600-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})601 -> 0.0038s602-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})603 -> 0.0033s604-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})605 -> 0.0035s606-- create_table("oauth_applications", {:force=>:cascade})607 -> 0.0075s608-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})609 -> 0.0042s610-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})611 -> 0.0040s612-- create_table("oauth_openid_requests", {:force=>:cascade})613 -> 0.0062s614-- create_table("pages_domains", {:force=>:cascade})615 -> 0.0065s616-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})617 -> 0.0052s618-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})619 -> 0.0032s620-- create_table("path_locks", {:force=>:cascade})621 -> 0.0065s622-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})623 -> 0.0036s624-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})625 -> 0.0036s626-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})627 -> 0.0035s628-- create_table("personal_access_tokens", {:force=>:cascade})629 -> 0.0066s630-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})631 -> 0.0033s632-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})633 -> 0.0032s634-- create_table("project_authorizations", {:id=>false, :force=>:cascade})635 -> 0.0021s636-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})637 -> 0.0038s638-- 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})639 -> 0.0036s640-- create_table("project_features", {:force=>:cascade})641 -> 0.0046s642-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})643 -> 0.0035s644-- create_table("project_group_links", {:force=>:cascade})645 -> 0.0040s646-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})647 -> 0.0032s648-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})649 -> 0.0029s650-- create_table("project_import_data", {:force=>:cascade})651 -> 0.0050s652-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})653 -> 0.0031s654-- create_table("project_mirror_data", {:force=>:cascade})655 -> 0.0038s656-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})657 -> 0.0049s658-- create_table("project_statistics", {:force=>:cascade})659 -> 0.0066s660-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})661 -> 0.0044s662-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})663 -> 0.0042s664-- create_table("projects", {:force=>:cascade})665 -> 0.0146s666-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})667 -> 0.0047s668-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})669 -> 0.0046s670-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})671 -> 0.0041s672-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})673 -> 0.0034s674-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})675 -> 0.0037s676-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})677 -> 0.0033s678-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})679 -> 0.0058s680-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})681 -> 0.0036s682-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})683 -> 0.0035s684-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})685 -> 0.0040s686-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})687 -> 0.0041s688-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})689 -> 0.0025s690-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})691 -> 0.0033s692-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})693 -> 0.0033s694-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})695 -> 0.0036s696-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})697 -> 0.0034s698-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})699 -> 0.0042s700-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})701 -> 0.0036s702-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})703 -> 0.0033s704-- create_table("protected_branch_push_access_levels", {:force=>:cascade})705 -> 0.0046s706-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})707 -> 0.0044s708-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})709 -> 0.0110s710-- create_table("protected_branches", {:force=>:cascade})711 -> 0.0052s712-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})713 -> 0.0054s714-- create_table("protected_tag_create_access_levels", {:force=>:cascade})715 -> 0.0061s716-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})717 -> 0.0039s718-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})719 -> 0.0048s720-- create_table("protected_tags", {:force=>:cascade})721 -> 0.0050s722-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})723 -> 0.0032s724-- create_table("push_rules", {:force=>:cascade})725 -> 0.0066s726-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})727 -> 0.0035s728-- create_table("redirect_routes", {:force=>:cascade})729 -> 0.0051s730-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})731 -> 0.0037s732-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})733 -> 0.0043s734-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})735 -> 0.0032s736-- create_table("releases", {:force=>:cascade})737 -> 0.0049s738-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})739 -> 0.0032s740-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})741 -> 0.0032s742-- create_table("remote_mirrors", {:force=>:cascade})743 -> 0.0056s744-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})745 -> 0.0031s746-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})747 -> 0.0030s748-- create_table("routes", {:force=>:cascade})749 -> 0.0048s750-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})751 -> 0.0029s752-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})753 -> 0.0029s754-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})755 -> 0.0035s756-- create_table("sent_notifications", {:force=>:cascade})757 -> 0.0057s758-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})759 -> 0.0035s760-- create_table("services", {:force=>:cascade})761 -> 0.0110s762-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})763 -> 0.0038s764-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})765 -> 0.0032s766-- create_table("slack_integrations", {:force=>:cascade})767 -> 0.0055s768-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})769 -> 0.0037s770-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})771 -> 0.0031s772-- create_table("snippets", {:force=>:cascade})773 -> 0.0056s774-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})775 -> 0.0033s776-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})777 -> 0.0024s778-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})779 -> 0.0034s780-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})781 -> 0.0033s782-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})783 -> 0.0030s784-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})785 -> 0.0036s786-- create_table("spam_logs", {:force=>:cascade})787 -> 0.0074s788-- create_table("subscriptions", {:force=>:cascade})789 -> 0.0066s790-- 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})791 -> 0.0051s792-- create_table("system_note_metadata", {:force=>:cascade})793 -> 0.0067s794-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})795 -> 0.0070s796-- create_table("taggings", {:force=>:cascade})797 -> 0.0073s798-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})799 -> 0.0049s800-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})801 -> 0.0046s802-- create_table("tags", {:force=>:cascade})803 -> 0.0073s804-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})805 -> 0.0046s806-- create_table("timelogs", {:force=>:cascade})807 -> 0.0050s808-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})809 -> 0.0042s810-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})811 -> 0.0042s812-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})813 -> 0.0031s814-- create_table("todos", {:force=>:cascade})815 -> 0.0054s816-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})817 -> 0.0034s818-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})819 -> 0.0035s820-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})821 -> 0.0034s822-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})823 -> 0.0031s824-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})825 -> 0.0035s826-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})827 -> 0.0031s828-- create_table("trending_projects", {:force=>:cascade})829 -> 0.0035s830-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :using=>:btree})831 -> 0.0034s832-- create_table("u2f_registrations", {:force=>:cascade})833 -> 0.0056s834-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})835 -> 0.0036s836-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})837 -> 0.0031s838-- create_table("uploads", {:force=>:cascade})839 -> 0.0056s840-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})841 -> 0.0035s842-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})843 -> 0.0035s844-- add_index("uploads", ["path"], {:name=>"index_uploads_on_path", :using=>:btree})845 -> 0.0038s846-- create_table("user_agent_details", {:force=>:cascade})847 -> 0.0060s848-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})849 -> 0.0036s850-- create_table("users", {:force=>:cascade})851 -> 0.0172s852-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})853 -> 0.0039s854-- add_index("users", ["authentication_token"], {:name=>"index_users_on_authentication_token", :unique=>true, :using=>:btree})855 -> 0.0036s856-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})857 -> 0.0035s858-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})859 -> 0.0033s860-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})861 -> 0.0036s862-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})863 -> 0.0024s864-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})865 -> 0.0036s866-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})867 -> 0.0035s868-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})869 -> 0.0036s870-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})871 -> 0.0026s872-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})873 -> 0.0038s874-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})875 -> 0.0038s876-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})877 -> 0.0037s878-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})879 -> 0.0039s880-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})881 -> 0.0034s882-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})883 -> 0.0026s884-- create_table("users_star_projects", {:force=>:cascade})885 -> 0.0040s886-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})887 -> 0.0034s888-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})889 -> 0.0034s890-- create_table("web_hook_logs", {:force=>:cascade})891 -> 0.0057s892-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})893 -> 0.0033s894-- create_table("web_hooks", {:force=>:cascade})895 -> 0.0105s896-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})897 -> 0.0038s898-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})899 -> 0.0037s900-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})901 -> 0.0033s902-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})903 -> 0.0022s904-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})905 -> 0.0025s906-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})907 -> 0.0018s908-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})909 -> 0.0024s910-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})911 -> 0.0018s912-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})913 -> 0.0022s914-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})915 -> 0.0017s916-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})917 -> 0.0019s918-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})919 -> 0.0019s920-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})921 -> 0.0023s922-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})923 -> 0.0017s924-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})925 -> 0.0018s926-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})927 -> 0.0018s928-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})929 -> 0.0021s930-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})931 -> 0.0020s932-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_3f0c88d7dc", :on_delete=>:cascade})933 -> 0.0019s934-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_b8c0fac459", :on_delete=>:cascade})935 -> 0.0016s936-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_3a3e3cb83a", :on_delete=>:cascade})937 -> 0.0017s938-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_8868d0f3e4", :on_delete=>:cascade})939 -> 0.0035s940-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_83b4346e48", :on_delete=>:cascade})941 -> 0.0021s942-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})943 -> 0.0017s944-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})945 -> 0.0018s946-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})947 -> 0.0017s948-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})949 -> 0.0022s950-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})951 -> 0.0020s952-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})953 -> 0.0020s954-- add_foreign_key("container_repositories", "projects")955 -> 0.0019s956-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})957 -> 0.0020s958-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})959 -> 0.0020s960-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})961 -> 0.0020s962-- add_foreign_key("events", "projects", {:name=>"fk_0434b48643", :on_delete=>:cascade})963 -> 0.0025s964-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})965 -> 0.0022s966-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})967 -> 0.0020s968-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})969 -> 0.0019s970-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})971 -> 0.0019s972-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})973 -> 0.0023s974-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})975 -> 0.0022s976-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})977 -> 0.0021s978-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})979 -> 0.0025s980-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})981 -> 0.0022s982-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})983 -> 0.0021s984-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})985 -> 0.0023s986-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})987 -> 0.0022s988-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})989 -> 0.0020s990-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})991 -> 0.0018s992-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})993 -> 0.0018s994-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})995 -> 0.0019s996-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})997 -> 0.0016s998-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})999 -> 0.0017s1000-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1001 -> 0.0016s1002-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1003 -> 0.0016s1004-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1005 -> 0.0015s1006-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1007 -> 0.0013s1008-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1009 -> 0.0014s1010-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1011 -> 0.0015s1012-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1013 -> 0.0015s1014-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1015 -> 0.0015s1016-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1017 -> 0.0015s1018-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1019 -> 0.0015s1020-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1021 -> 0.0018s1022-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1023 -> 0.0015s1024-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1025 -> 0.0015s1026-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1027 -> 0.0016s1028-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1029 -> 0.0016s1030-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1031 -> 0.0016s1032-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1033 -> 0.0019s1034-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1035 -> 0.0015s1036-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1037 -> 0.0026s1038-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1039 -> 0.0019s1040-- add_foreign_key("path_locks", "users")1041 -> 0.0015s1042-- add_foreign_key("personal_access_tokens", "users")1043 -> 0.0017s1044-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1045 -> 0.0016s1046-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1047 -> 0.0016s1048-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1049 -> 0.0018s1050-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1051 -> 0.0016s1052-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1053 -> 0.0017s1054-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1055 -> 0.0016s1056-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1057 -> 0.0017s1058-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id"})1059 -> 0.0014s1060-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1061 -> 0.0013s1062-- add_foreign_key("protected_branch_merge_access_levels", "users")1063 -> 0.0018s1064-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id"})1065 -> 0.0015s1066-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1067 -> 0.0015s1068-- add_foreign_key("protected_branch_push_access_levels", "users")1069 -> 0.0017s1070-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1071 -> 0.0016s1072-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id"})1073 -> 0.0016s1074-- add_foreign_key("protected_tag_create_access_levels", "protected_tags")1075 -> 0.0014s1076-- add_foreign_key("protected_tag_create_access_levels", "users")1077 -> 0.0016s1078-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1079 -> 0.0017s1080-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1081 -> 0.0017s1082-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1083 -> 0.0018s1084-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1085 -> 0.0017s1086-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1087 -> 0.0020s1088-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1089 -> 0.0032s1090-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1091 -> 0.0023s1092-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1093 -> 0.0026s1094-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1095 -> 0.0026s1096-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1097 -> 0.0022s1098-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1099 -> 0.0020s1100-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1101 -> 0.0027s1102-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1103 -> 0.0027s1104-- add_foreign_key("u2f_registrations", "users")1105 -> 0.0027s1106-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1107 -> 0.0023s1108-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1109 -> 0.0023s1110-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1111 -> 0.0023s1112-- initialize_schema_migrations_table()1113 -> 0.0120s1114WARNING: Unable to check/update clone_url_prefix for Geo: PG::UndefinedTable: ERROR: relation "geo_nodes" does not exist1115LINE 5: WHERE a.attrelid = '"geo_nodes"'::regclass1116 ^1117: SELECT a.attname, format_type(a.atttypid, a.atttypmod),1118 pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod1119 FROM pg_attribute a LEFT JOIN pg_attrdef d1120 ON a.attrelid = d.adrelid AND a.attnum = d.adnum1121 WHERE a.attrelid = '"geo_nodes"'::regclass1122 AND a.attnum > 0 AND NOT a.attisdropped1123 ORDER BY a.attnum1124-- enable_extension("plpgsql")1125 -> 0.0168s1126-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1127 -> 0.0090s1128-- create_table("file_registry", {:force=>:cascade})1129 -> 0.0084s1130-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1131 -> 0.0055s1132-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1133 -> 0.0053s1134-- create_table("project_registry", {:force=>:cascade})1135 -> 0.0066s1136-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1137 -> 0.0049s1138-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1139 -> 0.0049s1140-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :using=>:btree})1141 -> 0.0037s1142-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1143 -> 0.0039s1144-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1145 -> 0.0040s1146-- initialize_schema_migrations_table()1147 -> 0.0178s1148$ JOB_NAME=( $CI_JOB_NAME )1149$ export CI_NODE_INDEX=${JOB_NAME[-2]}1150$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1151$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1152$ export KNAPSACK_GENERATE_REPORT=true1153$ export CACHE_CLASSES=true1154$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1155$ scripts/gitaly-test-spawn1156531157$ knapsack rspec "--color --format documentation"1158Report specs:1159spec/mailers/notify_spec.rb1160spec/controllers/projects/merge_requests_controller_spec.rb1161spec/features/protected_branches_spec.rb1162spec/features/security/project/snippet/internal_access_spec.rb1163spec/requests/api/award_emoji_spec.rb1164spec/requests/api/commit_statuses_spec.rb1165spec/controllers/projects/boards/lists_controller_spec.rb1166spec/features/projects/services/mattermost_slash_command_spec.rb1167spec/requests/api/repositories_spec.rb1168spec/features/merge_requests/diffs_spec.rb1169spec/features/boards/board_with_milestone_spec.rb1170spec/models/global_milestone_spec.rb1171spec/features/security/group/private_access_spec.rb1172spec/features/issues/filtered_search/search_bar_spec.rb1173spec/policies/ee/merge_request_policy_spec.rb1174spec/requests/api/v3/todos_spec.rb1175spec/models/concerns/elastic/note_spec.rb1176spec/features/merge_requests/check_if_mergeable_with_unresolved_discussions_spec.rb1177spec/models/concerns/subscribable_spec.rb1178spec/controllers/projects/merge_requests/creations_controller_ee_spec.rb1179spec/models/ci/legacy_stage_spec.rb1180spec/lib/gitlab/usage_data_spec.rb1181spec/lib/banzai/filter/issuable_state_filter_spec.rb1182spec/models/project_services/pipelines_email_service_spec.rb1183spec/models/project_feature_spec.rb1184spec/controllers/notification_settings_controller_spec.rb1185spec/services/merge_requests/assign_issues_service_spec.rb1186spec/requests/openid_connect_spec.rb1187spec/requests/api/ee/issues_spec.rb1188spec/features/atom/users_spec.rb1189spec/lib/banzai/reference_parser/commit_parser_spec.rb1190spec/features/merge_requests/pipelines_spec.rb1191spec/workers/expire_pipeline_cache_worker_spec.rb1192spec/lib/gitlab/data_builder/pipeline_spec.rb1193spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb1194spec/features/projects/badges/list_spec.rb1195spec/workers/admin_emails_worker_spec.rb1196spec/controllers/projects/protected_branches_controller_spec.rb1197spec/serializers/rollout_status_entity_spec.rb1198Leftover specs:1199spec/views/shared/projects/_project.html.haml_spec.rb1200Knapsack report generator started!1201 Warning 1202 You are running as user root, we hope you know what you are doing.1203 Things may work/fail for the wrong reasons.1204 For correct results you should run this as user git.1205mkdir -p /builds/gitlab-org/gitlab-ee/tmp/tests/.ssh: OK1206chmod 700 /builds/gitlab-org/gitlab-ee/tmp/tests/.ssh: OK1207mkdir -p /builds/gitlab-org/gitlab-ee/tmp/tests/repositories: OK1208chmod ug+rwX,o-rwx /builds/gitlab-org/gitlab-ee/tmp/tests/repositories: OK1209Creating/Repairing hooks symlinks for all repositories1210done1211Notify1212 for a project1213 items that are assignable, the email1214 for issues1215 that are new1216 has the correct subject and body1217 behaves like an assignee email1218 is sent to the assignee as the author1219 behaves like an email starting a new thread with reply-by-email enabled1220 has X-GitLab-Project headers1221 has the characteristics of a threaded email1222 when reply-by-email is enabled with incoming address with %{key}1223 has a Reply-To header1224 when reply-by-email is enabled with incoming address without %{key}1225 has the characteristics of a threaded email1226 has a Reply-To header1227 behaves like it should show Gmail Actions View Issue link1228 should have body including "View Issue"1229 behaves like it should have Gmail Actions links1230 should have body including "ViewAction"1231 behaves like an unsubscribeable thread1232 has a List-Unsubscribe header in the correct format, and a body link1233 behaves like an unsubscribeable thread with incoming address without %{key}1234 has a List-Unsubscribe header in the correct format, and a body link1235 when enabled email_author_in_body1236 contains a link to note author1237 that are new with a description1238 contains the description1239 behaves like it should show Gmail Actions View Issue link1240 should have body including "View Issue"1241 behaves like it should have Gmail Actions links1242 should have body including "ViewAction"1243 that have been reassigned1244 is sent as the author1245 has the correct subject and body1246 behaves like a multiple recipients email1247 is sent to the given recipient1248 behaves like an answer to an existing thread with reply-by-email enabled1249 has X-GitLab-Project headers1250 has X-GitLab-Project headers1251 has the characteristics of a threaded reply1252 when reply-by-email is enabled with incoming address with %{key}1253 has a Reply-To header1254 when reply-by-email is enabled with incoming address without %{key}1255 has X-GitLab-Project headers1256 has the characteristics of a threaded reply1257 has a Reply-To header1258 behaves like it should show Gmail Actions View Issue link1259 should have body including "View Issue"1260 behaves like it should have Gmail Actions links1261 should have body including "ViewAction"1262 behaves like an unsubscribeable thread1263 has a List-Unsubscribe header in the correct format, and a body link1264 behaves like an unsubscribeable thread with incoming address without %{key}1265 has a List-Unsubscribe header in the correct format, and a body link1266 that have been relabeled1267 is sent as the author1268 has the correct subject and body1269 behaves like a multiple recipients email1270 is sent to the given recipient1271 behaves like an answer to an existing thread with reply-by-email enabled1272 has X-GitLab-Project headers1273 has X-GitLab-Project headers1274 has the characteristics of a threaded reply1275 when reply-by-email is enabled with incoming address with %{key}1276 has a Reply-To header1277 when reply-by-email is enabled with incoming address without %{key}1278 has X-GitLab-Project headers1279 has the characteristics of a threaded reply1280 has a Reply-To header1281 behaves like it should show Gmail Actions View Issue link1282 should have body including "View Issue"1283 behaves like it should have Gmail Actions links1284 should have body including "ViewAction"1285 behaves like a user cannot unsubscribe through footer link1286 does not have a List-Unsubscribe header or a body link1287 behaves like an email with a labels subscriptions link in its footer1288 should have body including "label subscriptions"1289 with a preferred language1290 always generates the email using the default language1291 status changed1292 is sent as the author1293 has the correct subject and body1294 behaves like an answer to an existing thread with reply-by-email enabled1295 has X-GitLab-Project headers1296 has X-GitLab-Project headers1297 has the characteristics of a threaded reply1298 when reply-by-email is enabled with incoming address with %{key}1299 has a Reply-To header1300 when reply-by-email is enabled with incoming address without %{key}1301 has X-GitLab-Project headers1302 has the characteristics of a threaded reply1303 has a Reply-To header1304 behaves like it should show Gmail Actions View Issue link1305 should have body including "View Issue"1306 behaves like it should have Gmail Actions links1307 should have body including "ViewAction"1308 behaves like an unsubscribeable thread1309 has a List-Unsubscribe header in the correct format, and a body link1310 behaves like an unsubscribeable thread with incoming address without %{key}1311 has a List-Unsubscribe header in the correct format, and a body link1312 moved to another project1313 contains description about action taken1314 has the correct subject and body1315 behaves like an answer to an existing thread with reply-by-email enabled1316 has X-GitLab-Project headers1317 has X-GitLab-Project headers1318 has the characteristics of a threaded reply1319 when reply-by-email is enabled with incoming address with %{key}1320 has a Reply-To header1321 when reply-by-email is enabled with incoming address without %{key}1322 has X-GitLab-Project headers1323 has the characteristics of a threaded reply1324 has a Reply-To header1325 behaves like it should show Gmail Actions View Issue link1326 should have body including "View Issue"1327 behaves like it should have Gmail Actions links1328 should have body including "ViewAction"1329 behaves like an unsubscribeable thread1330 has a List-Unsubscribe header in the correct format, and a body link1331 behaves like an unsubscribeable thread with incoming address without %{key}1332 has a List-Unsubscribe header in the correct format, and a body link1333 for merge requests1334 that are new1335 has the correct subject and body1336 behaves like an assignee email1337 is sent to the assignee as the author1338 behaves like an email starting a new thread with reply-by-email enabled1339 has X-GitLab-Project headers1340 has the characteristics of a threaded email1341 when reply-by-email is enabled with incoming address with %{key}1342 has a Reply-To header1343 when reply-by-email is enabled with incoming address without %{key}1344 has the characteristics of a threaded email1345 has a Reply-To header1346 behaves like it should show Gmail Actions View Merge request link1347 should have body including "View Merge request"1348 behaves like it should have Gmail Actions links1349 should have body including "ViewAction"1350 behaves like an unsubscribeable thread1351 has a List-Unsubscribe header in the correct format, and a body link1352 behaves like an unsubscribeable thread with incoming address without %{key}1353 has a List-Unsubscribe header in the correct format, and a body link1354 when enabled email_author_in_body1355 contains a link to note author1356 that are new with approver1357 contains the approvers list1358 that are new with a description1359 contains the description1360 behaves like it should show Gmail Actions View Merge request link1361 should have body including "View Merge request"1362 behaves like it should have Gmail Actions links1363 should have body including "ViewAction"1364 behaves like an unsubscribeable thread1365 has a List-Unsubscribe header in the correct format, and a body link1366 behaves like an unsubscribeable thread with incoming address without %{key}1367 has a List-Unsubscribe header in the correct format, and a body link1368 that are reassigned1369 is sent as the author1370 has the correct subject and body1371 behaves like a multiple recipients email1372 is sent to the given recipient1373 behaves like an answer to an existing thread with reply-by-email enabled1374 has X-GitLab-Project headers1375 has X-GitLab-Project headers1376 has the characteristics of a threaded reply1377 when reply-by-email is enabled with incoming address with %{key}1378 has a Reply-To header1379 when reply-by-email is enabled with incoming address without %{key}1380 has X-GitLab-Project headers1381 has the characteristics of a threaded reply1382 has a Reply-To header1383 behaves like it should show Gmail Actions View Merge request link1384 should have body including "View Merge request"1385 behaves like it should have Gmail Actions links1386 should have body including "ViewAction"1387 behaves like an unsubscribeable thread1388 has a List-Unsubscribe header in the correct format, and a body link1389 behaves like an unsubscribeable thread with incoming address without %{key}1390 has a List-Unsubscribe header in the correct format, and a body link1391 that have been relabeled1392 is sent as the author1393 has the correct subject and body1394 behaves like a multiple recipients email1395 is sent to the given recipient1396 behaves like an answer to an existing thread with reply-by-email enabled1397 has X-GitLab-Project headers1398 has X-GitLab-Project headers1399 has the characteristics of a threaded reply1400 when reply-by-email is enabled with incoming address with %{key}1401 has a Reply-To header1402 when reply-by-email is enabled with incoming address without %{key}1403 has X-GitLab-Project headers1404 has the characteristics of a threaded reply1405 has a Reply-To header1406 behaves like it should show Gmail Actions View Merge request link1407 should have body including "View Merge request"1408 behaves like it should have Gmail Actions links1409 should have body including "ViewAction"1410 behaves like a user cannot unsubscribe through footer link1411 does not have a List-Unsubscribe header or a body link1412 behaves like an email with a labels subscriptions link in its footer1413 should have body including "label subscriptions"1414 status changed1415 is sent as the author1416 has the correct subject and body1417 behaves like an answer to an existing thread with reply-by-email enabled1418 has X-GitLab-Project headers1419 has X-GitLab-Project headers1420 has the characteristics of a threaded reply1421 when reply-by-email is enabled with incoming address with %{key}1422 has a Reply-To header1423 when reply-by-email is enabled with incoming address without %{key}1424 has X-GitLab-Project headers1425 has the characteristics of a threaded reply1426 has a Reply-To header1427 behaves like it should show Gmail Actions View Merge request link1428 should have body including "View Merge request"1429 behaves like it should have Gmail Actions links1430 should have body including "ViewAction"1431 behaves like an unsubscribeable thread1432 has a List-Unsubscribe header in the correct format, and a body link1433 behaves like an unsubscribeable thread with incoming address without %{key}1434 has a List-Unsubscribe header in the correct format, and a body link1435 that are approved1436 is sent as the last approver1437 has the correct subject1438 contains the new status1439 contains a link to the merge request1440 contains the names of all of the approvers1441 behaves like a multiple recipients email1442 is sent to the given recipient1443 behaves like an answer to an existing thread with reply-by-email enabled1444 has X-GitLab-Project headers1445 has X-GitLab-Project headers1446 has the characteristics of a threaded reply1447 when reply-by-email is enabled with incoming address with %{key}1448 has a Reply-To header1449 when reply-by-email is enabled with incoming address without %{key}1450 has X-GitLab-Project headers1451 has the characteristics of a threaded reply1452 has a Reply-To header1453 behaves like it should show Gmail Actions View Merge request link1454 should have body including "View Merge request"1455 behaves like it should have Gmail Actions links1456 should have body including "ViewAction"1457 behaves like an unsubscribeable thread1458 has a List-Unsubscribe header in the correct format, and a body link1459 behaves like an unsubscribeable thread with incoming address without %{key}1460 has a List-Unsubscribe header in the correct format, and a body link1461 when merge request has no assignee1462 does not show the assignee1463 that are unapproved1464 is sent as the last unapprover1465 has the correct subject1466 contains the new status1467 contains a link to the merge request1468 contains the names of all of the approvers1469 behaves like a multiple recipients email1470 is sent to the given recipient1471 behaves like an answer to an existing thread with reply-by-email enabled1472 has X-GitLab-Project headers1473 has X-GitLab-Project headers1474 has the characteristics of a threaded reply1475 when reply-by-email is enabled with incoming address with %{key}1476 has a Reply-To header1477 when reply-by-email is enabled with incoming address without %{key}1478 has X-GitLab-Project headers1479 has the characteristics of a threaded reply1480 has a Reply-To header1481 behaves like it should show Gmail Actions View Merge request link1482 should have body including "View Merge request"1483 behaves like it should have Gmail Actions links1484 should have body including "ViewAction"1485 behaves like an unsubscribeable thread1486 has a List-Unsubscribe header in the correct format, and a body link1487 behaves like an unsubscribeable thread with incoming address without %{key}1488 has a List-Unsubscribe header in the correct format, and a body link1489 that are merged1490 is sent as the merge author1491 has the correct subject and body1492 behaves like a multiple recipients email1493 is sent to the given recipient1494 behaves like an answer to an existing thread with reply-by-email enabled1495 has X-GitLab-Project headers1496 has X-GitLab-Project headers1497 has the characteristics of a threaded reply1498 when reply-by-email is enabled with incoming address with %{key}1499 has a Reply-To header1500 when reply-by-email is enabled with incoming address without %{key}1501 has X-GitLab-Project headers1502 has the characteristics of a threaded reply1503 has a Reply-To header1504 behaves like it should show Gmail Actions View Merge request link1505 should have body including "View Merge request"1506 behaves like it should have Gmail Actions links1507 should have body including "ViewAction"1508 behaves like an unsubscribeable thread1509 has a List-Unsubscribe header in the correct format, and a body link1510 behaves like an unsubscribeable thread with incoming address without %{key}1511 has a List-Unsubscribe header in the correct format, and a body link1512 project was moved1513 has the correct subject and body1514 behaves like an email sent from GitLab1515 has the characteristics of an email sent from GitLab1516 behaves like it should not have Gmail Actions links1517 should not have body including "ViewAction"1518 behaves like a user cannot unsubscribe through footer link1519 does not have a List-Unsubscribe header or a body link1520 project access requested1521 for a project in a user namespace1522 contains all the useful information1523 behaves like an email sent from GitLab1524 has the characteristics of an email sent from GitLab1525 behaves like it should not have Gmail Actions links1526 should not have body including "ViewAction"1527 behaves like a user cannot unsubscribe through footer link1528 does not have a List-Unsubscribe header or a body link1529 for a project in a group1530 contains all the useful information1531 behaves like an email sent from GitLab1532 has the characteristics of an email sent from GitLab1533 behaves like it should not have Gmail Actions links1534 should not have body including "ViewAction"1535 behaves like a user cannot unsubscribe through footer link1536 does not have a List-Unsubscribe header or a body link1537 project access denied1538 contains all the useful information1539 behaves like an email sent from GitLab1540 has the characteristics of an email sent from GitLab1541 behaves like it should not have Gmail Actions links1542 should not have body including "ViewAction"1543 behaves like a user cannot unsubscribe through footer link1544 does not have a List-Unsubscribe header or a body link1545 project access changed1546 contains all the useful information1547 behaves like an email sent from GitLab1548 has the characteristics of an email sent from GitLab1549 behaves like it should not have Gmail Actions links1550 should not have body including "ViewAction"1551 behaves like a user cannot unsubscribe through footer link1552 does not have a List-Unsubscribe header or a body link1553 project invitation1554 contains all the useful information1555 behaves like an email sent from GitLab1556 has the characteristics of an email sent from GitLab1557 behaves like it should not have Gmail Actions links1558 should not have body including "ViewAction"1559 behaves like a user cannot unsubscribe through footer link1560 does not have a List-Unsubscribe header or a body link1561 project invitation accepted1562 contains all the useful information1563 behaves like an email sent from GitLab1564 has the characteristics of an email sent from GitLab1565 behaves like it should not have Gmail Actions links1566 should not have body including "ViewAction"1567 behaves like a user cannot unsubscribe through footer link1568 does not have a List-Unsubscribe header or a body link1569 project invitation declined1570 contains all the useful information1571 behaves like an email sent from GitLab1572 has the characteristics of an email sent from GitLab1573 behaves like it should not have Gmail Actions links1574 should not have body including "ViewAction"1575 behaves like a user cannot unsubscribe through footer link1576 does not have a List-Unsubscribe header or a body link1577 items that are noteable, the email for a note1578 on a commit1579 has the correct subject and body1580 behaves like a note email1581 is sent to the given recipient as the author1582 contains the message from the note1583 does not contain note author1584 behaves like it should have Gmail Actions links1585 should have body including "ViewAction"1586 when enabled email_author_in_body1587 contains a link to note author1588 behaves like an answer to an existing thread with reply-by-email enabled1589 has X-GitLab-Project headers1590 has X-GitLab-Project headers1591 has the characteristics of a threaded reply1592 when reply-by-email is enabled with incoming address with %{key}1593 has a Reply-To header1594 when reply-by-email is enabled with incoming address without %{key}1595 has X-GitLab-Project headers1596 has the characteristics of a threaded reply1597 has a Reply-To header1598 behaves like it should show Gmail Actions View Commit link1599 should have body including "View Commit"1600 behaves like it should have Gmail Actions links1601 should have body including "ViewAction"1602 behaves like a user cannot unsubscribe through footer link1603 does not have a List-Unsubscribe header or a body link1604 on a merge request1605 has the correct subject and body1606 behaves like a note email1607 is sent to the given recipient as the author1608 contains the message from the note1609 does not contain note author1610 behaves like it should have Gmail Actions links1611 should have body including "ViewAction"1612 when enabled email_author_in_body1613 contains a link to note author1614 behaves like an answer to an existing thread with reply-by-email enabled1615 has X-GitLab-Project headers1616 has X-GitLab-Project headers1617 has the characteristics of a threaded reply1618 when reply-by-email is enabled with incoming address with %{key}1619 has a Reply-To header1620 when reply-by-email is enabled with incoming address without %{key}1621 has X-GitLab-Project headers1622 has the characteristics of a threaded reply1623 has a Reply-To header1624 behaves like it should show Gmail Actions View Merge request link1625 should have body including "View Merge request"1626 behaves like it should have Gmail Actions links1627 should have body including "ViewAction"1628 behaves like an unsubscribeable thread1629 has a List-Unsubscribe header in the correct format, and a body link1630 behaves like an unsubscribeable thread with incoming address without %{key}1631 has a List-Unsubscribe header in the correct format, and a body link1632 on an issue1633 has the correct subject and body1634 behaves like a note email1635 is sent to the given recipient as the author1636 contains the message from the note1637 does not contain note author1638 behaves like it should have Gmail Actions links1639 should have body including "ViewAction"1640 when enabled email_author_in_body1641 contains a link to note author1642 behaves like an answer to an existing thread with reply-by-email enabled1643 has X-GitLab-Project headers1644 has X-GitLab-Project headers1645 has the characteristics of a threaded reply1646 when reply-by-email is enabled with incoming address with %{key}1647 has a Reply-To header1648 when reply-by-email is enabled with incoming address without %{key}1649 has X-GitLab-Project headers1650 has the characteristics of a threaded reply1651 has a Reply-To header1652 behaves like it should show Gmail Actions View Issue link1653 should have body including "View Issue"1654 behaves like it should have Gmail Actions links1655 should have body including "ViewAction"1656 behaves like an unsubscribeable thread1657 has a List-Unsubscribe header in the correct format, and a body link1658 behaves like an unsubscribeable thread with incoming address without %{key}1659 has a List-Unsubscribe header in the correct format, and a body link1660 items that are noteable, the email for a discussion note1661 on a commit1662 has the correct subject1663 contains a link to the commit1664 behaves like a discussion note email1665 is sent to the given recipient as the author1666 contains the message from the note1667 contains an introduction1668 behaves like it should have Gmail Actions links1669 should have body including "ViewAction"1670 when a comment on an existing discussion1671 contains an introduction1672 behaves like an answer to an existing thread with reply-by-email enabled1673 has X-GitLab-Project headers1674 has X-GitLab-Project headers1675 has the characteristics of a threaded reply1676 when reply-by-email is enabled with incoming address with %{key}1677 has a Reply-To header1678 when reply-by-email is enabled with incoming address without %{key}1679 has X-GitLab-Project headers1680 has the characteristics of a threaded reply1681 has a Reply-To header1682 behaves like it should show Gmail Actions View Commit link1683 should have body including "View Commit"1684 behaves like it should have Gmail Actions links1685 should have body including "ViewAction"1686 behaves like a user cannot unsubscribe through footer link1687 does not have a List-Unsubscribe header or a body link1688 on a merge request1689 has the correct subject1690 contains a link to the merge request note1691 behaves like a discussion note email1692 is sent to the given recipient as the author1693 contains the message from the note1694 contains an introduction1695 behaves like it should have Gmail Actions links1696 should have body including "ViewAction"1697 when a comment on an existing discussion1698 contains an introduction1699 behaves like an answer to an existing thread with reply-by-email enabled1700 has X-GitLab-Project headers1701 has X-GitLab-Project headers1702 has the characteristics of a threaded reply1703 when reply-by-email is enabled with incoming address with %{key}1704 has a Reply-To header1705 when reply-by-email is enabled with incoming address without %{key}1706 has X-GitLab-Project headers1707 has the characteristics of a threaded reply1708 has a Reply-To header1709 behaves like it should show Gmail Actions View Merge request link1710 should have body including "View Merge request"1711 behaves like it should have Gmail Actions links1712 should have body including "ViewAction"1713 behaves like an unsubscribeable thread1714 has a List-Unsubscribe header in the correct format, and a body link1715 behaves like an unsubscribeable thread with incoming address without %{key}1716 has a List-Unsubscribe header in the correct format, and a body link1717 on an issue1718 has the correct subject1719 contains a link to the issue note1720 behaves like a discussion note email1721 is sent to the given recipient as the author1722 contains the message from the note1723 contains an introduction1724 behaves like it should have Gmail Actions links1725 should have body including "ViewAction"1726 when a comment on an existing discussion1727 contains an introduction1728 behaves like an answer to an existing thread with reply-by-email enabled1729 has X-GitLab-Project headers1730 has X-GitLab-Project headers1731 has the characteristics of a threaded reply1732 when reply-by-email is enabled with incoming address with %{key}1733 has a Reply-To header1734 when reply-by-email is enabled with incoming address without %{key}1735 has X-GitLab-Project headers1736 has the characteristics of a threaded reply1737 has a Reply-To header1738 behaves like it should show Gmail Actions View Issue link1739 should have body including "View Issue"1740 behaves like it should have Gmail Actions links1741 should have body including "ViewAction"1742 behaves like an unsubscribeable thread1743 has a List-Unsubscribe header in the correct format, and a body link1744 behaves like an unsubscribeable thread with incoming address without %{key}1745 has a List-Unsubscribe header in the correct format, and a body link1746 items that are noteable, the email for a diff discussion note1747 on a commit1748 behaves like an email for a note on a diff discussion1749 includes diffs with character-level highlighting1750 contains a link to the diff file1751 is sent to the given recipient as the author1752 contains the message from the note1753 contains an introduction1754 behaves like it should have Gmail Actions links1755 should have body including "ViewAction"1756 when a comment on an existing discussion1757 contains an introduction1758 behaves like it should show Gmail Actions View Commit link1759 should have body including "View Commit"1760 behaves like it should have Gmail Actions links1761 should have body including "ViewAction"1762 behaves like a user cannot unsubscribe through footer link1763 does not have a List-Unsubscribe header or a body link1764 on a merge request1765 behaves like an email for a note on a diff discussion1766 includes diffs with character-level highlighting1767 contains a link to the diff file1768 is sent to the given recipient as the author1769 contains the message from the note1770 contains an introduction1771 behaves like it should have Gmail Actions links1772 should have body including "ViewAction"1773 when a comment on an existing discussion1774 contains an introduction1775 behaves like it should show Gmail Actions View Merge request link1776 should have body including "View Merge request"1777 behaves like it should have Gmail Actions links1778 should have body including "ViewAction"1779 behaves like an unsubscribeable thread1780 has a List-Unsubscribe header in the correct format, and a body link1781 behaves like an unsubscribeable thread with incoming address without %{key}1782 has a List-Unsubscribe header in the correct format, and a body link1783 for a group1784 group access requested1785 contains all the useful information1786 behaves like an email sent from GitLab1787 has the characteristics of an email sent from GitLab1788 behaves like it should not have Gmail Actions links1789 should not have body including "ViewAction"1790 behaves like a user cannot unsubscribe through footer link1791 does not have a List-Unsubscribe header or a body link1792 group access denied1793 contains all the useful information1794 behaves like an email sent from GitLab1795 has the characteristics of an email sent from GitLab1796 behaves like it should not have Gmail Actions links1797 should not have body including "ViewAction"1798 behaves like a user cannot unsubscribe through footer link1799 does not have a List-Unsubscribe header or a body link1800 group access changed1801 contains all the useful information1802 behaves like an email sent from GitLab1803 has the characteristics of an email sent from GitLab1804 behaves like it should not have Gmail Actions links1805 should not have body including "ViewAction"1806 behaves like a user cannot unsubscribe through footer link1807 does not have a List-Unsubscribe header or a body link1808 group invitation1809 contains all the useful information1810 behaves like an email sent from GitLab1811 has the characteristics of an email sent from GitLab1812 behaves like it should not have Gmail Actions links1813 should not have body including "ViewAction"1814 behaves like a user cannot unsubscribe through footer link1815 does not have a List-Unsubscribe header or a body link1816 group invitation accepted1817 contains all the useful information1818 behaves like an email sent from GitLab1819 has the characteristics of an email sent from GitLab1820 behaves like it should not have Gmail Actions links1821 should not have body including "ViewAction"1822 behaves like a user cannot unsubscribe through footer link1823 does not have a List-Unsubscribe header or a body link1824 group invitation declined1825 contains all the useful information1826 behaves like an email sent from GitLab1827 has the characteristics of an email sent from GitLab1828 behaves like it should not have Gmail Actions links1829 should not have body including "ViewAction"1830 behaves like a user cannot unsubscribe through footer link1831 does not have a List-Unsubscribe header or a body link1832 confirmation if email changed1833 is sent to the new user1834 has the correct subject and body1835 behaves like an email sent from GitLab1836 has the characteristics of an email sent from GitLab1837 behaves like a user cannot unsubscribe through footer link1838 does not have a List-Unsubscribe header or a body link1839 email on push for a created branch1840 is sent as the author1841 has the correct subject and body1842 behaves like it should not have Gmail Actions links1843 should not have body including "ViewAction"1844 behaves like a user cannot unsubscribe through footer link1845 does not have a List-Unsubscribe header or a body link1846 behaves like an email with X-GitLab headers containing project details1847 has X-GitLab-Project headers1848 behaves like an email that contains a header with author username1849 has X-GitLab-Author header containing author's username1850 email on push for a created tag1851 is sent as the author1852 has the correct subject and body1853 behaves like it should not have Gmail Actions links1854 should not have body including "ViewAction"1855 behaves like a user cannot unsubscribe through footer link1856 does not have a List-Unsubscribe header or a body link1857 behaves like an email with X-GitLab headers containing project details1858 has X-GitLab-Project headers1859 behaves like an email that contains a header with author username1860 has X-GitLab-Author header containing author's username1861 email on push for a deleted branch1862 is sent as the author1863 has the correct subject1864 behaves like it should not have Gmail Actions links1865 should not have body including "ViewAction"1866 behaves like a user cannot unsubscribe through footer link1867 does not have a List-Unsubscribe header or a body link1868 behaves like an email with X-GitLab headers containing project details1869 has X-GitLab-Project headers1870 behaves like an email that contains a header with author username1871 has X-GitLab-Author header containing author's username1872 email on push for a deleted tag1873 is sent as the author1874 has the correct subject1875 behaves like it should not have Gmail Actions links1876 should not have body including "ViewAction"1877 behaves like a user cannot unsubscribe through footer link1878 does not have a List-Unsubscribe header or a body link1879 behaves like an email with X-GitLab headers containing project details1880 has X-GitLab-Project headers1881 behaves like an email that contains a header with author username1882 has X-GitLab-Author header containing author's username1883 email on push with multiple commits1884 is sent as the author1885 has the correct subject and body1886 behaves like it should not have Gmail Actions links1887 should not have body including "ViewAction"1888 behaves like a user cannot unsubscribe through footer link1889 does not have a List-Unsubscribe header or a body link1890 behaves like an email with X-GitLab headers containing project details1891 has X-GitLab-Project headers1892 behaves like an email that contains a header with author username1893 has X-GitLab-Author header containing author's username1894 when set to send from committer email if domain matches1895 when the committer email domain is within the GitLab domain1896 is sent from the committer email1897 when the committer email domain is not completely within the GitLab domain1898 is sent from the default email1899 when the committer email domain is outside the GitLab domain1900 is sent from the default email1901 email on push with a single commit1902 is sent as the author1903 has the correct subject and body1904 behaves like it should show Gmail Actions View Commit link1905 should have body including "View Commit"1906 behaves like it should have Gmail Actions links1907 should have body including "ViewAction"1908 behaves like a user cannot unsubscribe through footer link1909 does not have a List-Unsubscribe header or a body link1910 behaves like an email with X-GitLab headers containing project details1911 has X-GitLab-Project headers1912 behaves like an email that contains a header with author username1913 has X-GitLab-Author header containing author's username1914 admin notification1915 is sent as the author1916 is sent to recipient1917 has the correct subject1918 includes unsubscribe link1919 HTML emails setting1920 when disabled1921 only sends the text template1922 when enabled1923 sends a multipart message1924Projects::MergeRequestsController1925 GET commit_change_content1926 renders commit_change_content template1927 GET show1928 behaves like loads labels1929 loads labels into the @labels variable1930 as html1931 renders merge request page1932 as json1933 with basic param1934 renders basic MR entity as json1935 without basic param1936 renders the merge request in the json format1937 number of queries1938 verifies number of queries1939 as diff1940 triggers workhorse to serve the request1941 as patch1942 triggers workhorse to serve the request1943 GET index1944 behaves like issuables list meta-data1945 creates indexed meta-data object for issuable notes and votes count1946 when given empty collection1947 doesn't execute any queries with false conditions1948 when page param1949 redirects to last_page if page number is larger than number of pages1950 redirects to specified page1951 does not redirect to external sites when provided a host field1952 when filtering by opened state1953 with opened merge requests1954 lists those merge requests1955 with reopened merge requests1956 lists those merge requests1957 PUT update1958 changing the assignee1959 limits the attributes exposed on the assignee1960 there is no source project1961 closes MR without errors1962 allows editing of a closed merge request1963 does not allow to update target branch closed merge request1964 behaves like update invalid issuable1965 when updating causes conflicts1966 renders edit when format is html1967 renders json error message when format is json1968 when updating an invalid issuable1969 renders edit when merge request is invalid1970 POST merge1971 when user cannot access1972 returns 4041973 when the merge request is not mergeable1974 returns :failed1975 when the sha parameter does not match the source SHA1976 returns :sha_mismatch1977 when the sha parameter matches the source SHA1978 returns :success1979 starts the merge immediately1980 when the pipeline succeeds is passed1981 returns :merge_when_pipeline_succeeds1982 sets the MR to merge when the pipeline succeeds1983 when project.only_allow_merge_if_pipeline_succeeds? is true1984 returns :merge_when_pipeline_succeeds1985 only_allow_merge_if_all_discussions_are_resolved? setting1986 when enabled1987 with unresolved discussion1988 returns :failed1989 with all discussions resolved1990 returns :success1991 when disabled1992 with unresolved discussion1993 returns :success1994 with all discussions resolved1995 returns :success1996 DELETE destroy1997 denies access to users unless they're admin or project owner1998 when the user is owner1999 deletes the merge request2000 delegates the update of the todos count cache to TodoService2001 GET commits2002 renders the commits template to a string2003 GET pipelines2004 responds with serialized pipelines2005 POST remove_wip2006 removes the wip status2007 renders MergeRequest as JSON2008 POST cancel_merge_when_pipeline_succeeds2009 calls MergeRequests::MergeWhenPipelineSucceedsService2010 should respond with a success status code (2xx)2011 renders MergeRequest as JSON2012 POST assign_related_issues2013 shows a flash message on success2014 correctly pluralizes flash message on success2015 calls MergeRequests::AssignIssuesService2016 is skipped when not signed in2017 GET ci_environments_status2018 the environment is from a forked project2019 links to the environment on that project2020 GET pipeline_status.json2021 when head_pipeline exists2022 return a detailed head_pipeline status in json2023 when head_pipeline does not exist2024 return empty2025Protected Branches2026Starting the Capybara driver server...2027 explicit protected branches2028 allows creating explicit protected branches2029 displays the last commit on the matching branch if it exists2030 displays an error message if the named branch does not exist2031 wildcard protected branches2032 allows creating protected branches with a wildcard2033 displays the number of matching branches2034 displays all the branches matching the wildcard2035 access control2036 with ref permissions for users enabled2037 allows creating protected branches that roles, users, and groups can merge to2038 allows updating protected branches so that roles and users can merge to it2039 allows updating protected branches so that roles and users cannot merge to it2040 prepends selected users that can merge to2041 allows creating protected branches that roles, users, and groups can push to2042 allows updating protected branches so that roles and users can push to it2043 allows updating protected branches so that roles and users cannot push to it2044 prepends selected users that can push to2045 When updating a protected branch2046 discards other roles when choosing "No one"2047 When creating a protected branch2048 discards other roles when choosing "No one"2049 with ref permissions for users disabled2050 allows creating protected branches that Masters can push to2051 allows updating protected branches so that Masters can push to them2052 allows creating protected branches that Developers + Masters can push to2053 allows updating protected branches so that Developers + Masters can push to them2054 allows creating protected branches that No one can push to2055 allows updating protected branches so that No one can push to them2056 allows creating protected branches that Masters can merge to2057 allows updating protected branches so that Masters can merge to them2058 allows creating protected branches that Developers + Masters can merge to2059 allows updating protected branches so that Developers + Masters can merge to them2060 allows creating protected branches that No one can merge to2061 allows updating protected branches so that No one can merge to them2062 with existing access levels2063 shows users that can push to the branch2064 shows groups that can push to the branch2065 shows users that can merge into the branch2066 shows groups that have can push to the branch2067Internal Project Snippets Access2068 GET /:project_path/snippets2069 should be allowed for admin2070 should be allowed for auditor2071 should be allowed for owner2072 should be allowed for master2073 should be allowed for developer2074 should be allowed for reporter2075 should be allowed for guest2076 should be allowed for user2077 should be denied for external2078 should be denied for visitor2079 GET /:project_path/snippets/new2080 should be allowed for admin2081 should be denied for auditor2082 should be allowed for owner2083 should be allowed for master2084 should be allowed for developer2085 should be allowed for reporter2086 should be denied for guest2087 should be denied for user2088 should be denied for external2089 should be denied for visitor2090 GET /:project_path/snippets/:id2091 for an internal snippet2092 should be allowed for admin2093 should be allowed for auditor2094 should be allowed for owner2095 should be allowed for master2096 should be allowed for developer2097 should be allowed for reporter2098 should be allowed for guest2099 should be allowed for user2100 should be denied for external2101 should be denied for visitor2102 for a private snippet2103 should be allowed for admin2104 should be allowed for auditor2105 should be allowed for owner2106 should be allowed for master2107 should be allowed for developer2108 should be allowed for reporter2109 should be allowed for guest2110 should be denied for user2111 should be denied for external2112 should be denied for visitor2113 GET /:project_path/snippets/:id/raw2114 for an internal snippet2115 should be allowed for admin2116 should be allowed for auditor2117 should be allowed for owner2118 should be allowed for master2119 should be allowed for developer2120 should be allowed for reporter2121 should be allowed for guest2122 should be allowed for user2123 should be denied for external2124 should be denied for visitor2125 for a private snippet2126 should be allowed for admin2127 should be allowed for auditor2128 should be allowed for owner2129 should be allowed for master2130 should be allowed for developer2131 should be allowed for reporter2132 should be allowed for guest2133 should be denied for user2134 should be denied for external2135 should be denied for visitor2136API::AwardEmoji2137 GET /projects/:id/awardable/:awardable_id/award_emoji2138 on an issue2139 returns an array of award_emoji2140 returns a 404 error when issue id not found2141 on a merge request2142 returns an array of award_emoji2143 on a snippet2144 returns the awarded emoji2145 when the user has no access2146 returns a status code 4042147 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji2148 returns an array of award emoji2149 GET /projects/:id/awardable/:awardable_id/award_emoji/:award_id2150 on an issue2151 returns the award emoji2152 returns a 404 error if the award is not found2153 on a merge request2154 returns the award emoji2155 on a snippet2156 returns the awarded emoji2157 when the user has no access2158 returns a status code 4042159 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id2160 returns an award emoji2161 POST /projects/:id/awardable/:awardable_id/award_emoji2162 on an issue2163 creates a new award emoji2164 returns a 400 bad request error if the name is not given2165 returns a 401 unauthorized error if the user is not authenticated2166 returns a 404 error if the user authored issue2167 normalizes +1 as thumbsup award2168 when the emoji already has been awarded2169 returns a 404 status code2170 on a snippet2171 creates a new award emoji2172 POST /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji2173 creates a new award emoji2174 it returns 404 error when user authored note2175 normalizes +1 as thumbsup award2176 when the emoji already has been awarded2177 returns a 404 status code2178 DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_id2179 when the awardable is an Issue2180 deletes the award2181 returns a 404 error when the award emoji can not be found2182 when the awardable is a Merge Request2183 deletes the award2184 returns a 404 error when note id not found2185 when the awardable is a Snippet2186 deletes the award2187 DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_emoji_id2188 deletes the award2189API::CommitStatuses2190 GET /projects/:id/repository/commits/:sha/statuses2191 ci commit exists2192 reporter user2193 latest commit statuses2194 returns latest commit statuses2195 all commit statuses2196 returns all commit statuses2197 latest commit statuses for specific ref2198 returns latest commit statuses for specific ref2199 latest commit statues for specific name2200 return latest commit statuses for specific name2201 ci commit does not exist2202 returns empty array2203 guest user2204 does not return project commits2205 unauthorized user2206 does not return project commits2207 POST /projects/:id/statuses/:sha2208 developer user2209 for pending2210 uses only required parameters2211 creates commit status2212 for running2213 uses only required parameters2214 creates commit status2215 for success2216 uses only required parameters2217 creates commit status2218 for failed2219 uses only required parameters2220 creates commit status2221 for canceled2222 uses only required parameters2223 creates commit status2224 transitions status from pending2225 to running2226 to success2227 to failed2228 to canceled2229 with all optional parameters2230 when creating a commit status2231 creates commit status2232 when merge request exists for given branch2233 sets head pipeline2234 when updatig a commit status2235 updates a commit status2236 does not create a new commit status2237 when retrying a commit status2238 correctly posts a new commit status2239 retries a commit status2240 when status is invalid2241 does not create commit status2242 when request without a state made2243 does not create commit status2244 when commit SHA is invalid2245 returns not found error2246 when target URL is an invalid address2247 responds with bad request status and validation errors2248 reporter user2249 does not create commit status2250 guest user2251 does not create commit status2252 unauthorized user2253 does not create commit status2254Projects::Boards::ListsController2255 GET index2256 returns a successful 200 response2257 returns a list of board lists2258 with unauthorized user2259 returns a forbidden 403 response2260 POST create2261 with valid params2262 returns a successful 200 response2263 returns the created list2264 with invalid params2265 when label is nil2266 returns a not found 404 response2267 when label that does not belongs to project2268 returns a not found 404 response2269 with unauthorized user2270 returns a forbidden 403 response2271 PATCH update2272 with valid position2273 returns a successful 200 response2274 moves the list to the desired position2275 with invalid position2276 returns an unprocessable entity 422 response2277 with invalid list id2278 returns a not found 404 response2279 with unauthorized user2280 returns a forbidden 403 response2281 DELETE destroy2282 with valid list id2283 returns a successful 200 response2284 removes list from board2285 with invalid list id2286 returns a not found 404 response2287 with unauthorized user2288 returns a forbidden 403 response2289 POST generate2290 when board lists is empty2291 returns a successful 200 response2292 returns the defaults lists2293 when board lists is not empty2294 returns an unprocessable entity 422 response2295 with unauthorized user2296 returns a forbidden 403 response2297Setup Mattermost slash commands2298 user visits the mattermost slash command config page2299 shows a help message2300 shows a token placeholder2301 redirects to the integrations page after saving but not activating2302 redirects to the integrations page after activating2303 shows the add to mattermost button2304 shows an explanation if user is a member of no teams2305 shows an explanation if user is a member of 1 team2306 shows a disabled prefilled select if user is a member of 1 team2307 has a hidden input for the prefilled value if user is a member of 1 team2308 shows an explanation user is a member of multiple teams2309 shows a select with team options user is a member of multiple teams2310 shows an error alert with the error message if there is an error requesting teams2311 enables the submit button if the required fields are provided2312 disables the submit button if the required fields are not provided2313 mattermost service is not enabled2314 shows the correct trigger url2315 shows a token placeholder2316 stable logo url2317 shows a publicly available logo2318API::Repositories2319 GET /projects/:id/repository/tree2320 when unauthenticated and project is public2321 behaves like repository tree2322 returns the repository tree2323 when ref does not exist2324 behaves like 404 response2325 returns 4042326 when repository is disabled2327 behaves like 403 response2328 returns 4032329 with recursive=12330 returns recursive project paths tree2331 when repository is disabled2332 behaves like 403 response2333 returns 4032334 when ref does not exist2335 behaves like 404 response2336 returns 4042337 when unauthenticated and project is private2338 behaves like 404 response2339 returns 4042340 when authenticated as a developer2341 behaves like repository tree2342 returns the repository tree2343 when ref does not exist2344 behaves like 404 response2345 returns 4042346 when repository is disabled2347 behaves like 403 response2348 returns 4032349 with recursive=12350 returns recursive project paths tree2351 when repository is disabled2352 behaves like 403 response2353 returns 4032354 when ref does not exist2355 behaves like 404 response2356 returns 4042357 when authenticated as a guest2358 behaves like 403 response2359 returns 4032360 GET /projects/:id/repository/blobs/:sha2361 when unauthenticated and project is public2362 behaves like repository blob2363 returns blob attributes as json2364 when sha does not exist2365 behaves like 404 response2366 returns 4042367 when repository is disabled2368 behaves like 403 response2369 returns 4032370 when unauthenticated and project is private2371 behaves like 404 response2372 returns 4042373 when authenticated as a developer2374 behaves like repository blob2375 returns blob attributes as json2376 when sha does not exist2377 behaves like 404 response2378 returns 4042379 when repository is disabled2380 behaves like 403 response2381 returns 4032382 when authenticated as a guest2383 behaves like 403 response2384 returns 4032385 GET /projects/:id/repository/blobs/:sha/raw2386 when unauthenticated and project is public2387 behaves like repository raw blob2388 returns the repository raw blob2389 when sha does not exist2390 behaves like 404 response2391 returns 4042392 when repository is disabled2393 behaves like 403 response2394 returns 4032395 when unauthenticated and project is private2396 behaves like 404 response2397 returns 4042398 when authenticated as a developer2399 behaves like repository raw blob2400 returns the repository raw blob2401 when sha does not exist2402 behaves like 404 response2403 returns 4042404 when repository is disabled2405 behaves like 403 response2406 returns 4032407 when authenticated as a guest2408 behaves like 403 response2409 returns 4032410 GET /projects/:id/repository/archive(.:format)?:sha2411 when unauthenticated and project is public2412 behaves like repository archive2413 returns the repository archive2414 returns the repository archive archive.zip2415 returns the repository archive archive.tar.bz22416 when sha does not exist2417 behaves like 404 response2418 returns 4042419 when unauthenticated and project is private2420 behaves like 404 response2421 returns 4042422 when authenticated as a developer2423 behaves like repository archive2424 returns the repository archive2425 returns the repository archive archive.zip2426 returns the repository archive archive.tar.bz22427 when sha does not exist2428 behaves like 404 response2429 returns 4042430 when authenticated as a guest2431 behaves like 403 response2432 returns 4032433 GET /projects/:id/repository/compare2434 when unauthenticated and project is public2435 behaves like repository compare2436 compares branches2437 compares tags2438 compares commits2439 compares commits in reverse order2440 compares same refs2441 when unauthenticated and project is private2442 behaves like 404 response2443 returns 4042444 when authenticated as a developer2445 behaves like repository compare2446 compares branches2447 compares tags2448 compares commits2449 compares commits in reverse order2450 compares same refs2451 when authenticated as a guest2452 behaves like 403 response2453 returns 4032454 GET /projects/:id/repository/contributors2455 when unauthenticated and project is public2456 behaves like repository contributors2457 returns valid data2458 when unauthenticated and project is private2459 behaves like 404 response2460 returns 4042461 when authenticated as a developer2462 behaves like repository contributors2463 returns valid data2464 when authenticated as a guest2465 behaves like 403 response2466 returns 4032467Diffs URL2468 when visit with */* as accept header2469 renders the notes2470 when linking to note2471 with unresolved note2472[Vue tip]: <user-avatar-image v-for="note in notesSubset">: component lists rendered with v-for should have explicit keys. See https://vuejs.org/guide/list.html#key for more info. 2473(found in <DiffNoteAvatars>)2474 shows expanded note2475 with resolved note2476[Vue tip]: <user-avatar-image v-for="note in notesSubset">: component lists rendered with v-for should have explicit keys. See https://vuejs.org/guide/list.html#key for more info. 2477(found in <DiffNoteAvatars>)2478 shows expanded note2479 when merge request has overflow2480 displays warning2481 when editing file2482 as author2483 shows direct edit link2484 as user who needs to fork2485 shows fork/cancel confirmation2486Board with milestone2487 with the feature enabled2488 new board2489 creates board with milestone2490 update board2491 defaults milestone filter2492 sets board to any milestone2493 sets board to upcoming milestone2494 does not allow milestone in filter to be editted2495 does not render milestone in hint dropdown2496 removing issue from board2497 removes issues milestone when removing from the board2498 new issues2499 creates new issue with boards milestone2500 updates issue with milestone from add issues modal2501 with the feature disabled2502 doesn't show the input when creating a board2503 doesn't show the option to edit the milestone2504GlobalMilestone2505 .build_collection2506 has all project milestones2507 has all project milestones titles2508 has all project milestones2509 sorts collection by due date2510 .states_count2511 when the projects have milestones2512 returns the quantity of global milestones in each possible state2513 when the projects do not have milestones2514 returns 0 as the quantity of global milestones in each state2515 #initialize2516 has exactly one group milestone2517 has all project milestones with the same title2518 #safe_title2519 strips out slashes and spaces2520 #state2521 when at least one milestone is active2522 returns active2523 when all milestones are closed2524 returns closed2525Private Group access2526 Group should be private2527 #private?2528 should be truthy2529 GET /groups/:path2530 should be allowed for admin2531 should be allowed for auditor2532 should be allowed for owner2533 should be allowed for master2534 should be allowed for developer2535 should be allowed for reporter2536 should be allowed for guest2537 should be allowed for the specified user2538 should be denied for user2539 should be denied for external2540 should be denied for visitor2541 GET /groups/:path/issues2542 should be allowed for admin2543 should be allowed for auditor2544 should be allowed for owner2545 should be allowed for master2546 should be allowed for developer2547 should be allowed for reporter2548 should be allowed for guest2549 should be allowed for the specified user2550 should be denied for user2551 should be denied for external2552 should be denied for visitor2553 GET /groups/:path/merge_requests2554 should be allowed for admin2555 should be allowed for auditor2556 should be allowed for owner2557 should be allowed for master2558 should be allowed for developer2559 should be allowed for reporter2560 should be allowed for guest2561 should be allowed for the specified user2562 should be denied for user2563 should be denied for external2564 should be denied for visitor2565 GET /groups/:path/group_members2566 should be allowed for admin2567 should be allowed for auditor2568 should be allowed for owner2569 should be allowed for master2570 should be allowed for developer2571 should be allowed for reporter2572 should be allowed for guest2573 should be allowed for the specified user2574 should be denied for user2575 should be denied for external2576 should be denied for visitor2577 GET /groups/:path/edit2578 should be allowed for admin2579 should be denied for auditor2580 should be allowed for owner2581 should be denied for master2582 should be denied for developer2583 should be denied for reporter2584 should be denied for guest2585 should be denied for the specified user2586 should be denied for user2587 should be denied for visitor2588 should be denied for external2589Search bar2590 keyboard navigation2591 makes item active2592 selects item2593 clear search button2594 clears text2595 hides by default2596 hides after clicked2597 hides when there is no text2598 shows when there is text2599 resets the dropdown hint filter2600 resets the dropdown filters2601MergeRequestPolicy2602 for a merge request within the same project2603 when overwriting approvers is disabled on the project2604 does not allow anyone to update approvers2605 when overwriting approvers is enabled on the project2606 allows only project developers and above to update the approvers2607 for a merge request from a fork2608 when overwriting approvers is disabled on the target project2609 does not allow anyone to update approvers2610 when overwriting approvers is disabled on the source project2611 has no effect - project developers and above, as well as the author, can update the approvers2612 when overwriting approvers is enabled on the target project2613 allows project developers and above, as well as the author, to update the approvers2614API::V3::Todos2615 DELETE /todos/:id2616 when unauthenticated2617 returns authentication error2618 when authenticated2619 marks a todo as done2620 updates todos cache2621 DELETE /todos2622 when unauthenticated2623 returns authentication error2624 when authenticated2625 marks all todos as done2626 updates todos cache2627Note2628 searches notes2629 indexes && searches diff notes2630 returns json with all needed elements2631 does not create ElasticIndexerWorker job for system messages2632 notes to confidential issues2633 does not find note2634 finds note when user is authorized to see it2635 finds note for admin2636 finds note for auditor2637 return notes with matching content for project members2638 does not return notes with matching content for project members with guest role2639Check if mergeable with unresolved discussions2640 when project.only_allow_merge_if_all_discussions_are_resolved == true2641 with unresolved discussions2642 does not allow to merge2643 with all discussions resolved2644 allows MR to be merged2645 when project.only_allow_merge_if_all_discussions_are_resolved == false2646 with unresolved discussions2647 does not allow to merge2648 with all discussions resolved2649 allows MR to be merged2650Subscribable Subscribable2651 #subscribed?2652 without project2653 returns false when no subscription exists2654 returns true when a subcription exists and subscribed is true2655 returns false when a subcription exists and subscribed is false2656 with project2657 returns false when no subscription exists2658 returns true when a subcription exists and subscribed is true2659 returns false when a subcription exists and subscribed is false2660 #subscribers2661 returns [] when no subcribers exists2662 returns the subscribed users2663 #toggle_subscription2664 without project2665 toggles the current subscription state for the given user2666 with project2667 toggles the current subscription state for the given user2668 #subscribe2669 without project2670 subscribes the given user2671 with project2672 subscribes the given user2673 #unsubscribe2674 without project2675 unsubscribes the given current user2676 with project2677 unsubscribes the given current user2678Projects::MergeRequests::CreationsController2679 POST #create2680 the approvals_before_merge param2681 when it is less than the one in the target project2682 sets the param to nil2683 creates the merge request2684 when it is equal to the one in the target project2685 sets the param to nil2686 creates the merge request2687 when it is greater than the one in the target project2688 saves the param in the merge request2689 creates the merge request2690 when the target project is a fork of a deleted project2691 uses the default from the target project2692 creates the merge request2693Ci::LegacyStage2694 #expectations2695 should includes the StaticModel module2696 should respond to #pipeline2697 should respond to #name2698 should delegate #project to #pipeline object2699 #statuses2700 returns only matching statuses2701 #groups2702 returns an array of three groups2703 returns groups with correctly ordered statuses2704 returns groups with correct names2705 when a name is nil on legacy pipelines2706 returns an array of three groups2707 #statuses_count2708 counts statuses only from current stage2709 #builds2710 returns only builds2711 #status2712 if status is already defined2713 returns defined status2714 if status has to be calculated2715 returns status of a build2716 and builds are retried2717 returns status of latest build2718 #detailed_status2719 when build is created2720 returns detailed status for created stage2721 when build is pending2722 returns detailed status for pending stage2723 when build is running2724 returns detailed status for running stage2725 when build is successful2726 returns detailed status for successful stage2727 when build is failed2728 returns detailed status for failed stage2729 when build is canceled2730 returns detailed status for canceled stage2731 when build is skipped2732 returns detailed status for skipped stage2733 #success?2734 when stage is successful2735 is successful2736 when stage is not successful2737 is not successful2738 #has_warnings?2739 when stage has warnings2740 when using memoized warnings flag2741 when there are warnings2742 returns true using memoized value2743 when there are no warnings2744 returns false using memoized value2745 when number of warnings is not a valid value2746 calculates statuses using database queries2747 when calculating warnings from statuses2748 has warnings calculated from statuses2749 when stage does not have warnings2750 does not have warnings calculated from statuses2751Gitlab::UsageData2752 #data2753 gathers usage data2754 gathers usage counts2755 gathers projects data correctly2756 #license_usage_data2757 gathers license data2758 .service_desk_counts2759 when Service Desk is disabled2760 returns an empty hash2761 when there is no license2762 returns an empty hash2763 when Service Desk is enabled2764 gathers Service Desk data2765Banzai::Filter::IssuableStateFilter2766 ignores non-GFM links2767 ignores non-issuable links2768 ignores issuable links with empty content2769 ignores issuable links with custom anchor2770 ignores issuable links to specific comments2771 ignores merge request links to diffs tab2772 handles cross project references2773 does not append state when filter is not enabled2774 when project is in pending delete2775 does not append issue state2776 for issue references2777 ignores open issue references2778 appends state to closed issue references2779 for merge request references2780 ignores open merge request references2781 ignores reopened merge request references2782 ignores locked merge request references2783 appends state to closed merge request references2784 appends state to merged merge request references2785PipelinesEmailService2786 Validations2787 when service is active2788 should validate that :recipients cannot be empty/falsy2789 when service is inactive2790 should not validate that :recipients cannot be empty/falsy2791 #test_data2792 builds test data2793 #test2794 when pipeline is failed2795 behaves like sending email2796 sends email2797 when pipeline is succeeded2798 behaves like sending email2799 sends email2800 #execute2801 with recipients2802 with failed pipeline2803 behaves like sending email2804 sends email2805 with succeeded pipeline2806 behaves like not sending email2807 does not send email2808 with notify_only_broken_pipelines on2809 with failed pipeline2810 behaves like sending email2811 sends email2812 with succeeded pipeline2813 behaves like not sending email2814 does not send email2815 with empty recipients list2816 with failed pipeline2817 behaves like not sending email2818 does not send email2819ProjectFeature2820 .quoted_access_level_column2821 returns the table name and quoted column name for a feature2822 #feature_available?2823 when features are disabled2824 returns false2825 when features are enabled only for team members2826 returns false when user is not a team member2827 returns true when user is a team member2828 returns true when user is a member of project group2829 returns true if user is an admin2830 returns true if user is an auditor2831 when feature is enabled for everyone2832 returns true2833 repository related features2834 does not allow repository related features have higher level2835 #*_enabled?2836 returns false when feature is disabled2837 returns true when feature is enabled only for team members2838 returns true when feature is enabled for everyone2839NotificationSettingsController2840 #create2841 when not authorized2842 redirects to sign in page2843 when authorized2844 for projects2845 creates notification setting2846 with custom settings2847 creates notification setting2848 for groups2849 creates notification setting2850 with custom settings2851 creates notification setting2852 not authorized2853 returns 4042854 #update2855 when not authorized2856 redirects to sign in page2857 when authorized2858 returns success2859 and setting custom notification setting2860 returns success2861 not authorized2862 returns 4042863MergeRequests::AssignIssuesService2864 finds unassigned issues fixed in merge request2865 ignores issues the user cannot update assignee on2866 ignores issues already assigned to any user2867 ignores all issues unless current_user is merge_request.author2868 accepts precomputed data for closes_issues2869 assigns these to the merge request owner2870 ignores external issues2871OpenID Connect requests2872 Application without OpenID scope2873 token response does not include an ID token2874 userinfo response is unauthorized2875 Application with OpenID scope2876 token response includes an ID token2877 UserInfo payload2878 includes all user information2879 ID token payload2880 includes the Gitlab root URL2881 includes the hashed user ID2882 includes the time of the last authentication2883 does not include any unknown properties2884 when user is blocked2885 returns authentication error2886 when user is ldap_blocked2887 returns authentication error2888API::Issues2889 GET /issues2890 when authenticated2891 matches V4 response schema2892 POST /projects/:id/issues2893 creates a new project issue2894 PUT /projects/:id/issues/:issue_id to update weight2895 updates an issue with no weight2896 removes a weight from an issue2897 returns 400 if weight is less than minimum weight2898 returns 400 if weight is more than maximum weight2899 issuable weights unlicensed2900 ignores the update2901User Feed2902 GET /2903 user atom feed via private token2904 renders user atom feed2905 user atom feed via RSS token2906 renders user atom feed2907 feed content2908 has issue opened event2909 has issue comment event2910 has XHTML summaries in issue descriptions2911 has XHTML summaries in notes2912 has XHTML summaries in merge request descriptions2913Banzai::ReferenceParser::CommitParser2914 #nodes_visible_to_user2915 when the link has a data-issue attribute2916 behaves like referenced feature visibility2917 when feature is disabled2918 does not create reference2919 when feature is enabled only for team members2920 does not create reference for non member2921 creates reference for member2922 when feature is enabled2923 creates reference2924 #referenced_by2925 when the link has a data-project attribute2926 when the link has a data-commit attribute2927 returns an Array of commits2928 returns an empty Array when the commit could not be found2929 skips projects without valid repositories2930 when the link does not have a data-commit attribute2931 returns an empty Array2932 when the link does not have a data-project attribute2933 returns an empty Array2934 #commit_ids_per_project2935 returns a Hash containing commit IDs per project2936 does not add a project when the data-commit attribute is empty2937 #find_commits2938 returns an Array of commit objects2939 skips commit IDs for which no commit could be found2940Pipelines for Merge Requests2941 with pipelines2942 user visits merge request pipelines tab2943 without pipelines2944 user visits merge request page2945ExpirePipelineCacheWorker2946 #perform2947 invalidates Etag caching for project pipelines path2948 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch2949 doesn't do anything if the pipeline not exist2950 updates the cached status for a project2951 when pipeline is triggered by other pipeline2952 updates the cache of dependent pipeline2953 when pipeline triggered other pipeline2954 updates the cache of dependent pipeline2955Gitlab::DataBuilder::Pipeline2956 .build2957 should be a kind of Hash2958 should eq "master"2959 should eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"2960 should eq false2961 should eq 52962 should eq "success"2963 should be a kind of Hash2964 should eq 82965 should eq "pending"2966 should eq {:name=>"project1004", :description=>nil, :web_url=>"http://localhost/namespace994/gitlabhq", :avatar...=>0, :path_with_namespace=>"namespace994/gitlabhq", :default_branch=>"master", :ci_config_path=>nil}2967Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces2968 #namespaces_for_paths2969 nested namespaces2970 includes the namespace2971 for child namespaces2972 only returns child namespaces with the correct path2973 has no namespaces that look the same2974 for top levelnamespaces2975 only returns child namespaces with the correct path2976 has no namespaces that just look the same2977 #move_repositories2978 moves a project for a namespace2979 moves a namespace in a subdirectory correctly2980 moves a parent namespace with subdirectories2981 #child_ids_for_parent2982 collects child ids for all levels2983 #rename_namespace2984 renames paths & routes for the namespace2985 tracks the rename2986 renames things related to the namespace2987 #rename_namespace_dependencies2988 moves the the repository for a project in the namespace2989 moves the uploads for the namespace2990 moves the pages for the namespace2991 invalidates the markdown cache of related projects2992 doesn't rename users for other namespaces2993 renames the username of a namespace for a user2994 #rename_user2995 renames a username2996 #rename_namespaces2997 renames top level namespaces the namespace2998 renames child namespaces2999 #revert_renames3000 renames the routes back to the previous values3001 moves the repositories back to their original place3002 doesn't break when the namespace was renamed3003list of badges3004 user wants to see build status badge3005 user wants to see coverage report badge3006 user changes current ref of build status badge3007AdminEmailsWorker3008 recipients3009 sending emails to members of a group only3010 sends email to subscribed users3011 sending emails to members of a project only3012 sends email to subscribed users3013 sending emails to users directly3014 sends email to subscribed users3015Projects::ProtectedBranchesController3016 GET #index3017 redirects empty repo to projects page3018RolloutStatusEntity3019 should have key :instances3020 should have key :completion3021 should have key :is_completed3022 should have key :valid3023shared/projects/_project.html.haml3024 should render creator avatar if project has a creator3025 should render a generic avatar if project does not have a creator3026Knapsack report was generated. Preview:3027{3028 "spec/mailers/notify_spec.rb": 352.3487505912781,3029 "spec/controllers/projects/merge_requests_controller_spec.rb": 44.94749689102173,3030 "spec/features/protected_branches_spec.rb": 112.07154488563538,3031 "spec/features/security/project/snippet/internal_access_spec.rb": 30.136202812194824,3032 "spec/requests/api/award_emoji_spec.rb": 24.230592966079712,3033 "spec/requests/api/commit_statuses_spec.rb": 19.408526182174683,3034 "spec/controllers/projects/boards/lists_controller_spec.rb": 16.077795028686523,3035 "spec/features/projects/services/mattermost_slash_command_spec.rb": 27.97571587562561,3036 "spec/requests/api/repositories_spec.rb": 27.665427207946777,3037 "spec/features/merge_requests/diffs_spec.rb": 20.53185725212097,3038 "spec/features/boards/board_with_milestone_spec.rb": 26.190436363220215,3039 "spec/models/global_milestone_spec.rb": 6.443877696990967,3040 "spec/features/security/group/private_access_spec.rb": 16.97166085243225,3041 "spec/features/issues/filtered_search/search_bar_spec.rb": 11.306233882904053,3042 "spec/policies/ee/merge_request_policy_spec.rb": 7.6138012409210205,3043 "spec/requests/api/v3/todos_spec.rb": 14.036106586456299,3044 "spec/models/concerns/elastic/note_spec.rb": 13.082386493682861,3045 "spec/features/merge_requests/check_if_mergeable_with_unresolved_discussions_spec.rb": 8.584493398666382,3046 "spec/models/concerns/subscribable_spec.rb": 6.222197532653809,3047 "spec/controllers/projects/merge_requests/creations_controller_ee_spec.rb": 6.2271177768707275,3048 "spec/models/ci/legacy_stage_spec.rb": 9.378695249557495,3049 "spec/lib/gitlab/usage_data_spec.rb": 6.624197006225586,3050 "spec/lib/banzai/filter/issuable_state_filter_spec.rb": 8.49057149887085,3051 "spec/models/project_services/pipelines_email_service_spec.rb": 3.9204750061035156,3052 "spec/models/project_feature_spec.rb": 4.28041410446167,3053 "spec/controllers/notification_settings_controller_spec.rb": 4.677590608596802,3054 "spec/services/merge_requests/assign_issues_service_spec.rb": 6.78561544418335,3055 "spec/requests/openid_connect_spec.rb": 2.2077083587646484,3056 "spec/requests/api/ee/issues_spec.rb": 1.7301075458526611,3057 "spec/features/atom/users_spec.rb": 5.306695222854614,3058 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 5.143778085708618,3059 "spec/features/merge_requests/pipelines_spec.rb": 4.44863224029541,3060 "spec/workers/expire_pipeline_cache_worker_spec.rb": 3.3353569507598877,3061 "spec/lib/gitlab/data_builder/pipeline_spec.rb": 4.4693920612335205,3062 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb": 4.960271835327148,3063 "spec/features/projects/badges/list_spec.rb": 4.86308741569519,3064 "spec/workers/admin_emails_worker_spec.rb": 3.9755733013153076,3065 "spec/controllers/projects/protected_branches_controller_spec.rb": 0.5392253398895264,3066 "spec/serializers/rollout_status_entity_spec.rb": 0.0215451717376709,3067 "spec/views/shared/projects/_project.html.haml_spec.rb": 0.77791929244995123068}3069Knapsack global time execution for tests: 14m 38s3070Finished in 16 minutes 47 seconds (files took 19.51 seconds to load)30711025 examples, 0 failures3072Not uploading cache ruby-233-with-yarn due to policy3073Uploading artifacts...3074coverage/: found 5 matching files 3075knapsack/: found 7 matching files 3076WARNING: tmp/capybara/: no matching files 3077Uploading artifacts to coordinator... ok id=28149501 responseStatus=201 Created token=2V9hVMn23078Job succeeded