rspec-mysql 13 25
Passed Started
by
@godfat
Lin Jen-Shin
1Running with gitlab-ci-multi-runner 9.4.2 (6d06f2e)2 on docker-auto-scale (9a6801bd)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 mysql:latest ...5Pulling docker image mysql:latest ...6Using docker image mysql:latest ID=sha256:c73c7527c03a13729a6bba88a3251c95629e8036c0ccf17dadefb4c5f077a315 for mysql 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:85fb3597e6e254023d920c4e7a74fdcd2f4422368ce7273c54ca73870f6d50a6 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-9a6801bd-project-278964-concurrent-0 via runner-9a6801bd-auto-scale-1501873730-81308805...18Cloning repository for ce-to-ee-2017-08-03 with git depth set to 20...19Cloning into '/builds/gitlab-org/gitlab-ee'...20Checking out 22476cad as ce-to-ee-2017-08-03...21Skipping Git submodules setup22Checking cache for ruby-233-with-yarn...23Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/278964/ruby-233-with-yarn 24Successfully extracted cache25Downloading artifacts for knapsack (28149484)...26Downloading artifacts from coordinator... ok id=28149484 responseStatus=200 OK token=CTkmdks227Downloading artifacts for setup-test-env (28149485)...28Downloading artifacts from coordinator... ok id=28149485 responseStatus=200 OK token=r7fdcY_Z29WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 30$ bundle --version31Bundler version 1.14.632$ source scripts/utils.sh33$ source scripts/prepare_build.sh34Warning: 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`.35The Gemfile's dependencies are satisfied36Successfully installed knapsack-1.14.0371 gem installed38Database 'gitlabhq_test' does not exist39WARNING: Unable to check/update clone_url_prefix for Geo: Mysql2::Error: Table 'gitlabhq_test.geo_nodes' doesn't exist: SHOW FULL FIELDS FROM `geo_nodes`40Missing Rails.application.secrets.secret_key_base for test environment. The secret will be generated and stored in config/secrets.yml.41Missing Rails.application.secrets.otp_key_base for test environment. The secret will be generated and stored in config/secrets.yml.42Missing Rails.application.secrets.db_key_base for test environment. The secret will be generated and stored in config/secrets.yml.43Missing Rails.application.secrets.jws_private_key for test environment. The secret will be generated and stored in config/secrets.yml.44-- enable_extension("plpgsql")45 -> 0.0048s46-- enable_extension("pg_trgm")47 -> 0.0000s48-- create_table("abuse_reports", {:force=>:cascade})49 -> 0.0283s50-- create_table("appearances", {:force=>:cascade})51 -> 0.0168s52-- create_table("application_settings", {:force=>:cascade})53 -> 0.0341s54-- create_table("approvals", {:force=>:cascade})55 -> 0.0184s56-- add_index("approvals", ["merge_request_id"], {:name=>"index_approvals_on_merge_request_id", :using=>:btree})57 -> 0.0302s58-- create_table("approver_groups", {:force=>:cascade})59 -> 0.0144s60-- add_index("approver_groups", ["group_id"], {:name=>"index_approver_groups_on_group_id", :using=>:btree})61 -> 0.0196s62-- add_index("approver_groups", ["target_id", "target_type"], {:name=>"index_approver_groups_on_target_id_and_target_type", :using=>:btree})63 -> 0.0102s64-- create_table("approvers", {:force=>:cascade})65 -> 0.0117s66-- add_index("approvers", ["target_id", "target_type"], {:name=>"index_approvers_on_target_id_and_target_type", :using=>:btree})67 -> 0.0116s68-- add_index("approvers", ["user_id"], {:name=>"index_approvers_on_user_id", :using=>:btree})69 -> 0.0148s70-- create_table("audit_events", {:force=>:cascade})71 -> 0.0188s72-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})73 -> 0.0208s74-- create_table("award_emoji", {:force=>:cascade})75 -> 0.0135s76-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})77 -> 0.0174s78-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})79 -> 0.0118s80-- create_table("boards", {:force=>:cascade})81 -> 0.0121s82-- add_index("boards", ["milestone_id"], {:name=>"index_boards_on_milestone_id", :using=>:btree})83 -> 0.0122s84-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})85 -> 0.0164s86-- create_table("broadcast_messages", {:force=>:cascade})87 -> 0.0112s88-- create_table("chat_names", {:force=>:cascade})89 -> 0.0168s90-- 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})91 -> 0.0136s92-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})93 -> 0.0134s94-- create_table("chat_teams", {:force=>:cascade})95 -> 0.0124s96-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})97 -> 0.0111s98-- create_table("ci_builds", {:force=>:cascade})99 -> 0.0140s100-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})101 -> 0.0244s102-- 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})103 -> 0.0176s104-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})105 -> 0.0161s106-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})107 -> 0.0191s108-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})109 -> 0.0181s110-- add_index("ci_builds", ["project_id"], {:name=>"index_ci_builds_on_project_id", :using=>:btree})111 -> 0.0301s112-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})113 -> 0.0203s114-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})115 -> 0.0227s116-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})117 -> 0.0466s118-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})119 -> 0.0239s120-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})121 -> 0.0372s122-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})123 -> 0.0270s124-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})125 -> 0.0299s126-- create_table("ci_group_variables", {:force=>:cascade})127 -> 0.0212s128-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})129 -> 0.0367s130-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})131 -> 0.0158s132-- 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})133 -> 0.0147s134-- create_table("ci_pipeline_schedules", {:force=>:cascade})135 -> 0.0167s136-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})137 -> 0.0223s138-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})139 -> 0.0128s140-- create_table("ci_pipeline_variables", {:force=>:cascade})141 -> 0.0137s142-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})143 -> 0.0162s144-- create_table("ci_pipelines", {:force=>:cascade})145 -> 0.0232s146-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})147 -> 0.0184s148-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})149 -> 0.0241s150-- add_index("ci_pipelines", ["project_id", "ref", "status"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status", :using=>:btree})151 -> 0.0160s152-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})153 -> 0.0136s154-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})155 -> 0.0208s156-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})157 -> 0.0130s158-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})159 -> 0.0161s160-- create_table("ci_runner_projects", {:force=>:cascade})161 -> 0.0116s162-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})163 -> 0.0108s164-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})165 -> 0.0191s166-- create_table("ci_runners", {:force=>:cascade})167 -> 0.0169s168-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})169 -> 0.0171s170-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})171 -> 0.0139s172-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})173 -> 0.0154s174-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})175 -> 0.0124s176-- create_table("ci_sources_pipelines", {:force=>:cascade})177 -> 0.0127s178-- add_index("ci_sources_pipelines", ["pipeline_id"], {:name=>"index_ci_pipeline_source_pipelines_on_pipeline_id", :using=>:btree})179 -> 0.0193s180-- add_index("ci_sources_pipelines", ["project_id"], {:name=>"index_ci_pipeline_source_pipelines_on_project_id", :using=>:btree})181 -> 0.0112s182-- add_index("ci_sources_pipelines", ["source_job_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_job_id", :using=>:btree})183 -> 0.0105s184-- add_index("ci_sources_pipelines", ["source_pipeline_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_pipeline_id", :using=>:btree})185 -> 0.0144s186-- add_index("ci_sources_pipelines", ["source_project_id"], {:name=>"index_ci_pipeline_source_pipelines_on_source_project_id", :using=>:btree})187 -> 0.0119s188-- create_table("ci_stages", {:force=>:cascade})189 -> 0.0166s190-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :using=>:btree})191 -> 0.0200s192-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})193 -> 0.0165s194-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})195 -> 0.0204s196-- create_table("ci_trigger_requests", {:force=>:cascade})197 -> 0.0144s198-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})199 -> 0.0150s200-- create_table("ci_triggers", {:force=>:cascade})201 -> 0.0161s202-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})203 -> 0.0390s204-- create_table("ci_variables", {:force=>:cascade})205 -> 0.0231s206-- 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})207 -> 0.0290s208-- create_table("container_repositories", {:force=>:cascade})209 -> 0.0135s210-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})211 -> 0.0204s212-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})213 -> 0.0123s214-- create_table("conversational_development_index_metrics", {:force=>:cascade})215 -> 0.0159s216-- create_table("deploy_keys_projects", {:force=>:cascade})217 -> 0.0170s218-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})219 -> 0.0138s220-- create_table("deployments", {:force=>:cascade})221 -> 0.0152s222-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})223 -> 0.0116s224-- add_index("deployments", ["project_id", "environment_id", "iid"], {:name=>"index_deployments_on_project_id_and_environment_id_and_iid", :using=>:btree})225 -> 0.0167s226-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})227 -> 0.0142s228-- create_table("emails", {:force=>:cascade})229 -> 0.0132s230-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})231 -> 0.0123s232-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})233 -> 0.0161s234-- create_table("environments", {:force=>:cascade})235 -> 0.0147s236-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})237 -> 0.0167s238-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})239 -> 0.1395s240-- create_table("events", {:force=>:cascade})241 -> 0.0149s242-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})243 -> 0.0162s244-- add_index("events", ["author_id"], {:name=>"index_events_on_author_id", :using=>:btree})245 -> 0.0202s246-- add_index("events", ["created_at"], {:name=>"index_events_on_created_at", :using=>:btree})247 -> 0.0206s248-- add_index("events", ["project_id"], {:name=>"index_events_on_project_id", :using=>:btree})249 -> 0.0151s250-- add_index("events", ["target_id"], {:name=>"index_events_on_target_id", :using=>:btree})251 -> 0.0147s252-- add_index("events", ["target_type"], {:name=>"index_events_on_target_type", :using=>:btree})253 -> 0.0105s254-- create_table("feature_gates", {:force=>:cascade})255 -> 0.0191s256-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})257 -> 0.0177s258-- create_table("features", {:force=>:cascade})259 -> 0.0145s260-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})261 -> 0.0116s262-- create_table("forked_project_links", {:force=>:cascade})263 -> 0.0123s264-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})265 -> 0.0102s266-- create_table("geo_event_log", {:id=>:bigserial, :force=>:cascade})267 -> 0.0138s268-- add_index("geo_event_log", ["repository_updated_event_id"], {:name=>"index_geo_event_log_on_repository_updated_event_id", :using=>:btree})269 -> 0.0102s270-- create_table("geo_nodes", {:force=>:cascade})271 -> 0.0146s272-- add_index("geo_nodes", ["access_key"], {:name=>"index_geo_nodes_on_access_key", :using=>:btree})273 -> 0.0104s274-- add_index("geo_nodes", ["host"], {:name=>"index_geo_nodes_on_host", :using=>:btree})275 -> 0.0157s276-- add_index("geo_nodes", ["primary"], {:name=>"index_geo_nodes_on_primary", :using=>:btree})277 -> 0.0141s278-- create_table("geo_repository_deleted_events", {:id=>:bigserial, :force=>:cascade})279 -> 0.0159s280-- add_index("geo_repository_deleted_events", ["project_id"], {:name=>"index_geo_repository_deleted_events_on_project_id", :using=>:btree})281 -> 0.0183s282-- create_table("geo_repository_renamed_events", {:id=>:bigserial, :force=>:cascade})283 -> 0.0117s284-- add_index("geo_repository_renamed_events", ["project_id"], {:name=>"index_geo_repository_renamed_events_on_project_id", :using=>:btree})285 -> 0.0280s286-- create_table("geo_repository_updated_events", {:id=>:bigserial, :force=>:cascade})287 -> 0.0107s288-- add_index("geo_repository_updated_events", ["project_id"], {:name=>"index_geo_repository_updated_events_on_project_id", :using=>:btree})289 -> 0.0110s290-- add_index("geo_repository_updated_events", ["source"], {:name=>"index_geo_repository_updated_events_on_source", :using=>:btree})291 -> 0.0126s292-- create_table("historical_data", {:force=>:cascade})293 -> 0.0128s294-- create_table("gpg_keys", {:force=>:cascade})295 -> 0.0111s296-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})297 -> 0.0148s298-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})299 -> 0.0119s300-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})301 -> 0.0114s302-- create_table("gpg_signatures", {:force=>:cascade})303 -> 0.0124s304-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})305 -> 0.0108s306-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})307 -> 0.0102s308-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})309 -> 0.0130s310-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})311 -> 0.0092s312-- create_table("identities", {:force=>:cascade})313 -> 0.0107s314-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})315 -> 0.0121s316-- create_table("index_statuses", {:force=>:cascade})317 -> 0.0110s318-- add_index("index_statuses", ["project_id"], {:name=>"index_index_statuses_on_project_id", :unique=>true, :using=>:btree})319 -> 0.0098s320-- create_table("issue_assignees", {:id=>false, :force=>:cascade})321 -> 0.0103s322-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})323 -> 0.0199s324-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})325 -> 0.0094s326-- create_table("issue_links", {:force=>:cascade})327 -> 0.0132s328-- add_index("issue_links", ["source_id", "target_id"], {:name=>"index_issue_links_on_source_id_and_target_id", :unique=>true, :using=>:btree})329 -> 0.0103s330-- add_index("issue_links", ["source_id"], {:name=>"index_issue_links_on_source_id", :using=>:btree})331 -> 0.0093s332-- add_index("issue_links", ["target_id"], {:name=>"index_issue_links_on_target_id", :using=>:btree})333 -> 0.0138s334-- create_table("issue_metrics", {:force=>:cascade})335 -> 0.0123s336-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})337 -> 0.0161s338-- create_table("issues", {:force=>:cascade})339 -> 0.0121s340-- add_index("issues", ["assignee_id"], {:name=>"index_issues_on_assignee_id", :using=>:btree})341 -> 0.0130s342-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})343 -> 0.0103s344-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})345 -> 0.0101s346-- add_index("issues", ["deleted_at"], {:name=>"index_issues_on_deleted_at", :using=>:btree})347 -> 0.0116s348-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})349 -> 0.0018s350-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})351 -> 0.0094s352-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})353 -> 0.0163s354-- add_index("issues", ["project_id", "due_date", "id", "state"], {:name=>"index_issues_on_project_id_and_due_date_and_id_and_state", :using=>:btree})355 -> 0.0145s356-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})357 -> 0.0107s358-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})359 -> 0.0142s360-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})361 -> 0.0120s362-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})363 -> 0.0113s364-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})365 -> 0.0019s366-- create_table("keys", {:force=>:cascade})367 -> 0.0151s368-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})369 -> 0.0199s370-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})371 -> 0.0128s372-- create_table("label_links", {:force=>:cascade})373 -> 0.0118s374-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})375 -> 0.0129s376-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})377 -> 0.0100s378-- create_table("label_priorities", {:force=>:cascade})379 -> 0.0115s380-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})381 -> 0.0108s382-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})383 -> 0.0103s384-- create_table("labels", {:force=>:cascade})385 -> 0.0150s386-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})387 -> 0.0135s388-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})389 -> 0.0171s390-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})391 -> 0.0122s392-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})393 -> 0.0149s394-- create_table("ldap_group_links", {:force=>:cascade})395 -> 0.0187s396-- create_table("lfs_objects", {:force=>:cascade})397 -> 0.0139s398-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})399 -> 0.0157s400-- create_table("lfs_objects_projects", {:force=>:cascade})401 -> 0.0135s402-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})403 -> 0.0153s404-- create_table("licenses", {:force=>:cascade})405 -> 0.0111s406-- create_table("lists", {:force=>:cascade})407 -> 0.0108s408-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})409 -> 0.0138s410-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})411 -> 0.0156s412-- create_table("members", {:force=>:cascade})413 -> 0.0161s414-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})415 -> 0.0196s416-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})417 -> 0.0148s418-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})419 -> 0.0193s420-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})421 -> 0.0350s422-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})423 -> 0.0112s424-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})425 -> 0.0199s426-- 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})427 -> 0.0539s428-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})429 -> 0.0143s430-- 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})431 -> 0.0526s432-- create_table("merge_request_diffs", {:force=>:cascade})433 -> 0.0146s434-- add_index("merge_request_diffs", ["merge_request_id"], {:name=>"index_merge_request_diffs_on_merge_request_id", :using=>:btree})435 -> 0.0264s436-- create_table("merge_request_metrics", {:force=>:cascade})437 -> 0.0295s438-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})439 -> 0.0239s440-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})441 -> 0.0435s442-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})443 -> 0.0390s444-- create_table("merge_requests", {:force=>:cascade})445 -> 0.0169s446-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})447 -> 0.0626s448-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})449 -> 0.0664s450-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})451 -> 0.0631s452-- add_index("merge_requests", ["deleted_at"], {:name=>"index_merge_requests_on_deleted_at", :using=>:btree})453 -> 0.0373s454-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})455 -> 0.0034s456-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})457 -> 0.0336s458-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})459 -> 0.0235s460-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})461 -> 0.0557s462-- add_index("merge_requests", ["source_project_id"], {:name=>"index_merge_requests_on_source_project_id", :using=>:btree})463 -> 0.0619s464-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})465 -> 0.0367s466-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})467 -> 0.0395s468-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})469 -> 0.0606s470-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})471 -> 0.0115s472-- create_table("merge_requests_closing_issues", {:force=>:cascade})473 -> 0.0453s474-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})475 -> 0.0309s476-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})477 -> 0.0313s478-- create_table("milestones", {:force=>:cascade})479 -> 0.0279s480-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})481 -> 0.0073s482-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})483 -> 0.0876s484-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})485 -> 0.0345s486-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})487 -> 0.0248s488-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})489 -> 0.0233s490-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})491 -> 0.0063s492-- create_table("namespace_statistics", {:force=>:cascade})493 -> 0.0331s494-- add_index("namespace_statistics", ["namespace_id"], {:name=>"index_namespace_statistics_on_namespace_id", :unique=>true, :using=>:btree})495 -> 0.0296s496-- create_table("namespaces", {:force=>:cascade})497 -> 0.0171s498-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})499 -> 0.0213s500-- add_index("namespaces", ["deleted_at"], {:name=>"index_namespaces_on_deleted_at", :using=>:btree})501 -> 0.0208s502-- add_index("namespaces", ["ldap_sync_last_successful_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_successful_update_at", :using=>:btree})503 -> 0.0194s504-- add_index("namespaces", ["ldap_sync_last_update_at"], {:name=>"index_namespaces_on_ldap_sync_last_update_at", :using=>:btree})505 -> 0.0250s506-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})507 -> 0.0179s508-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})509 -> 0.0025s510-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})511 -> 0.0326s512-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})513 -> 0.0264s514-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})515 -> 0.0123s516-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})517 -> 0.0017s518-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})519 -> 0.0117s520-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})521 -> 0.0129s522-- create_table("notes", {:force=>:cascade})523 -> 0.0131s524-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})525 -> 0.0112s526-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})527 -> 0.0165s528-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})529 -> 0.0215s530-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})531 -> 0.0127s532-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})533 -> 0.0108s534-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})535 -> 0.0018s536-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})537 -> 0.0183s538-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})539 -> 0.0148s540-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})541 -> 0.0164s542-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})543 -> 0.0406s544-- create_table("notification_settings", {:force=>:cascade})545 -> 0.0307s546-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})547 -> 0.0209s548-- 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})549 -> 0.0233s550-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})551 -> 0.0173s552-- create_table("oauth_access_grants", {:force=>:cascade})553 -> 0.0251s554-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})555 -> 0.0349s556-- create_table("oauth_access_tokens", {:force=>:cascade})557 -> 0.0404s558-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})559 -> 0.0220s560-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})561 -> 0.0322s562-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})563 -> 0.0197s564-- create_table("oauth_applications", {:force=>:cascade})565 -> 0.0247s566-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})567 -> 0.0173s568-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})569 -> 0.0182s570-- create_table("oauth_openid_requests", {:force=>:cascade})571 -> 0.0128s572-- create_table("pages_domains", {:force=>:cascade})573 -> 0.0219s574-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})575 -> 0.0125s576-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})577 -> 0.0102s578-- create_table("path_locks", {:force=>:cascade})579 -> 0.0112s580-- add_index("path_locks", ["path"], {:name=>"index_path_locks_on_path", :using=>:btree})581 -> 0.0165s582-- add_index("path_locks", ["project_id"], {:name=>"index_path_locks_on_project_id", :using=>:btree})583 -> 0.0110s584-- add_index("path_locks", ["user_id"], {:name=>"index_path_locks_on_user_id", :using=>:btree})585 -> 0.0120s586-- create_table("personal_access_tokens", {:force=>:cascade})587 -> 0.0131s588-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})589 -> 0.0102s590-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})591 -> 0.0303s592-- create_table("project_authorizations", {:id=>false, :force=>:cascade})593 -> 0.0132s594-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})595 -> 0.0289s596-- 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})597 -> 0.0188s598-- create_table("project_features", {:force=>:cascade})599 -> 0.0127s600-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})601 -> 0.0109s602-- create_table("project_group_links", {:force=>:cascade})603 -> 0.0162s604-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})605 -> 0.0112s606-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})607 -> 0.0101s608-- create_table("project_import_data", {:force=>:cascade})609 -> 0.0112s610-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})611 -> 0.0130s612-- create_table("project_mirror_data", {:force=>:cascade})613 -> 0.0133s614-- add_index("project_mirror_data", ["project_id"], {:name=>"index_project_mirror_data_on_project_id", :unique=>true, :using=>:btree})615 -> 0.0146s616-- create_table("project_statistics", {:force=>:cascade})617 -> 0.0110s618-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})619 -> 0.0143s620-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})621 -> 0.0159s622-- create_table("projects", {:force=>:cascade})623 -> 0.0153s624-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})625 -> 0.0169s626-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})627 -> 0.0134s628-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})629 -> 0.0171s630-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})631 -> 0.0036s632-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})633 -> 0.0130s634-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})635 -> 0.0287s636-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})637 -> 0.0324s638-- add_index("projects", ["mirror_last_successful_update_at"], {:name=>"index_projects_on_mirror_last_successful_update_at", :using=>:btree})639 -> 0.0312s640-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})641 -> 0.0038s642-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})643 -> 0.0275s644-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})645 -> 0.0446s646-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})647 -> 0.0042s648-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})649 -> 0.0202s650-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})651 -> 0.0185s652-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})653 -> 0.0251s654-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})655 -> 0.0237s656-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})657 -> 0.0270s658-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})659 -> 0.0130s660-- add_index("protected_branch_merge_access_levels", ["user_id"], {:name=>"index_protected_branch_merge_access_levels_on_user_id", :using=>:btree})661 -> 0.0211s662-- create_table("protected_branch_push_access_levels", {:force=>:cascade})663 -> 0.0306s664-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})665 -> 0.0319s666-- add_index("protected_branch_push_access_levels", ["user_id"], {:name=>"index_protected_branch_push_access_levels_on_user_id", :using=>:btree})667 -> 0.0477s668-- create_table("protected_branches", {:force=>:cascade})669 -> 0.0637s670-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})671 -> 0.0152s672-- create_table("protected_tag_create_access_levels", {:force=>:cascade})673 -> 0.0462s674-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})675 -> 0.0461s676-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})677 -> 0.0134s678-- create_table("protected_tags", {:force=>:cascade})679 -> 0.0215s680-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})681 -> 0.0264s682-- create_table("push_rules", {:force=>:cascade})683 -> 0.0606s684-- add_index("push_rules", ["project_id"], {:name=>"index_push_rules_on_project_id", :using=>:btree})685 -> 0.0213s686-- create_table("redirect_routes", {:force=>:cascade})687 -> 0.0231s688-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})689 -> 0.0347s690-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})691 -> 0.0015s692-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})693 -> 0.0187s694-- create_table("releases", {:force=>:cascade})695 -> 0.0252s696-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})697 -> 0.0223s698-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})699 -> 0.0215s700-- create_table("remote_mirrors", {:force=>:cascade})701 -> 0.0232s702-- add_index("remote_mirrors", ["last_successful_update_at"], {:name=>"index_remote_mirrors_on_last_successful_update_at", :using=>:btree})703 -> 0.0172s704-- add_index("remote_mirrors", ["project_id"], {:name=>"index_remote_mirrors_on_project_id", :using=>:btree})705 -> 0.0246s706-- create_table("routes", {:force=>:cascade})707 -> 0.0125s708-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})709 -> 0.0169s710-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})711 -> 0.0013s712-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})713 -> 0.0104s714-- create_table("sent_notifications", {:force=>:cascade})715 -> 0.0245s716-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})717 -> 0.0172s718-- create_table("services", {:force=>:cascade})719 -> 0.0196s720-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})721 -> 0.0256s722-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})723 -> 0.0235s724-- create_table("slack_integrations", {:force=>:cascade})725 -> 0.0154s726-- add_index("slack_integrations", ["team_id", "alias"], {:name=>"index_slack_integrations_on_team_id_and_alias", :unique=>true, :using=>:btree})727 -> 0.0183s728-- add_index("slack_integrations", ["service_id"], {:name=>"index_slack_integrations_on_service_id", :using=>:btree})729 -> 0.0106s730-- create_table("snippets", {:force=>:cascade})731 -> 0.0160s732-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})733 -> 0.0133s734-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})735 -> 0.0019s736-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})737 -> 0.0106s738-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})739 -> 0.0019s740-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})741 -> 0.0118s742-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})743 -> 0.0112s744-- create_table("spam_logs", {:force=>:cascade})745 -> 0.0160s746-- create_table("subscriptions", {:force=>:cascade})747 -> 0.0204s748-- 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})749 -> 0.0213s750-- create_table("system_note_metadata", {:force=>:cascade})751 -> 0.0181s752-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})753 -> 0.0176s754-- create_table("taggings", {:force=>:cascade})755 -> 0.0254s756-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})757 -> 0.0195s758-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})759 -> 0.0157s760-- create_table("tags", {:force=>:cascade})761 -> 0.0156s762-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})763 -> 0.0171s764-- create_table("timelogs", {:force=>:cascade})765 -> 0.0158s766-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})767 -> 0.0163s768-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})769 -> 0.0106s770-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})771 -> 0.0117s772-- create_table("todos", {:force=>:cascade})773 -> 0.0292s774-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})775 -> 0.0183s776-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})777 -> 0.0204s778-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})779 -> 0.0229s780-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})781 -> 0.0218s782-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})783 -> 0.0249s784-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})785 -> 0.0479s786-- create_table("trending_projects", {:force=>:cascade})787 -> 0.0140s788-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :using=>:btree})789 -> 0.0260s790-- create_table("u2f_registrations", {:force=>:cascade})791 -> 0.0356s792-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})793 -> 0.0171s794-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})795 -> 0.0181s796-- create_table("uploads", {:force=>:cascade})797 -> 0.0172s798-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})799 -> 0.0126s800-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})801 -> 0.0227s802-- add_index("uploads", ["path"], {:name=>"index_uploads_on_path", :using=>:btree})803 -> 0.0127s804-- create_table("user_agent_details", {:force=>:cascade})805 -> 0.0156s806-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})807 -> 0.0201s808-- create_table("users", {:force=>:cascade})809 -> 0.0191s810-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})811 -> 0.0162s812-- add_index("users", ["authentication_token"], {:name=>"index_users_on_authentication_token", :unique=>true, :using=>:btree})813 -> 0.0276s814-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})815 -> 0.0231s816-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})817 -> 0.0176s818-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})819 -> 0.0289s820-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})821 -> 0.0043s822-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})823 -> 0.0194s824-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})825 -> 0.0208s826-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})827 -> 0.0179s828-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})829 -> 0.0062s830-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})831 -> 0.0238s832-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})833 -> 0.0239s834-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})835 -> 0.0190s836-- add_index("users", ["support_bot"], {:name=>"index_users_on_support_bot", :using=>:btree})837 -> 0.0226s838-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})839 -> 0.0343s840-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})841 -> 0.0047s842-- create_table("users_star_projects", {:force=>:cascade})843 -> 0.0213s844-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})845 -> 0.0194s846-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})847 -> 0.0211s848-- create_table("web_hook_logs", {:force=>:cascade})849 -> 0.0171s850-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})851 -> 0.0218s852-- create_table("web_hooks", {:force=>:cascade})853 -> 0.0199s854-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})855 -> 0.0218s856-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})857 -> 0.0240s858-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})859 -> 0.0864s860-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})861 -> 0.0609s862-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})863 -> 0.0392s864-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})865 -> 0.0485s866-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})867 -> 0.0736s868-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})869 -> 0.1045s870-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})871 -> 0.0822s872-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})873 -> 0.1455s874-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})875 -> 0.0908s876-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})877 -> 0.0817s878-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})879 -> 0.0503s880-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})881 -> 0.0248s882-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})883 -> 0.1236s884-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})885 -> 0.1070s886-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})887 -> 0.0802s888-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})889 -> 0.0555s890-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_3f0c88d7dc", :on_delete=>:cascade})891 -> 0.1062s892-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_b8c0fac459", :on_delete=>:cascade})893 -> 0.1795s894-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_3a3e3cb83a", :on_delete=>:cascade})895 -> 0.1266s896-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_8868d0f3e4", :on_delete=>:cascade})897 -> 0.0633s898-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_83b4346e48", :on_delete=>:cascade})899 -> 0.0713s900-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})901 -> 0.0532s902-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})903 -> 0.0866s904-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})905 -> 0.0444s906-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})907 -> 0.0454s908-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})909 -> 0.0504s910-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})911 -> 0.0328s912-- add_foreign_key("container_repositories", "projects")913 -> 0.0431s914-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})915 -> 0.0419s916-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})917 -> 0.0665s918-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})919 -> 0.0660s920-- add_foreign_key("events", "projects", {:name=>"fk_0434b48643", :on_delete=>:cascade})921 -> 0.1306s922-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})923 -> 0.0621s924-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})925 -> 0.0766s926-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})927 -> 0.0513s928-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :on_delete=>:cascade})929 -> 0.0362s930-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})931 -> 0.0417s932-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})933 -> 0.0292s934-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})935 -> 0.0365s936-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})937 -> 0.0424s938-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})939 -> 0.0693s940-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})941 -> 0.0387s942-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})943 -> 0.0795s944-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})945 -> 0.0573s946-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})947 -> 0.0486s948-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})949 -> 0.0564s950-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})951 -> 0.0279s952-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})953 -> 0.0509s954-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})955 -> 0.0385s956-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})957 -> 0.0631s958-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})959 -> 0.1198s960-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})961 -> 0.0619s962-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})963 -> 0.0402s964-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})965 -> 0.0408s966-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})967 -> 0.0584s968-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})969 -> 0.0511s970-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})971 -> 0.0824s972-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})973 -> 0.0680s974-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})975 -> 0.0327s976-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})977 -> 0.1109s978-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})979 -> 0.0993s980-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})981 -> 0.0482s982-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})983 -> 0.0259s984-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})985 -> 0.0465s986-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})987 -> 0.0472s988-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})989 -> 0.0268s990-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})991 -> 0.0692s992-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})993 -> 0.0311s994-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})995 -> 0.0392s996-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})997 -> 0.0241s998-- add_foreign_key("path_locks", "users")999 -> 0.0298s1000-- add_foreign_key("personal_access_tokens", "users")1001 -> 0.0309s1002-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1003 -> 0.0301s1004-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1005 -> 0.0267s1006-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1007 -> 0.0226s1008-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1009 -> 0.1066s1010-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1011 -> 0.0444s1012-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1013 -> 0.0791s1014-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1015 -> 0.0239s1016-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id"})1017 -> 0.0259s1018-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1019 -> 0.0525s1020-- add_foreign_key("protected_branch_merge_access_levels", "users")1021 -> 0.0336s1022-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id"})1023 -> 0.0231s1024-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1025 -> 0.0258s1026-- add_foreign_key("protected_branch_push_access_levels", "users")1027 -> 0.0394s1028-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1029 -> 0.0186s1030-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id"})1031 -> 0.0396s1032-- add_foreign_key("protected_tag_create_access_levels", "protected_tags")1033 -> 0.0474s1034-- add_foreign_key("protected_tag_create_access_levels", "users")1035 -> 0.0443s1036-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1037 -> 0.0221s1038-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1039 -> 0.0261s1040-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1041 -> 0.0329s1042-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1043 -> 0.0405s1044-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1045 -> 0.0285s1046-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1047 -> 0.0361s1048-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1049 -> 0.0241s1050-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1051 -> 0.0401s1052-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1053 -> 0.0410s1054-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1055 -> 0.0485s1056-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1057 -> 0.0468s1058-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1059 -> 0.0350s1060-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1061 -> 0.0289s1062-- add_foreign_key("u2f_registrations", "users")1063 -> 0.0411s1064-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1065 -> 0.0341s1066-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1067 -> 0.0372s1068-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1069 -> 0.0444s1070-- initialize_schema_migrations_table()1071 -> 0.0771s1072Adding limits to schema.rb for mysql1073-- change_column(:merge_request_diffs, :st_commits, :text, {:limit=>2147483647})1074 -> 0.0302s1075-- change_column(:merge_request_diffs, :st_diffs, :text, {:limit=>2147483647})1076 -> 0.0240s1077-- change_column(:snippets, :content, :text, {:limit=>2147483647})1078 -> 0.0324s1079-- change_column(:notes, :st_diff, :text, {:limit=>2147483647})1080 -> 0.0528s1081-- change_column(:events, :data, :text, {:limit=>2147483647})1082 -> 0.0526s1083-- change_column(:snippets, :content_html, :text, {:limit=>2147483647})1084 -> 0.0657s1085-- change_column(:merge_request_diff_files, :diff, :text, {:limit=>2147483647})1086 -> 0.0432s1087Database 'gitlabhq_geo_test' does not exist1088WARNING: Unable to check/update clone_url_prefix for Geo: Mysql2::Error: Table 'gitlabhq_geo_test.geo_nodes' doesn't exist: SHOW FULL FIELDS FROM `geo_nodes`1089-- enable_extension("plpgsql")1090 -> 0.0043s1091-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1092 -> 0.0166s1093-- create_table("file_registry", {:force=>:cascade})1094 -> 0.0216s1095-- add_index("file_registry", ["file_type", "file_id"], {:name=>"index_file_registry_on_file_type_and_file_id", :unique=>true, :using=>:btree})1096 -> 0.0167s1097-- add_index("file_registry", ["file_type"], {:name=>"index_file_registry_on_file_type", :using=>:btree})1098 -> 0.0115s1099-- create_table("project_registry", {:force=>:cascade})1100 -> 0.0117s1101-- add_index("project_registry", ["last_repository_successful_sync_at"], {:name=>"index_project_registry_on_last_repository_successful_sync_at", :using=>:btree})1102 -> 0.0116s1103-- add_index("project_registry", ["last_repository_synced_at"], {:name=>"index_project_registry_on_last_repository_synced_at", :using=>:btree})1104 -> 0.0109s1105-- add_index("project_registry", ["project_id"], {:name=>"index_project_registry_on_project_id", :using=>:btree})1106 -> 0.0157s1107-- add_index("project_registry", ["resync_repository"], {:name=>"index_project_registry_on_resync_repository", :using=>:btree})1108 -> 0.0109s1109-- add_index("project_registry", ["resync_wiki"], {:name=>"index_project_registry_on_resync_wiki", :using=>:btree})1110 -> 0.0127s1111-- initialize_schema_migrations_table()1112 -> 0.0428s1113$ JOB_NAME=( $CI_JOB_NAME )1114$ export CI_NODE_INDEX=${JOB_NAME[-2]}1115$ export CI_NODE_TOTAL=${JOB_NAME[-1]}1116$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1117$ export KNAPSACK_GENERATE_REPORT=true1118$ export CACHE_CLASSES=true1119$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1120$ scripts/gitaly-test-spawn1121661122$ knapsack rspec "--color --format documentation"1123Report specs:1124spec/services/system_note_service_spec.rb1125spec/features/merge_requests/diff_notes_resolve_spec.rb1126spec/requests/api/triggers_spec.rb1127spec/models/cycle_analytics/issue_spec.rb1128spec/models/cycle_analytics/code_spec.rb1129spec/finders/notes_finder_spec.rb1130spec/features/security/group/public_access_spec.rb1131spec/controllers/projects/merge_requests_controller_ee_spec.rb1132spec/controllers/autocomplete_controller_spec.rb1133spec/services/merge_requests/squash_service_spec.rb1134spec/requests/api/tags_spec.rb1135spec/helpers/markup_helper_spec.rb1136spec/controllers/projects/imports_controller_spec.rb1137spec/lib/gitlab/diff/file_spec.rb1138spec/controllers/projects/jobs_controller_spec.rb1139spec/requests/api/project_hooks_spec.rb1140spec/controllers/ee/projects/boards_controller_spec.rb1141spec/features/issues/note_polling_spec.rb1142spec/features/reportable_note/issue_spec.rb1143spec/workers/stuck_ci_jobs_worker_spec.rb1144spec/lib/gitlab/conflict/file_spec.rb1145spec/services/geo/schedule_repo_create_service_spec.rb1146spec/controllers/projects/deployments_controller_spec.rb1147spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb1148spec/lib/gitlab/gfm/uploads_rewriter_spec.rb1149spec/controllers/projects/issues_controller_ee_spec.rb1150spec/features/admin/admin_uses_repository_checks_spec.rb1151spec/lib/banzai/filter/gollum_tags_filter_spec.rb1152spec/finders/issues_finder_spec.rb1153spec/services/labels/transfer_service_spec.rb1154spec/helpers/blob_helper_spec.rb1155spec/models/application_setting_spec.rb1156spec/lib/gitlab/gitaly_client/commit_service_spec.rb1157spec/workers/repository_update_remote_mirror_worker_spec.rb1158spec/features/snippets/user_edits_snippet_spec.rb1159spec/lib/gitlab/ci/status/build/cancelable_spec.rb1160spec/controllers/projects/services_controller_spec.rb1161spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb1162spec/features/admin/admin_geo_nodes_spec.rb1163spec/models/lfs_objects_project_spec.rb1164spec/lib/gitlab/ci/build/image_spec.rb1165spec/controllers/ee/projects_controller_spec.rb1166spec/services/ee/boards/create_service_spec.rb1167spec/services/pages_service_spec.rb1168spec/services/geo/schedule_repo_update_service_spec.rb1169spec/models/concerns/elastic/project_spec.rb1170spec/services/ee/wiki_pages/update_service_spec.rb1171spec/workers/git_garbage_collect_worker_spec.rb1172spec/features/projects/settings/visibility_settings_spec.rb1173spec/lib/gitlab/slash_commands/issue_new_spec.rb1174spec/models/project_group_link_spec.rb1175spec/services/projects/unlink_fork_service_spec.rb1176spec/features/projects/milestones/new_spec.rb1177spec/lib/gitlab/backup/repository_spec.rb1178spec/models/abuse_report_spec.rb1179spec/lib/gitlab/import_export/fork_spec.rb1180spec/lib/gitlab/ci/status/pipeline/common_spec.rb1181spec/services/boards/lists/destroy_service_spec.rb1182spec/lib/gitlab/cycle_analytics/code_event_fetcher_spec.rb1183spec/controllers/dashboard/labels_controller_spec.rb1184spec/requests/api/system_hooks_spec.rb1185spec/features/dashboard/datetime_on_tooltips_spec.rb1186spec/helpers/namespaces_helper_spec.rb1187spec/controllers/admin/groups_controller_spec.rb1188spec/features/projects/files/editing_a_file_spec.rb1189spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb1190spec/services/update_release_service_spec.rb1191spec/features/groups/activity_spec.rb1192spec/models/project_services/chat_notification_service_spec.rb1193spec/features/groups/show_spec.rb1194spec/presenters/ci/group_variable_presenter_spec.rb1195spec/controllers/projects/wikis_controller_spec.rb1196spec/controllers/projects/hooks_controller_spec.rb1197spec/features/snippets/public_snippets_spec.rb1198spec/models/label_link_spec.rb1199spec/tasks/tokens_spec.rb1200spec/services/chat_names/authorize_user_service_spec.rb1201spec/models/concerns/token_authenticatable_spec.rb1202spec/models/merge_request/metrics_spec.rb1203spec/services/create_snippet_service_spec.rb1204spec/mailers/abuse_report_mailer_spec.rb1205spec/services/tags/destroy_service_spec.rb1206spec/services/after_branch_delete_service_spec.rb1207spec/features/users/rss_spec.rb1208spec/lib/banzai/filter/reference_filter_spec.rb1209spec/lib/gitlab/redis/wrapper_spec.rb1210spec/uploaders/records_uploads_spec.rb1211spec/models/pages_domain_spec.rb1212spec/models/concerns/faster_cache_keys_spec.rb1213spec/models/blob_viewer/route_map_spec.rb1214spec/lib/gitlab/database/load_balancing_spec.rb1215spec/views/help/index.html.haml_spec.rb1216spec/models/blob_viewer/gitlab_ci_yml_spec.rb1217spec/lib/gitlab/git/attributes_spec.rb1218spec/services/ci/update_runner_service_spec.rb1219spec/tasks/config_lint_spec.rb1220spec/services/emails/destroy_service_spec.rb1221spec/lib/gitlab/sql/recursive_cte_spec.rb1222spec/helpers/version_check_helper_spec.rb1223spec/lib/gitlab/ci/config_spec.rb1224spec/lib/gitlab/ci/config/entry/validatable_spec.rb1225spec/lib/gitlab/request_forgery_protection_spec.rb1226spec/lib/gitlab/metrics/metric_spec.rb1227spec/models/project_services/emails_on_push_service_spec.rb1228spec/lib/bitbucket/representation/comment_spec.rb1229spec/workers/schedule_update_user_activity_worker_spec.rb1230spec/lib/gitlab/sherlock/file_sample_spec.rb1231spec/workers/propagate_service_template_worker_spec.rb1232spec/models/merge_request_diff_file_spec.rb1233spec/helpers/storage_helper_spec.rb1234spec/lib/container_registry/client_spec.rb1235spec/lib/gitlab/ci/config/entry/unspecified_spec.rb1236spec/lib/gitlab/git_spec.rb1237spec/lib/gitlab/routing_spec.rb1238spec/lib/gitlab/diff/inline_diff_spec.rb1239spec/lib/gitlab/database/load_balancing/model_proxy_spec.rb1240Leftover specs:1241Knapsack report generator started!1242 Warning 1243 You are running as user root, we hope you know what you are doing.1244 Things may work/fail for the wrong reasons.1245 For correct results you should run this as user git.1246mkdir -p /builds/gitlab-org/gitlab-ee/tmp/tests/.ssh: OK1247chmod 700 /builds/gitlab-org/gitlab-ee/tmp/tests/.ssh: OK1248mkdir -p /builds/gitlab-org/gitlab-ee/tmp/tests/repositories: OK1249chmod ug+rwX,o-rwx /builds/gitlab-org/gitlab-ee/tmp/tests/repositories: OK1250Creating/Repairing hooks symlinks for all repositories1251done1252SystemNoteService1253 .add_commits1254 behaves like a system note1255 is valid1256 sets the noteable model1257 sets the project1258 sets the author1259 is a system note1260 metadata1261 creates a new system note metadata record1262 creates a record correctly1263 note body1264 comparison diff link line1265 adds the comparison text1266 without existing commits1267 adds a message header1268 adds a message line for each commit1269 summary line for existing commits1270 with one existing commit1271 includes the existing commit1272 with multiple existing commits1273 with oldrev1274 includes a commit range1275 includes a commit count1276 without oldrev1277 includes a commit range1278 includes a commit count1279 on a fork1280 includes the project namespace1281 .change_assignee1282 behaves like a system note1283 is valid1284 sets the noteable model1285 sets the project1286 sets the author1287 is a system note1288 metadata1289 creates a new system note metadata record1290 creates a record correctly1291 when assignee added1292 sets the note text1293 when assignee removed1294 sets the note text1295 .change_issue_assignees1296 builds a correct phrase when an assignee is added to a non-assigned issue1297 builds a correct phrase when assignee removed1298 builds a correct phrase when assignees changed1299 builds a correct phrase when three assignees removed and one added1300 builds a correct phrase when one assignee changed from a set1301 builds a correct phrase when one assignee removed from a set1302 behaves like a system note1303 is valid1304 sets the noteable model1305 sets the project1306 sets the author1307 is a system note1308 metadata1309 creates a new system note metadata record1310 creates a record correctly1311 .change_label1312 behaves like a system note1313 is valid1314 sets the noteable model1315 sets the project1316 sets the author1317 is a system note1318 metadata1319 creates a new system note metadata record1320 creates a record correctly1321 with added labels1322 sets the note text1323 with removed labels1324 sets the note text1325 with added and removed labels1326 sets the note text1327 .change_milestone1328 behaves like a system note1329 is valid1330 sets the noteable model1331 sets the project1332 sets the author1333 is a system note1334 metadata1335 creates a new system note metadata record1336 creates a record correctly1337 when milestone added1338 sets the note text1339 when milestone removed1340 sets the note text1341 .change_status1342 with status reopened1343 behaves like a system note1344 is valid1345 sets the noteable model1346 sets the project1347 sets the author1348 is a system note1349 metadata1350 creates a new system note metadata record1351 creates a record correctly1352 with a source1353 sets the note text1354 .merge_when_pipeline_succeeds1355 posts the 'merge when pipeline succeeds' system note1356 behaves like a system note1357 is valid1358 sets the noteable model1359 sets the project1360 sets the author1361 is a system note1362 metadata1363 creates a new system note metadata record1364 creates a record correctly1365 .cancel_merge_when_pipeline_succeeds1366 posts the 'merge when pipeline succeeds' system note1367 behaves like a system note1368 is valid1369 sets the noteable model1370 sets the project1371 sets the author1372 is a system note1373 metadata1374 creates a new system note metadata record1375 creates a record correctly1376 .change_title1377 when noteable responds to `title`1378 sets the note text1379 behaves like a system note1380 is valid1381 sets the noteable model1382 sets the project1383 sets the author1384 is a system note1385 metadata1386 creates a new system note metadata record1387 creates a record correctly1388 .change_description1389 when noteable responds to `description`1390 sets the note text1391 behaves like a system note1392 is valid1393 sets the noteable model1394 sets the project1395 sets the author1396 is a system note1397 metadata1398 creates a new system note metadata record1399 creates a record correctly1400 .change_issue_confidentiality1401 issue has been made confidential1402 sets the note text1403 behaves like a system note1404 is valid1405 sets the noteable model1406 sets the project1407 sets the author1408 is a system note1409 metadata1410 creates a new system note metadata record1411 creates a record correctly1412 issue has been made visible1413 sets the note text1414 behaves like a system note1415 is valid1416 sets the noteable model1417 sets the project1418 sets the author1419 is a system note1420 metadata1421 creates a new system note metadata record1422 creates a record correctly1423 .change_branch1424 behaves like a system note1425 is valid1426 sets the noteable model1427 sets the project1428 sets the author1429 is a system note1430 metadata1431 creates a new system note metadata record1432 creates a record correctly1433 when target branch name changed1434 sets the note text1435 .change_branch_presence1436 behaves like a system note1437 is valid1438 sets the noteable model1439 sets the project1440 sets the author1441 is a system note1442 metadata1443 creates a new system note metadata record1444 creates a record correctly1445 when source branch deleted1446 sets the note text1447 .new_issue_branch1448 behaves like a system note1449 is valid1450 sets the noteable model1451 sets the project1452 sets the author1453 is a system note1454 metadata1455 creates a new system note metadata record1456 creates a record correctly1457 when a branch is created from the new branch button1458 sets the note text1459 .cross_reference1460 behaves like a system note1461 is valid1462 sets the noteable model1463 sets the project1464 sets the author1465 is a system note1466 metadata1467 creates a new system note metadata record1468 creates a record correctly1469 when cross-reference disallowed1470 returns nil1471 does not create a system note metadata record1472 when cross-reference allowed1473 behaves like a system note1474 is valid1475 sets the noteable model1476 sets the project1477 sets the author1478 is a system note1479 metadata1480 creates a new system note metadata record1481 creates a record correctly1482 note_body1483 cross-project1484 from Commit1485 references the mentioning commit1486 from non-Commit1487 references the mentioning object1488 within the same project1489 from Commit1490 references the mentioning commit1491 from non-Commit1492 references the mentioning object1493 .cross_reference?1494 is truthy when text begins with expected text1495 is truthy when text begins with legacy capitalized expected text1496 is falsey when text does not begin with expected text1497 .cross_reference_disallowed?1498 when mentioner is not a MergeRequest1499 is falsey1500 when mentioner is a MergeRequest1501 is truthy when noteable is in commits1502 is falsey when noteable is not in commits1503 when notable is an ExternalIssue1504 is truthy1505 .cross_reference_exists?1506 issue from commit1507 is truthy when already mentioned1508 is falsey when not already mentioned1509 legacy capitalized cross reference1510 is truthy when already mentioned1511 commit from commit1512 is truthy when already mentioned1513 is falsey when not already mentioned1514 legacy capitalized cross reference1515 is truthy when already mentioned1516 commit with cross-reference from fork1517 is true when a fork mentions an external issue1518 legacy capitalized cross reference1519 is true when a fork mentions an external issue1520 .noteable_moved1521 moved to1522 notifies about noteable being moved to1523 behaves like cross project mentionable1524 contains cross reference to new noteable1525 mentions referenced noteable1526 mentions referenced project1527 behaves like a system note1528 is valid1529 sets the noteable model1530 sets the project1531 sets the author1532 is a system note1533 metadata1534 creates a new system note metadata record1535 creates a record correctly1536 moved from1537 notifies about noteable being moved from1538 behaves like cross project mentionable1539 contains cross reference to new noteable1540 mentions referenced noteable1541 mentions referenced project1542 behaves like a system note1543 is valid1544 sets the noteable model1545 sets the project1546 sets the author1547 is a system note1548 metadata1549 creates a new system note metadata record1550 creates a record correctly1551 invalid direction1552 raises error1553 .new_commit_summary1554 escapes HTML titles1555 JIRA integration1556 when noteable is a merge_requests1557 blocks cross reference when merge_requests_events is false1558 blocks cross reference when merge_requests_events is true1559 when a new cross reference is created1560 creates a new comment and remote link1561 when a link exists1562 updates a link but does not create a new comment1563 when noteable is a commit1564 blocks cross reference when commit_events is false1565 blocks cross reference when commit_events is true1566 when a new cross reference is created1567 creates a new comment and remote link1568 when a link exists1569 updates a link but does not create a new comment1570 new reference1571 for commits1572 creates comment1573 creates remote link1574 for issues1575 creates comment1576 creates remote link1577 for snippets1578 creates comment1579 creates remote link1580 existing reference1581 does not return success message1582 does not try to create comment and remote link1583 .relate_issue1584 behaves like a system note1585 is valid1586 sets the noteable model1587 sets the project1588 sets the author1589 is a system note1590 metadata1591 creates a new system note metadata record1592 creates a record correctly1593 when issue marks another as related1594 sets the note text1595 .unrelate_issue1596 behaves like a system note1597 is valid1598 sets the noteable model1599 sets the project1600 sets the author1601 is a system note1602 metadata1603 creates a new system note metadata record1604 creates a record correctly1605 when issue relation is removed1606 sets the note text1607 .approve_mr1608 behaves like a system note1609 is valid1610 sets the noteable model1611 sets the project1612 sets the author1613 is a system note1614 metadata1615 creates a new system note metadata record1616 creates a record correctly1617 when merge request approved1618 sets the note text1619 .unapprove_mr1620 behaves like a system note1621 is valid1622 sets the noteable model1623 sets the project1624 sets the author1625 is a system note1626 metadata1627 creates a new system note metadata record1628 creates a record correctly1629 when merge request approved1630 sets the note text1631 .change_time_estimate1632 behaves like a system note1633 is valid1634 sets the noteable model1635 sets the project1636 sets the author1637 is a system note1638 metadata1639 creates a new system note metadata record1640 creates a record correctly1641 with a time estimate1642 sets the note text1643 without a time estimate1644 sets the note text1645 .change_time_spent1646 behaves like a system note1647 is valid1648 sets the noteable model1649 sets the project1650 sets the author1651 is a system note1652 metadata1653 creates a new system note metadata record1654 creates a record correctly1655 when time was added1656 sets the note text1657 when time was subtracted1658 sets the note text1659 when time was removed1660 sets the note text1661 .discussion_continued_in_issue1662 creates a new note in the discussion1663 mentions the created issue in the system note1664 behaves like a system note1665 is valid1666 sets the noteable model1667 sets the project1668 sets the author1669 is a system note1670 metadata1671 creates a new system note metadata record1672 creates a record correctly1673 .change_time_estimate1674 behaves like a system note1675 is valid1676 sets the noteable model1677 sets the project1678 sets the author1679 is a system note1680 metadata1681 creates a new system note metadata record1682 creates a record correctly1683 with a time estimate1684 sets the note text1685 without a time estimate1686 sets the note text1687 .change_time_spent1688 behaves like a system note1689 is valid1690 sets the noteable model1691 sets the project1692 sets the author1693 is a system note1694 metadata1695 creates a new system note metadata record1696 creates a record correctly1697 when time was added1698 sets the note text1699 when time was subtracted1700 sets the note text1701 when time was removed1702 sets the note text1703 .remove_merge_request_wip1704 sets the note text1705 behaves like a system note1706 is valid1707 sets the noteable model1708 sets the project1709 sets the author1710 is a system note1711 metadata1712 creates a new system note metadata record1713 creates a record correctly1714 .add_merge_request_wip1715 sets the note text1716 behaves like a system note1717 is valid1718 sets the noteable model1719 sets the project1720 sets the author1721 is a system note1722 metadata1723 creates a new system note metadata record1724 creates a record correctly1725 .add_merge_request_wip_from_commit1726 posts the 'marked as a Work In Progress from commit' system note1727 behaves like a system note1728 is valid1729 sets the noteable model1730 sets the project1731 sets the author1732 is a system note1733 metadata1734 creates a new system note metadata record1735 creates a record correctly1736 .change_task_status1737 posts the 'marked the task as complete' system note1738 behaves like a system note1739 is valid1740 sets the noteable model1741 sets the project1742 sets the author1743 is a system note1744 metadata1745 creates a new system note metadata record1746 creates a record correctly1747 .resolve_all_discussions1748 sets the note text1749 behaves like a system note1750 is valid1751 sets the noteable model1752 sets the project1753 sets the author1754 is a system note1755 metadata1756 creates a new system note metadata record1757 creates a record correctly1758 .diff_discussion_outdated1759 creates a new note in the discussion1760 links to the diff in the system note1761 behaves like a system note1762 is valid1763 sets the noteable model1764 sets the project1765 sets the author1766 is a system note1767 metadata1768 creates a new system note metadata record1769 creates a record correctly1770 .mark_duplicate_issue1771 within the same project1772 should eq "marked this issue as a duplicate of #2"1773 behaves like a system note1774 is valid1775 sets the noteable model1776 sets the project1777 sets the author1778 is a system note1779 metadata1780 creates a new system note metadata record1781 creates a record correctly1782 across different projects1783 should eq "marked this issue as a duplicate of namespace409/project409#1"1784 behaves like a system note1785 is valid1786 sets the noteable model1787 sets the project1788 sets the author1789 is a system note1790 metadata1791 creates a new system note metadata record1792 creates a record correctly1793 .mark_canonical_issue_of_duplicate1794 within the same project1795 should eq "marked #2 as a duplicate of this issue"1796 behaves like a system note1797 is valid1798 sets the noteable model1799 sets the project1800 sets the author1801 is a system note1802 metadata1803 creates a new system note metadata record1804 creates a record correctly1805 across different projects1806 should eq "marked namespace433/project433#1 as a duplicate of this issue"1807 behaves like a system note1808 is valid1809 sets the noteable model1810 sets the project1811 sets the author1812 is a system note1813 metadata1814 creates a new system note metadata record1815 creates a record correctly1816Diff notes resolve1817Starting the Capybara driver server...1818 no discussions1819 displays no discussion resolved data1820 as authorized user1821 single discussion1822 shows text with how many discussions1823 allows user to mark a note as resolved1824 allows user to mark discussion as resolved1825 allows user to unresolve discussion1826 hides resolved discussion1827 allows user to resolve from reply form without a comment1828 allows user to unresolve from reply form without a comment1829 allows user to comment & resolve discussion1830 allows user to comment & unresolve discussion1831 allows user to quickly scroll to next unresolved discussion1832 hides jump to next button when all resolved1833 updates updated text after resolving note1834 hides jump to next discussion button1835 multiple notes1836 does not mark discussion as resolved when resolving single note1837 resolves discussion1838 muliple discussions1839 shows text with how many discussions1840 allows user to mark a single note as resolved1841 allows user to mark all notes as resolved1842 allows user user to mark all discussions as resolved1843 allows user to quickly scroll to next unresolved discussion1844 updates updated text after resolving note1845 shows jump to next discussion button1846 displays next discussion even if hidden1847 changes tab1848 shows text with how many discussions1849 allows user to mark a note as resolved1850 allows user to mark discussion as resolved1851 allows user to unresolve discussion1852 allows user to comment & resolve discussion1853 allows user to comment & unresolve discussion1854 as a guest1855 someone elses merge request1856 does not allow user to mark note as resolved1857 does not allow user to mark discussion as resolved1858 guest users merge request1859 allows user to mark a note as resolved1860 unauthorized user1861 no resolved comments1862 does not allow user to mark note as resolved1863 resolved comment1864 shows resolved icon1865 does not allow user to click resolve button1866API::Triggers1867 POST /projects/:project_id/trigger/pipeline1868 Handles errors1869 returns bad request if token is missing1870 returns not found if project is not found1871 Have a commit1872 creates pipeline1873 returns bad request with no pipeline created if there's no commit for that ref1874 Validates variables1875 validates variables to be a hash1876 validates variables needs to be a map of key-valued strings1877 creates trigger request with variables1878 when triggering a pipeline from a trigger token1879 does not leak the presence of project when token is for different project1880 creates builds from the ref given in the URL, not in the body1881 when ref contains a dot1882 creates builds from the ref given in the URL, not in the body1883 when triggering a pipeline from a job token1884 without user1885 does not leak the presence of project when using valid token1886 for unreleated user1887 does not leak the presence of project when using valid token1888 for related user1889 with reporter permissions1890 forbids to create a pipeline1891 with developer permissions1892 creates a new pipeline1893 when build is complete1894 does not create a pipeline1895 when variables are defined1896 creates a new pipeline with a variable1897 GET /projects/:id/triggers1898 authenticated user with valid permissions1899 returns list of triggers1900 authenticated user with invalid permissions1901 does not return triggers list1902 unauthenticated user1903 does not return triggers list1904 GET /projects/:id/triggers/:trigger_id1905 authenticated user with valid permissions1906 returns trigger details1907 responds with 404 Not Found if requesting non-existing trigger1908 authenticated user with invalid permissions1909 does not return triggers list1910 unauthenticated user1911 does not return triggers list1912 POST /projects/:id/triggers1913 authenticated user with valid permissions1914 with required parameters1915 creates trigger1916 without required parameters1917 does not create trigger1918 authenticated user with invalid permissions1919 does not create trigger1920 unauthenticated user1921 does not create trigger1922 PUT /projects/:id/triggers/:trigger_id1923 authenticated user with valid permissions1924 updates description1925 authenticated user with invalid permissions1926 does not update trigger1927 unauthenticated user1928 does not update trigger1929 POST /projects/:id/triggers/:trigger_id/take_ownership1930 authenticated user with valid permissions1931 updates owner1932 authenticated user with invalid permissions1933 does not update owner1934 unauthenticated user1935 does not update owner1936 DELETE /projects/:id/triggers/:trigger_id1937 authenticated user with valid permissions1938 deletes trigger1939 responds with 404 Not Found if requesting non-existing trigger1940 authenticated user with invalid permissions1941 does not delete trigger1942 unauthenticated user1943 does not delete trigger1944CycleAnalytics#issue1945 start condition: issue created1946 end condition: issue associated with a milestone1947 finds the median of available durations between the two conditions1948 when the data belongs to another project1949 returns nil1950 when the end condition happens before the start condition1951 returns nil1952 start condition NOT PRESENT: issue created1953 end condition: issue associated with a milestone1954 returns nil1955 start condition: issue created1956 end condition NOT PRESENT: issue associated with a milestone1957 returns nil1958 start condition: issue created1959 end condition: list label added to issue1960 finds the median of available durations between the two conditions1961 when the data belongs to another project1962 returns nil1963 when the end condition happens before the start condition1964 returns nil1965 start condition NOT PRESENT: issue created1966 end condition: list label added to issue1967 returns nil1968 start condition: issue created1969 end condition NOT PRESENT: list label added to issue1970 returns nil1971 start condition: issue created1972 end condition: issue associated with a milestone and list label added to issue1973 finds the median of available durations between the two conditions1974 when the data belongs to another project1975 returns nil1976 when the end condition happens before the start condition1977 returns nil1978 start condition NOT PRESENT: issue created1979 end condition: issue associated with a milestone and list label added to issue1980 returns nil1981 start condition: issue created1982 end condition NOT PRESENT: issue associated with a milestone and list label added to issue1983 returns nil1984 when none of the start / end conditions are matched1985 returns nil1986 when a regular label (instead of a list label) is added to the issue1987 returns nil1988CycleAnalytics#code1989 with deployment1990 start condition: issue mentioned in a commit1991 end condition: merge request that closes issue is created1992 finds the median of available durations between the two conditions1993 when the data belongs to another project1994 returns nil1995 when the end condition happens before the start condition1996 returns nil1997 start condition NOT PRESENT: issue mentioned in a commit1998 end condition: merge request that closes issue is created1999 returns nil2000 start condition: issue mentioned in a commit2001 end condition NOT PRESENT: merge request that closes issue is created2002 returns nil2003 when none of the start / end conditions are matched2004 returns nil2005 when a regular merge request (that doesn't close the issue) is created2006 returns nil2007 without deployment2008 start condition: issue mentioned in a commit2009 end condition: merge request that closes issue is created2010 finds the median of available durations between the two conditions2011 when the data belongs to another project2012 returns nil2013 when the end condition happens before the start condition2014 returns nil2015 start condition NOT PRESENT: issue mentioned in a commit2016 end condition: merge request that closes issue is created2017 returns nil2018 start condition: issue mentioned in a commit2019 end condition NOT PRESENT: merge request that closes issue is created2020 returns nil2021 when none of the start / end conditions are matched2022 returns nil2023 when a regular merge request (that doesn't close the issue) is created2024 returns nil2025NotesFinder2026 #execute2027 finds notes on merge requests2028 finds notes on snippets2029 excludes notes on commits the author can't download2030 succeeds when no notes found2031 on restricted projects2032 publicly excludes notes on merge requests2033 publicly excludes notes on issues2034 publicly excludes notes on snippets2035 for target2036 finds all notes2037 finds notes on merge requests2038 finds notes on snippets2039 finds notes on personal snippets2040 raises an exception for an invalid target_type2041 filters out old notes2042 confidential issue notes2043 returns notes if user can see the issue2044 raises an error if user can not see the issue2045 raises an error for project members with guest role2046 .search2047 returns notes with matching content2048 returns notes with matching content regardless of the casing2049 returns commit notes user can access2050 confidential issues2051 returns notes with matching content if user can see the issue2052 does not return notes with matching content if user can not see the issue2053 does not return notes with matching content for project members with guest role2054 does not return notes with matching content for unauthenticated users2055 inlines SQL filters on subqueries for performance2056 project_id check2057 search filter2058 #target2059 for a issue target2060 returns the issue2061 for a merge request target2062 returns the merge_request2063 for a snippet target2064 returns the snippet2065 for a commit target2066 returns the commit2067Public Group access2068 Group should be public2069 #public?2070 should be truthy2071 GET /groups/:path2072 should be allowed for admin2073 should be allowed for auditor2074 should be allowed for owner2075 should be allowed for master2076 should be allowed for developer2077 should be allowed for reporter2078 should be allowed for guest2079 should be allowed for the specified user2080 should be allowed for user2081 should be allowed for external2082 should be allowed for visitor2083 GET /groups/:path/issues2084 should be allowed for admin2085 should be allowed for auditor2086 should be allowed for owner2087 should be allowed for master2088 should be allowed for developer2089 should be allowed for reporter2090 should be allowed for guest2091 should be allowed for the specified user2092 should be allowed for user2093 should be allowed for external2094 should be allowed for visitor2095 GET /groups/:path/merge_requests2096 should be allowed for admin2097 should be allowed for auditor2098 should be allowed for owner2099 should be allowed for master2100 should be allowed for developer2101 should be allowed for reporter2102 should be allowed for guest2103 should be allowed for the specified user2104 should be allowed for user2105 should be allowed for external2106 should be allowed for visitor2107 GET /groups/:path/group_members2108 should be allowed for admin2109 should be allowed for auditor2110 should be allowed for owner2111 should be allowed for master2112 should be allowed for developer2113 should be allowed for reporter2114 should be allowed for guest2115 should be allowed for the specified user2116 should be allowed for user2117 should be allowed for external2118 should be allowed for visitor2119 GET /groups/:path/edit2120 should be allowed for admin2121 should be denied for auditor2122 should be allowed for owner2123 should be denied for master2124 should be denied for developer2125 should be denied for reporter2126 should be denied for guest2127 should be denied for the specified user2128 should be denied for user2129 should be denied for visitor2130 should be denied for external2131Projects::MergeRequestsController2132 approvals2133 approve2134 approves the merge request2135 approvals2136 shows approval information2137 unapprove2138 unapproves the merge request2139 PUT update2140 when the merge request requires approval2141 behaves like update invalid issuable2142 when updating causes conflicts2143 renders edit when format is html2144 renders json error message when format is json2145 when updating an invalid issuable2146 renders edit when merge request is invalid2147 overriding approvers per MR2148 enabled2149 updates approvals2150 disabled2151 does not update approvals_before_merge2152 does not update approver_ids2153 does not update approver_group_ids2154 the approvals_before_merge param2155 approvals_before_merge not set for the existing MR2156 when it is less than the one in the target project2157 sets the param to nil2158 updates the merge request2159 when it is equal to the one in the target project2160 sets the param to nil2161 updates the merge request2162 when it is greater than the one in the target project2163 saves the param in the merge request2164 updates the merge request2165 approvals_before_merge set for the existing MR2166 when it is not set2167 does not change the merge request2168 updates the merge request2169 when it is less than the one in the target project2170 sets the param to nil2171 updates the merge request2172 when it is equal to the one in the target project2173 sets the param to nil2174 updates the merge request2175 when it is greater than the one in the target project2176 saves the param in the merge request2177 updates the merge request2178 POST merge2179 when the sha parameter matches the source SHA2180 when squash is passed as 12181 updates the squash attribute on the MR to true2182 when squash is passed as 02183 updates the squash attribute on the MR to false2184 POST #rebase2185 successfully2186 enqeues a RebaseWorker2187 approvals pending2188 returns 2002189 with a forked project2190 user cannot push to source branch2191 returns 4042192 user can push to source branch2193 returns 2002194 rebase unavailable in license2195 returns 4042196AutocompleteController2197 GET users2198 project members2199 GET #users with project ID2200 should be a kind of Array2201 should eq 32202 should contain exactly "user2626", "user2628", and "user2629"2203 GET #users with unknown project2204 should respond with numeric status code 4042205 GET #users that can push to protected branches2206 should be a kind of Array2207 should eq 22208 should contain exactly "user2646" and "user2648"2209 GET #users that can push code2210 should be a kind of Array2211 should eq 32212 should contain exactly "user2663", "user2665", and "user2666"2213 GET #users that can push to protected branches, including the current user2214 should be a kind of Array2215 should eq 22216 should contain exactly "user2679" and "user2681"2217 group members2218 GET #users with group ID2219 should be a kind of Array2220 should eq 12221 should eq "user2696"2222 GET #users with unknown group ID2223 should respond with numeric status code 4042224 non-member login for public project2225 GET #users with project ID2226 should be a kind of Array2227 should eq 32228 should include "user2716" and "user2718"2229 all users2230 should be a kind of Array2231 should eq 52232 user order2233 shows exact matches first2234 limited users per page2235 should be a kind of Array2236 should eq 22237 unauthenticated user2238 GET #users with public project2239 should be a kind of Array2240 should eq 22241 GET #users with project2242 should respond with numeric status code 4042243 GET #users with unknown project2244 should respond with numeric status code 4042245 GET #users with inaccessible group2246 should respond with numeric status code 4042247 GET #users with no project2248 should be a kind of Array2249 should eq 02250 GET #users with todo filter2251 gives an array of users2252 author of issuable included2253 authenticated2254 includes the author2255 rejects non existent user ids2256 without authenticating2257 returns empty result2258 skip_users parameter included2259 skips the user IDs passed2260 GET projects2261 authorized projects2262 GET #projects with project ID2263 should eq "John Doe2820 / project725"2264 authorized projects and search2265 GET #projects with project ID and search2266 should eq "John Doe2827 / rugged"2267 authorized projects apply limit2268 GET #projects with project ID2269 should eq 32270 authorized projects with offset2271 GET #projects with project ID and offset_id2272 should be nil2273 authorized projects without admin_issue ability2274 GET #projects with project ID2275 should eq 02276 groups2277 while fetching all groups belonging to a project2278 should be a kind of Array2279 should eq 12280 should eq [303, "group64"]2281 while fetching all groups belonging to a project the current user cannot access2282 should be not found2283 while fetching all groups belonging to an invalid project ID2284 should be not found2285MergeRequests::SquashService2286 #execute2287 when there is only one commit in the merge request2288 returns that commit SHA2289 does not perform any git actions2290 when squashing only new files2291 returns the squashed commit SHA2292 cleans up the temporary directory2293 does not keep the branch push event2294 the squashed commit2295 copies the author info and message from the merge request2296 sets the current user as the committer2297 has the same diff as the merge request, but a different SHA2298 when squashing with files too large to display2299 returns the squashed commit SHA2300 cleans up the temporary directory2301 does not keep the branch push event2302 the squashed commit2303 copies the author info and message from the merge request2304 sets the current user as the committer2305 has the same diff as the merge request, but a different SHA2306 squashing is unlicensed2307 should match {:status=>:error, :message=>(a string including "License")}2308 when the add worktree for squash stage fails2309 logs the stage and output2310 returns an error2311 cleans up the temporary directory2312 when the configure sparse checkout stage fails2313 logs the stage and output2314 returns an error2315 cleans up the temporary directory2316 when the get files in diff stage fails2317 logs the stage and output2318 returns an error2319 cleans up the temporary directory2320 when the check out target branch stage fails2321 logs the stage and output2322 returns an error2323 cleans up the temporary directory2324 when the apply patch stage fails2325 logs the stage and output2326 returns an error2327 cleans up the temporary directory2328 when the commit squashed changes stage fails2329 logs the stage and output2330 returns an error2331 cleans up the temporary directory2332 when the get SHA of squashed commit stage fails2333 logs the stage and output2334 returns an error2335 cleans up the temporary directory2336 when any other exception is thrown2337 logs the MR reference and exception2338 returns an error2339 cleans up the temporary directory2340API::Tags2341 GET /projects/:id/repository/tags2342 when unauthenticated2343 behaves like repository tags2344 returns the repository tags2345 when authenticated2346 behaves like repository tags2347 returns the repository tags2348 without releases2349 returns an array of project tags2350 with releases2351 returns an array of project tags with release info2352 GET /projects/:id/repository/tags/:tag_name2353 when unauthenticated2354 behaves like repository tag2355 returns the repository tag2356 returns 404 for an invalid tag name2357 when authenticated2358 behaves like repository tag2359 returns the repository tag2360 returns 404 for an invalid tag name2361 POST /projects/:id/repository/tags2362 denies for user without push access2363 returns 400 if tag name is invalid2364 returns 400 if tag already exists2365 returns 400 if ref name is invalid2366 lightweight tags2367 creates a new tag2368 lightweight tags with release notes2369 creates a new tag2370 DELETE /projects/:id/repository/tags/:tag_name2371 delete tag2372 deletes an existing tag2373 raises 404 if the tag does not exist2374 annotated tag2375 creates a new annotated tag2376 POST /projects/:id/repository/tags/:tag_name/release2377 creates description for existing git tag2378 returns 404 if the tag does not exist2379 on tag with existing release2380 returns 409 if there is already a release2381 PUT id/repository/tags/:tag_name/release2382 returns 404 if the tag does not exist2383 returns 404 if the release does not exist2384 on tag with existing release2385 updates the release description2386MarkupHelper2387 #markdown2388 referencing multiple objects2389 links to the merge request2390 links to the commit2391 links to the issue2392 override default project2393 links to the issue2394 #link_to_gfm2395 handles references nested in links with all the text2396 forwards HTML options2397 escapes HTML passed in as the body2398 ignores reference links when they are the entire body2399 replaces commit message with emoji to link2400 #render_wiki_content2401 uses Wiki pipeline for markdown files2402 uses Asciidoctor for asciidoc files2403 uses the Gollum renderer for all other file types2404 markup2405 preserves encoding2406 delegates to #markdown_unsafe when file name corresponds to Markdown2407 delegates to #asciidoc_unsafe when file name corresponds to AsciiDoc2408 #first_line_in_markdown2409 truncates Markdown properly2410 truncates Markdown with emoji properly2411 #cross_project_reference2412 shows the full MR reference2413 shows the full issue reference2414Projects::ImportsController2415 GET #show2416 when repository does not exists2417 renders template2418 sets flash.now if params is present2419 when repository exists2420 when import is in progress2421 renders template2422 sets flash.now if params is present2423 when import failed2424 redirects to new_namespace_project_import_path2425 when import finished2426 when project is a fork2427 redirects to namespace_project_path2428 when project is external2429 redirects to namespace_project_path2430 when continue params is present2431 redirects to internal params[:to]2432 does not redirect to external params[:to]2433 when import never happened2434 redirects to namespace_project_path2435 POST #create2436 mirror user is not the current user2437 should only assign the current user2438Gitlab::Diff::File2439 #diff_lines2440 should eq 302441 should be a kind of Gitlab::Diff::Line2442 #mode_changed?2443 should be falsey2444 #too_large?2445 returns true for a file that is too large2446 returns false for a file that is small enough2447 #collapsed?2448 returns true for a file that is quite big2449 returns false for a file that is small enough2450 #old_blob2451 returns blob of commit of base commit2452 #new_blob2453 returns blob of new commit2454 #diffable?2455 returns true for files that do not have attributes2456 returns false for files that have been marked as not being diffable in attributes2457 #content_changed?2458 when created2459 returns false2460 when deleted2461 returns false2462 when renamed2463 returns false2464 when content changed2465 when binary2466 returns true2467 when not binary2468 returns true2469 #simple_viewer2470 when the file is not diffable2471 returns a Not Diffable viewer2472 when the content changed2473 when the file represented by the diff file is binary2474 returns a No Preview viewer2475 when the diff file old and new blob types are different2476 returns a No Preview viewer2477 when the file represented by the diff file is text-based2478 returns a text viewer2479 when created2480 when the file represented by the diff file is binary2481 returns an Added viewer2482 when the diff file old and new blob types are different2483 returns an Added viewer2484 when the file represented by the diff file is text-based2485 returns a text viewer2486 when deleted2487 when the file represented by the diff file is binary2488 returns a Deleted viewer2489 when the diff file old and new blob types are different2490 returns a Deleted viewer2491 when the file represented by the diff file is text-based2492 returns a text viewer2493 when renamed2494 returns a Renamed viewer2495 when mode changed2496 returns a Mode Changed viewer2497 #rich_viewer2498 when the diff file has a matching viewer2499 when the diff file content did not change2500 returns nil2501 when the diff file is not diffable2502 returns nil2503 when the diff file old and new blob types are different2504 returns nil2505 when the diff file has an external storage error2506 returns nil2507 when everything is right2508 returns the viewer2509 when the diff file does not have a matching viewer2510 returns nil2511 #rendered_as_text?2512 when the simple viewer is text-based2513 when ignoring errors2514 when the viewer has render errors2515 returns true2516 when the viewer doesn't have render errors2517 returns true2518 when not ignoring errors2519 when the viewer has render errors2520 returns false2521 when the viewer doesn't have render errors2522 returns true2523 when the simple viewer is binary2524 returns false2525Projects::JobsController2526 GET index2527 when scope is pending2528 has only pending builds2529 when scope is running2530 has only running jobs2531 when scope is finished2532 has only finished jobs2533 when page is specified2534 when page number is eligible2535 redirects to the page2536 number of queries2537 verifies number of queries2538 GET show2539 when requesting HTML2540 when job exists2541 has a job2542 when job does not exist2543 renders not_found2544 when requesting JSON2545 exposes needed information2546 GET trace.json2547 when job has a trace2548 returns a trace2549 when job has no traces2550 returns no traces2551 when job has a trace with ANSI sequence and Unicode2552 returns a trace with Unicode2553 GET status.json2554 return a detailed job status in json2555 POST retry2556 when job is retryable2557 redirects to the retried job page2558 when job is not retryable2559 renders unprocessable_entity2560 POST play2561 when job is playable2562 redirects to the played job page2563 transits to pending2564 when job is not playable2565 renders unprocessable_entity2566 POST cancel2567 when job is cancelable2568 redirects to the canceled job page2569 transits to canceled2570 when job is not cancelable2571 returns unprocessable_entity2572 POST cancel_all2573 when jobs are cancelable2574 redirects to a index page2575 transits to canceled2576 when jobs are not cancelable2577 redirects to a index page2578 POST erase2579 when job is erasable2580 redirects to the erased job page2581 erases artifacts2582 erases trace2583 when job is not erasable2584 returns unprocessable_entity2585 GET raw2586 when job has a trace file2587 send a trace file2588 when job does not have a trace file2589 returns not_found2590API::ProjectHooks ProjectHooks2591 GET /projects/:id/hooks2592 authorized user2593 returns project hooks2594 unauthorized user2595 does not access project hooks2596 GET /projects/:id/hooks/:hook_id2597 returns a 404 error if hook id is not available2598 authorized user2599 returns a project hook2600 returns a 404 error if hook id is not available2601 unauthorized user2602 does not access an existing hook2603 POST /projects/:id/hooks2604 adds hook to project2605 adds the token without including it in the response2606 returns a 400 error if url not given2607 returns a 422 error if url not valid2608 PUT /projects/:id/hooks/:hook_id2609 updates an existing project hook2610 adds the token without including it in the response2611 returns 404 error if hook id not found2612 returns 400 error if url is not given2613 returns a 422 error if url is not valid2614 DELETE /projects/:id/hooks/:hook_id2615 deletes hook from project2616 returns a 404 error when deleting non existent hook2617 returns a 404 error if hook id not given2618 returns a 404 if a user attempts to delete project hooks he/she does not own2619Projects::BoardsController2620 GET index2621 returns a list of project boards including milestones2622 POST create2623 renders a 404 when multiple issue boards are not available2624 with the multiple issue boards available2625 with valid params2626 returns a successful 200 response2627 returns the created board2628 with invalid params2629 returns an unprocessable entity 422 response2630 with unauthorized user2631 returns a not found 404 response2632 PATCH update2633 with valid params2634 returns a successful 200 response2635 returns the updated board2636 with invalid params2637 returns an unprocessable entity 422 response2638 with invalid board id2639 returns a not found 404 response2640 with unauthorized user2641 returns a not found 404 response2642 DELETE destroy2643 with valid board id2644 redirects to the issue boards page2645 removes board from project2646 with invalid board id2647 returns a not found 404 response2648 with unauthorized user2649 returns a not found 404 response2650Issue notes polling2651 creates2652 displays the new comment2653 updates2654 when from own user2655 has .original-note-content to compare against2656 displays the updated content2657 when editing but have not changed anything, and an update comes in, show the updated content in the textarea2658 when editing but you changed some things, and an update comes in, show a warning2659 when editing but you changed some things, an update comes in, and you press cancel, show the updated content2660 when from another user2661 has .original-note-content to compare against2662 system notes2663 has .original-note-content to compare against2664Reportable note on issue2665 behaves like reportable note2666 has a `More actions` dropdown2667 dropdown has Edit, Report and Delete links2668 Report button links to a report page2669StuckCiJobsWorker2670 when job is pending2671 when job is not stuck2672 when job was not updated for more than 1 day ago2673 behaves like job is dropped2674 changes status2675 when job was updated in less than 1 day ago2676 behaves like job is unchanged2677 doesn't change status2678 when job was not updated for more than 1 hour ago2679 behaves like job is unchanged2680 doesn't change status2681 when job is stuck2682 when job was not updated for more than 1 hour ago2683 behaves like job is dropped2684 changes status2685 when job was updated in less than 1 hour ago2686 behaves like job is unchanged2687 doesn't change status2688 when job is running2689 when job was not updated for more than 1 hour ago2690 behaves like job is dropped2691 changes status2692 when job was updated in less than 1 hour ago2693 behaves like job is unchanged2694 doesn't change status2695 when job is success2696 behaves like job is unchanged2697 doesn't change status2698 when job is skipped2699 behaves like job is unchanged2700 doesn't change status2701 when job is failed2702 behaves like job is unchanged2703 doesn't change status2704 when job is canceled2705 behaves like job is unchanged2706 doesn't change status2707 for deleted project2708 does not drop job2709 exclusive lease2710 is guard by exclusive lease when executed concurrently2711 can be executed in sequence2712 cancels exclusive lease after worker perform2713Gitlab::Conflict::File2714 #resolve_lines2715 raises MissingResolution when passed a hash without resolutions for all sections2716 when resolving everything to the same side2717 has the correct number of lines2718 has content matching the chosen lines2719 with mixed resolutions2720 has the correct number of lines2721 returns a file containing only the chosen parts of the resolved sections2722 #highlight_lines!2723 modifies the existing lines2724 is called implicitly when rich_text is accessed on a line2725 sets the rich_text of the lines matching the text content2726 #sections2727 only inserts match lines when there is a gap between sections2728 sets conflict to false for sections with only unchanged lines2729 only includes a maximum of CONTEXT_LINES (plus an optional match line) in context sections2730 sets conflict to true for sections with only changed lines2731 adds unique IDs to conflict sections, and not to other sections2732 with an example file2733 sets the correct match line headers2734 does not add match lines where they are not needed2735 creates context sections of the correct length2736 #as_json2737 includes the blob path for the file2738 includes the blob icon for the file2739 with the full_content option passed2740 includes the full content of the conflict2741 includes the detected language of the conflict file2742Geo::ScheduleRepoCreateService2743 #execute2744 schedules the repository creation2745Projects::DeploymentsController2746 GET #index2747 returns list of deployments from last 8 hours2748 returns a list with deployments information2749 GET #metrics2750 when metrics are disabled2751 responds with not found2752 when metrics are enabled2753 when environment has no metrics2754 returns a empty response 204 resposne2755 when environment has some metrics2756 returns a metrics JSON document2757 when metrics service does not implement deployment metrics2758 responds with not found2759 GET #additional_metrics2760 when metrics are disabled2761 responds with not found2762 when metrics are enabled2763 when environment has no metrics2764 returns a empty response 204 response2765 when environment has some metrics2766 returns a metrics JSON document2767Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery2768 queries using specific time2769 metrics query context2770 project has Kubernetes service2771 query context contains kube_namespace2772 behaves like query context containing environment slug and filter2773 contains ci_environment_slug2774 contains environment filter2775 project without Kubernetes service2776 query context contains empty kube_namespace2777 behaves like query context containing environment slug and filter2778 contains ci_environment_slug2779 contains environment filter2780 with one group where two metrics is found2781 some queries return results2782 return group data only for queries with results2783 with two groups with one metric each2784 both queries return results2785 return group data both queries2786 one query returns result2787 return group data only for query with results2788Gitlab::Gfm::UploadsRewriter2789 text contains links to uploads2790 #rewrite2791 rewrites content2792 copies files2793 does not remove old files2794 generates a new secret for each file2795 #needs_rewrite?2796 should eq true2797 #files2798 should be a kind of Array2799Projects::IssuesController2800 POST export_csv2801 unlicensed2802 returns 4042803 globally licensed2804 allows CSV export2805 anonymous user2806 redirects to the sign in page2807 licensed by namespace2808 allows CSV export2809 issue weights2810 licensed2811 #index2812 allows sorting by weight (ascending)2813 allows sorting by weight (descending)2814 allows filtering by weight2815 #update2816 sets issue weight2817 #create2818 sets issue weight2819 unlicensed2820 #index2821 ignores sorting by weight (ascending) (PENDING: Not yet implemented)2822 ignores sorting by weight (descending) (PENDING: Not yet implemented)2823 ignores filtering by weight2824 #update2825 does not set issue weight2826 #create2827 does not set issue weight2828Admin uses repository checks2829 to trigger a single check2830 to see a single failed repository check2831 to clear all repository checks2832Banzai::Filter::GollumTagsFilter2833 validation2834 ensure that a :project_wiki key exists in context2835 linking internal images2836 creates img tag if image exists2837 does not creates img tag if image does not exist2838 linking external images2839 creates img tag for valid URL2840 does not creates img tag for invalid URL2841 linking external resources2842 the created link's text will be equal to the resource's text2843 the created link's text will be link-text2844 linking internal resources2845 the created link's text includes the resource's text and wiki base path2846 the created link's text will be link-text2847 table of contents2848 replaces [[<em>TOC</em>]] with ToC result2849 handles an empty ToC result2850IssuesFinder2851 #execute2852 scope: all2853 returns all issues2854 finds issues user can access due to group2855 sort by issues with no weight2856 returns all issues2857 sort by issues with any weight2858 returns all issues2859 filtering by assignee ID2860 returns issues assigned to that user2861 filtering by author ID2862 returns issues created by that user2863 filtering by milestone2864 returns issues assigned to that milestone2865 filtering by group milestone2866 returns issues assigned to that group milestone2867 filtering by no milestone2868 returns issues with no milestone2869 filtering by upcoming milestone2870 returns issues in the upcoming milestone for each project2871 filtering by started milestone2872 returns issues in the started milestones for each project2873 filtering by label2874 returns issues with that label2875 filtering by multiple labels2876 returns the unique issues with any of those labels2877 filtering by no label2878 returns issues with no labels2879 filtering by issue term2880 returns issues with title and description match for search term2881 filtering by issues iids2882 returns issues with iids match2883 filtering by state2884 with opened2885 returns only opened issues2886 with closed2887 returns only closed issues2888 with all2889 returns all issues2890 with invalid state2891 returns all issues2892 filtering by created_at2893 through created_after2894 returns issues created on or after the given date2895 through created_before2896 returns issues created on or before the given date2897 when the user is unauthorized2898 returns no results2899 when the user can see some, but not all, issues2900 returns only issues they can see2901 personal scope2902 returns issue assigned to the user2903 filtering by project2904 returns issues assigned to the user in that project2905 when project restricts issues2906 doesn't return team-only issues to non team members2907 doesn't return issues if feature disabled2908 #with_confidentiality_access_check2909 when no project filter is given2910 for an anonymous user2911 returns only public issues2912 for a user without project membership2913 returns only public issues2914 for a guest user2915 returns only public issues2916 for a project member with access to view confidential issues2917 returns all issues2918 for an auditor2919 returns all issues2920 for an admin2921 returns all issues2922 when searching within a specific project2923 for an anonymous user2924 returns only public issues2925 does not filter by confidentiality2926 for a user without project membership2927 returns only public issues2928 filters by confidentiality2929 for a guest user2930 returns only public issues2931 filters by confidentiality2932 for a project member with access to view confidential issues2933 returns all issues2934 does not filter by confidentiality2935 for an auditor2936 returns all issues2937 does not filter by confidentiality2938 for an admin2939 returns all issues2940 does not filter by confidentiality2941Labels::TransferService2942 #execute2943 recreates the missing group labels at project level2944 recreates label priorities related to the missing group labels2945 does not recreate missing group labels that are not applied to issues or merge requests2946 does not recreate missing group labels that already exist in the project group2947BlobHelper2948 #highlight2949 returns plaintext for unknown lexer context2950 highlights single block2951 highlights multi-line comments2952 diff highlighting2953 highlights each line properly2954 #sanitize_svg_data2955 retains essential elements2956 #edit_blob_link2957 verifies blob is text2958 uses the passed blob instead retrieve from repository2959 returns a link with the proper route2960 returns a link with the passed link_opts on the expected route2961 viewer related2962 #blob_render_error_reason2963 for error :too_large2964 when the blob size is larger than the absolute size limit2965 returns an error message2966 when the blob size is larger than the size limit2967 returns an error message2968 for error :server_side_but_stored_externally2969 returns an error message2970 #blob_render_error_options2971 for error :collapsed2972 includes a "load it anyway" link2973 for error :too_large2974 does not include a "load it anyway" link2975 includes a "download it" link2976 when the viewer is rich2977 the blob is rendered as text2978 includes a "view the source" link2979 the blob is not rendered as text2980 does not include a "view the source" link2981 when the viewer is not rich2982 does not include a "view the source" link2983 for error :server_side_but_stored_externally2984 does not include a "load it anyway" link2985 does not include a "view the source" link2986 includes a "download it" link2987ApplicationSetting2988 should be valid2989 should be present2990 validations2991 should allow :home_page_url to be ‹nil›2992 should allow :home_page_url to be ‹"http://example.com"›2993 should allow :home_page_url to be ‹"https://example.com"›2994 should not allow :home_page_url to be ‹"ftp://example.com"›2995 should allow :after_sign_out_path to be ‹nil›2996 should allow :after_sign_out_path to be ‹"http://example.com"›2997 should allow :after_sign_out_path to be ‹"https://example.com"›2998 should not allow :after_sign_out_path to be ‹"ftp://example.com"›2999 should validate that :max_attachment_size cannot be empty/falsy3000 should validate that :max_attachment_size looks like an integer greater than 03001 disabled_oauth_sign_in_sources validations3002 should allow :disabled_oauth_sign_in_sources to be ‹["github"]›3003 should not allow :disabled_oauth_sign_in_sources to be ‹["test"]›3004 default_artifacts_expire_in3005 sets an error if it cannot parse3006 sets an error if it is blank3007 sets the value if it is valid3008 sets the value if it is 03009 behaves like an object with email-formated attributes3010 specifically its :admin_notification_email attribute3011 with a value of 'info@example.com'3012 is valid3013 with a value of 'info+test@example.com'3014 is valid3015 with a value of 'o'reilly@example.com'3016 is valid3017 with a value of 'mailto:test@example.com'3018 is valid3019 with a value of 'lol!'+=?><#$%^&*()@gmail.com'3020 is valid3021 with a value of 'foobar'3022 is invalid3023 with a value of 'test@test@example.com'3024 is invalid3025 repository_storages is a String, not an Array3026 should eq "default"3027 should eq ["default"]3028 repository storages3029 inclusion3030 should allow :repository_storages to be ‹"custom1"›3031 should allow :repository_storages to be ‹["custom2", "custom3"]›3032 should not allow :repository_storages to be ‹"alternative"›3033 should not allow :repository_storages to be ‹["alternative", "custom1"]›3034 presence3035 should not allow :repository_storages to be ‹[]›3036 should not allow :repository_storages to be ‹""›3037 should not allow :repository_storages to be ‹nil›3038 .pick_repository_storage3039 uses Array#sample to pick a random storage3040 #repository_storage3041 returns the first storage3042 #repository_storage=3043 overwrites repository_storages3044 housekeeping settings3045 should not allow :housekeeping_incremental_repack_period to be ‹0›3046 wants the full repack period to be longer than the incremental repack period3047 wants the gc period to be longer than the full repack period3048 .current3049 redis unavailable3050 returns an ApplicationSetting3051 restricted signup domains3052 sets single domain3053 sets multiple domains with spaces3054 sets multiple domains with newlines and a space3055 sets multiple domains with commas3056 blacklisted signup domains3057 sets single domain3058 sets multiple domains with spaces3059 sets multiple domains with newlines and a space3060 sets multiple domains with commas3061 sets multiple domains with semicolon3062 sets multiple domains with mixture of everything3063 sets multiple domain with file3064 performance bar settings3065 performance_bar_allowed_group_id=3066 with a blank path3067 persists nil for a "" path and clears allowed user IDs cache3068 with an invalid path3069 does not persist an invalid group path3070 with a path to an existing group3071 persists a valid group path and clears allowed user IDs cache3072 when the given path is the same3073 with a blank path3074 clears the cached allowed user IDs3075 with a valid path3076 clears the cached allowed user IDs3077 performance_bar_allowed_group3078 with no performance_bar_allowed_group_id saved3079 returns nil3080 with a performance_bar_allowed_group_id saved3081 returns the group3082 performance_bar_enabled3083 with the Performance Bar is enabled3084 returns true3085 performance_bar_enabled=3086 when the performance bar is enabled3087 when passing true3088 does not clear allowed user IDs cache3089 when passing false3090 disables the performance bar and clears allowed user IDs cache3091 when the performance bar is disabled3092 when passing true3093 does nothing and does not clear allowed user IDs cache3094 when passing false3095 does nothing and does not clear allowed user IDs cache3096 usage ping settings3097 when the usage ping is disabled in gitlab.yml3098 does not allow the usage ping to be configured3099 when the usage ping is disabled in the DB3100 returns false for usage_ping_enabled3101 when the usage ping is enabled in the DB3102 returns false for usage_ping_enabled3103 when the usage ping is enabled in gitlab.yml3104 allows the usage ping to be configured3105 when the usage ping is disabled in the DB3106 returns false for usage_ping_enabled3107 when the usage ping is enabled in the DB3108 returns true for usage_ping_enabled3109 #repository_size_limit column3110 support values up to 8 exabytes3111 elasticsearch licensing3112 disables elasticsearch when unlicensed3113 enables elasticsearch when licensed3114 #elasticsearch_url3115 presents a single URL as a one-element array3116 presents multiple URLs as a many-element array3117 strips whitespace from around URLs3118 strips trailing slashes from URLs3119 #elasticsearch_config3120 places all elasticsearch configuration values into a hash3121Gitlab::GitalyClient::CommitService3122 #diff_from_parent3123 returns a Gitlab::Git::DiffCollection3124 passes options to Gitlab::Git::DiffCollection3125 when a commit has a parent3126 sends an RPC request with the parent ID as left commit3127 when a commit does not have a parent3128 sends an RPC request with empty tree ref as left commit3129 #commit_deltas3130 when a commit has a parent3131 sends an RPC request with the parent ID as left commit3132 when a commit does not have a parent3133 sends an RPC request with empty tree ref as left commit3134 #between3135 sends an RPC request3136 #tree_entries3137 sends a get_tree_entries message3138RepositoryUpdateRemoteMirrorWorker3139 #perform3140 with status none3141 sets status as finished when update remote mirror service executes successfully3142 sets status as failed when update remote mirror service executes with errors3143 does nothing if last_update_started_at is higher than the time the job was scheduled in3144 with unexpected error3145 marks mirror as failed3146 with another worker already running3147 raises RemoteMirrorUpdateAlreadyInProgressError3148 with status failed3149 sets status as finished if last_update_started_at is higher than the time the job was scheduled in3150User edits snippet3151 updates the snippet3152 updates the snippet with files attached3153 updates the snippet to make it internal3154 updates the snippet to make it public3155Gitlab::Ci::Status::Build::Cancelable3156 #text3157 does not override status text3158 #icon3159 does not override status icon3160 #label3161 does not override status label3162 #group3163 does not override status group3164 action details3165 #has_action?3166 when user is allowed to update build3167 should have action3168 when user is not allowed to update build3169 should not have action3170 #action_path3171 should include "3/cancel"3172 #action_icon3173 should eq "icon_action_cancel"3174 #action_title3175 should eq "Cancel"3176 .matches?3177 when build is cancelable3178 is a correct match3179 when build is not cancelable3180 does not match3181Projects::ServicesController3182 #test3183 when can_test? returns false3184 renders 4043185 success3186 returns success3187 with empty project3188 returns success3189 with chat notification service3190 returns success3191 failure3192 returns success status code and the error message3193 PUT #update3194 when param `active` is set to true3195 activates the service and redirects to integrations paths3196 when param `active` is set to false3197 does not activate the service but saves the settings3198projects/notes/_more_actions_dropdown3199 shows Report as abuse button if not editable and not current users comment3200 does not show the More actions button if not editable and current users comment3201 shows Report as abuse, Edit and Delete buttons if editable and not current users comment3202 shows Edit and Delete buttons if editable and current users comment3203admin Geo Nodes3204 show all public Geo Nodes3205 create a new Geo Nodes3206 creates a new Geo Node3207 update an existing Geo Node3208 updates an existing Geo Node3209 remove an existing Geo Node3210 removes an existing Geo Node3211LfsObjectsProject3212 associations3213 should belong to project3214 should belong to lfs_object3215 validation3216 should validate that :lfs_object_id cannot be empty/falsy3217 should validate that :lfs_object_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure3218 should validate that :project_id cannot be empty/falsy3219 #update_project_statistics3220 updates project statistics when the object is added3221 updates project statistics when the object is removed3222Gitlab::Ci::Build::Image3223 #from_image3224 when image is defined in job3225 when image is defined as string3226 fabricates an object of the proper class3227 populates fabricated object with the proper name attribute3228 when image is defined as hash3229 fabricates an object of the proper class3230 populates fabricated object with the proper attributes3231 when image name is empty3232 does not fabricate an object3233 when image is not defined in job3234 does not fabricate an object3235 #from_services3236 when services are defined in job3237 when service is defined as string3238 fabricates an non-empty array of objects3239 populates fabricated objects with the proper name attributes3240 when service is defined as hash3241 fabricates an non-empty array of objects3242 populates fabricated objects with the proper attributes3243 when service image name is empty3244 fabricates an empty array3245 when services are not defined in job3246 fabricates an empty array3247ProjectsController3248 PUT #update3249 updates EE attributes3250 updates Merge Request Approvers attributes3251 updates Issuable Default Templates attributes3252 updates Fast Forward Merge attributes3253 updates Fast Forward Merge attributes3254 updates Service Desk attributes3255 repository mirrors licensed3256 updates repository mirror attributes3257 repository mirrors unlicensed3258 does not update repository mirror attributes3259Boards::CreateService3260 #execute3261 skips creating a second board when the feature is not available3262 With the feature available3263 with valid params3264 creates a new project board3265 creates the default lists3266 with invalid params3267 does not create a new project board3268 does not create board's default lists3269 without params3270 creates a new project board3271 creates board's default lists3272PagesService3273 execute asynchronously for pages job3274 on success3275 executes worker3276 on pending3277 does not execute worker3278 on running3279 does not execute worker3280 on failed3281 does not execute worker3282 on canceled3283 does not execute worker3284 for other jobs3285 does not execute worker3286Geo::ScheduleRepoUpdateService3287 parsed push_data3288 includes required params3289 #execute3290 schedule update service3291Project3292 finds projects3293 finds partial matches in project names3294 returns json with all needed elements3295WikiPages::UpdateService3296 #execute3297 when running on a Geo primary node3298 triggers Geo::RepositoryUpdatedEventStore when Geo is enabled3299 triggers wiki update on secondary nodes3300GitGarbageCollectWorker3301 #perform3302 with Gitaly turned on3303 it should behave like flushing ref caches3304 flushes ref caches when the task if 'gc'3305 with Gitaly turned off3306 it should behave like flushing ref caches3307 flushes ref caches when the task if 'gc'3308 repack_full3309 calls Gitaly3310 repack_incremental3311 calls Gitaly3312 with bitmaps enabled3313 incremental repack adds a new packfile3314 full repack consolidates into 1 packfile3315 gc consolidates into 1 packfile and updates packed-refs3316 with bitmaps disabled3317 incremental repack adds a new packfile3318 full repack consolidates into 1 packfile3319 gc consolidates into 1 packfile and updates packed-refs3320Visibility settings3321 as owner3322 project visibility select is available3323 project visibility description updates on change3324 as master3325 project visibility is locked3326Gitlab::SlashCommands::IssueNew3327 #execute3328 without description3329 creates the issue3330 with description3331 creates the issue with description3332 with more newlines between the title and the description3333 creates the issue3334 issue cannot be created3335 displays the errors3336 .match3337 matches the title without description3338 matches the title with description3339 matches the alias new3340ProjectGroupLink3341 Associations3342 should belong to group3343 should belong to project3344 Validation3345 should validate that :project_id cannot be empty/falsy3346 should validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure3347 should validate that :group cannot be empty/falsy3348 should validate that :group_access cannot be empty/falsy3349 doesn't allow a project to be shared with the group it is in3350 doesn't allow a project to be shared with an ancestor of the group it is in (PENDING: around hook at ./spec/spec_helper.rb:155 did not execute the example)3351 destroying a record3352 refreshes group users' authorized projects3353Projects::UnlinkForkService3354 remove fork relation3355 with opened merge request on the source project3356 close all pending merge requests3357Creating a new project milestone3358 description has autocomplete3359Backup::Repository3360 #dump3361 repo failure3362 does not raise error3363 shows the appropriate error3364 command failure3365 shows the appropriate error3366 #restore3367 command failure3368 shows the appropriate error3369 #empty_repo?3370 for a wiki3371 wiki repo has content3372 `repository.exists?` is incorrectly cached as false3373 returns false, regardless of bad cache value3374 `repository.exists?` is correctly cached as true3375 returns false3376 wiki repo does not have content3377 `repository.exists?` is incorrectly cached as true3378 returns true, regardless of bad cache value3379 `repository.exists?` is correctly cached as false3380 returns true3381AbuseReport3382 should be valid3383 associations3384 should belong to reporter class_name => User3385 should belong to user3386 aliases reporter to author3387 validations3388 should validate that :reporter cannot be empty/falsy3389 should validate that :user cannot be empty/falsy3390 should validate that :message cannot be empty/falsy3391 should validate that :user_id is case-sensitively unique, producing a custom validation error on failure3392 #remove_user3393 blocks the user3394 lets a worker delete the user3395 #notify3396 delivers3397 returns early when not persisted3398forked project import3399 can access the MR3400Gitlab::Ci::Status::Pipeline::Common3401 #has_action?3402 should not have action3403 #has_details?3404 when user has access to read pipeline3405 should have details3406 when user does not have access to read pipeline3407 should not have details3408 #details_path3409 links to the pipeline details page3410Boards::Lists::DestroyService3411 #execute3412 does not remove list from board when list type is closed3413 when list type is label3414 removes list from board3415 decrements position of higher lists3416Gitlab::CycleAnalytics::CodeEventFetcher3417 behaves like default query config3418 has the stage attribute3419 has the projection attributes3420 has a default order3421Dashboard::LabelsController3422 #index3423 returns global labels for projects the user has a relationship with3424API::SystemHooks3425 GET /hooks3426 when no user3427 returns authentication error3428 when not an admin3429 returns forbidden error3430 when authenticated as admin3431 returns an array of hooks3432 POST /hooks3433 creates new hook3434 responds with 400 if url not given3435 responds with 400 if url is invalid3436 does not create new hook without url3437 sets default values for events3438 GET /hooks/:id3439 returns hook by id3440 returns 404 on failure3441 DELETE /hooks/:id3442 deletes a hook3443 returns 404 if the system hook does not exist3444Tooltips on .timeago dates3445 on the activity tab3446 has the datetime formated correctly3447 on the snippets tab3448 has the datetime formated correctly3449NamespacesHelper3450 #namespaces_options3451 returns groups without being a member for admin3452 returns only allowed namespaces for user3453Admin::GroupsController3454 DELETE #destroy3455 schedules a group destroy3456 redirects to the admin group path3457 PUT #members_update3458 adds user to members3459 can add unlimited members3460 adds no user to members3461User wants to edit a file3462 file has been updated since the user opened the edit page3463Gitlab::Ci::Status::Pipeline::Blocked3464 #text3465 overrides status text3466 #label3467 overrides status label3468 .matches?3469 when pipeline is blocked3470 is a correct match3471 when pipeline is not blocked3472 does not match3473UpdateReleaseService3474 raises an error if the tag does not exist3475 raises an error if the release does not exist3476 with an existing release3477 successfully updates an existing release3478Group activity page3479 when signed in3480 behaves like it has an RSS button with current_user's RSS token3481 shows the RSS button with current_user's RSS token3482 behaves like an autodiscoverable RSS feed with current_user's RSS token3483 has an RSS autodiscovery link tag with current_user's RSS token3484 when signed out3485 behaves like it has an RSS button without an RSS token3486 shows the RSS button without an RSS token3487 behaves like an autodiscoverable RSS feed without an RSS token3488 has an RSS autodiscovery link tag without an RSS token3489ChatNotificationService3490 Associations3491 should validate that :webhook cannot be empty/falsy3492 #can_test?3493 with empty repository3494 returns true3495 with repository3496 returns true3497Group show page3498 when signed in3499 behaves like an autodiscoverable RSS feed with current_user's RSS token3500 has an RSS autodiscovery link tag with current_user's RSS token3501 when signed out3502 behaves like an autodiscoverable RSS feed without an RSS token3503 has an RSS autodiscovery link tag without an RSS token3504Ci::GroupVariablePresenter3505 inherits from Gitlab::View::Presenter::Delegated3506 #initialize3507 takes a variable and optional params3508 exposes variable3509 forwards missing methods to variable3510 #placeholder3511 should eq "GROUP_VARIABLE"3512 #form_path3513 when variable is persisted3514 should eq "/groups/group125/-/variables/5"3515 when variable is not persisted3516 should eq "/groups/group126/-/variables"3517 #edit_path3518 should eq "/groups/group127/-/variables/6"3519 #delete_path3520 should eq "/groups/group128/-/variables/7"3521Projects::WikisController3522 POST #preview_markdown3523 renders json in a correct format3524Projects::HooksController3525 #index3526 redirects to settings/integrations page3527Public Snippets3528 Unauthenticated user should see public snippets3529 Unauthenticated user should see raw public snippets3530LabelLink3531 should be valid3532 should belong to label3533 should belong to target3534tokens rake tasks3535 reset_all task3536 invokes create_hooks task3537 reset_all_email task3538 invokes create_hooks task3539 reset_all_rss task3540 invokes create_hooks task3541ChatNames::AuthorizeUserService3542 #execute3543 when all parameters are valid3544 requests a new token3545 when there are missing parameters3546 does not request a new token3547User TokenAuthenticatable3548 behaves like TokenAuthenticatable3549 dynamically defined methods3550 should be private method defined :generate_token3551 should be private method defined :write_new_token3552 should respond to #find_by_authentication_token3553 should respond to #ensure_authentication_token3554 should respond to #set_authentication_token3555 should respond to #reset_authentication_token!3556 ensures authentication token3557 should be a kind of String3558ApplicationSetting TokenAuthenticatable3559 behaves like TokenAuthenticatable3560 dynamically defined methods3561 should be private method defined :generate_token3562 should be private method defined :write_new_token3563 should respond to #find_by_runners_registration_token3564 should respond to #ensure_runners_registration_token3565 should respond to #set_runners_registration_token3566 should respond to #reset_runners_registration_token!3567 generating new token3568 token is not generated yet3569 token field accessor3570 should not be blank3571 ensured token3572 should be a kind of String3573 should not be blank3574 ensured! token3575 persists new token3576 token is generated3577 persists a new token3578 setting new token3579 should eq "0123456789"3580 multiple token fields3581 .token_fields3582 should include :runners_registration_token and :yet_another_token3583MergeRequest::Metrics3584 when recording the default set of metrics on merge request save3585 records the merge time3586CreateSnippetService3587 When public visibility is restricted3588 non-admins are not able to create a public snippet3589 admins are able to create a public snippet3590AbuseReportMailer3591 .notify3592 with admin_notification_email set3593 sends to the admin_notification_email3594 includes the user in the subject3595 with no admin_notification_email set3596 returns early3597Tags::DestroyService3598 #execute3599 removes the tag3600AfterBranchDeleteService3601 #execute3602 stops environments attached to branch3603User RSS3604 when signed in3605 behaves like it has an RSS button with current_user's RSS token3606 shows the RSS button with current_user's RSS token3607 when signed out3608 behaves like it has an RSS button without an RSS token3609 shows the RSS button without an RSS token3610Banzai::Filter::ReferenceFilter3611 #each_node3612 iterates over the nodes in a document3613 returns an Enumerator when no block is given3614 skips links with a "gfm" class3615 skips text nodes in pre elements3616 #nodes3617 returns an Array of the HTML nodes3618Gitlab::Redis::Wrapper3619 .params3620 withstands mutation3621 when url contains unix socket reference3622 with old format3623 returns path key instead3624 with new format3625 returns path key instead3626 when url is host based3627 with old format3628 returns hash with host, port, db, and password3629 with new format3630 returns hash with host, port, db, and password3631 .url3632 withstands mutation3633 when yml file with env variable3634 reads redis url from env variable3635 ._raw_config3636 should be frozen3637 returns false when the file does not exist3638 returns false when the filename can't be determined3639 .with3640 when running not on sidekiq workers3641 instantiates a connection pool with size 53642 when running on sidekiq workers3643 instantiates a connection pool with a size based on the concurrency of the worker3644 #sentinels3645 when sentinels are defined3646 returns an array of hashes with host and port keys3647 when sentinels are not defined3648 returns nil3649 #sentinels?3650 when sentinels are defined3651 returns true3652 when sentinels are not defined3653 returns false3654 #raw_config_hash3655 returns default redis url when no config file is present3656 returns old-style single url config in a hash3657 #fetch_config3658 returns false when no config file is present3659 returns false when config file is present but has invalid YAML3660RecordsUploads3661 callbacks3662 calls `record_upload` after `store`3663 calls `destroy_upload` after `remove`3664 #record_upload callback3665 returns early when not using file storage3666 returns early when the file doesn't exist3667 creates an Upload record after store3668 does not create an Upload record if model is missing3669 it destroys Upload records at the same path before recording3670 #destroy_upload callback3671 returns early when not using file storage3672 returns early when file is nil3673 it destroys Upload records at the same path after removal3674PagesDomain3675 associations3676 should belong to project3677 validate domain3678 is unique3679 should validate that :domain is case-insensitively unique3680 domain "my.domain.com" validity3681 should eq true3682 domain "123.456.789" validity3683 should eq true3684 domain "0x12345.com" validity3685 should eq true3686 domain "0123123" validity3687 should eq true3688 domain "_foo.com" validity3689 should eq false3690 domain "reserved.com" validity3691 should eq false3692 domain "a.reserved.com" validity3693 should eq false3694 domain nil validity3695 should eq false3696 validate certificate3697 when only certificate is specified3698 should not be valid3699 when only key is specified3700 should not be valid3701 with matching key3702 should be valid3703 for not matching key3704 should not be valid3705 #url3706 without the certificate3707 should eq "http://my.domain.com"3708 with a certificate3709 should eq "https://my.domain.com"3710 #has_matching_key?3711 for matching key3712 should be truthy3713 for invalid key3714 should be falsey3715 #has_intermediates?3716 for self signed3717 should be truthy3718 for missing certificate chain3719 should be falsey3720 for trusted certificate chain3721 should be truthy3722 #expired?3723 for valid3724 should be falsey3725 for expired3726 should be truthy3727 #subject3728 should eq "/CN=test-certificate"3729 #certificate_text3730 should not be empty3731FasterCacheKeys3732 #cache_key3733 returns a String3734BlobViewer::RouteMap3735 #validation_message3736 calls prepare! on the viewer3737 when the configuration is valid3738 returns nil3739 when the configuration is invalid3740 returns the error message3741Gitlab::Database::LoadBalancing3742 .log3743 logs a message3744 .hosts3745 returns a list of hosts3746 .pool_size3747 returns a Fixnum3748 .enable?3749 returns false when no hosts are specified3750 returns false when Sidekiq is being used3751 returns false when a database other than PostgreSQL is being used3752 returns false when running inside a Rake task3753 returns true when load balancing should be enabled3754 without a license3755 is disabled3756 with an EES license3757 is disabled3758 with an EEP license3759 is enabled3760 .program_name3761 returns a String3762 .configure_proxy3763 configures the connection proxy3764 .active_record_models3765 returns an Array3766help/index3767 version information3768 is hidden from guests3769 is shown to users3770BlobViewer::GitlabCiYml3771 #validation_message3772 calls prepare! on the viewer3773 when the configuration is valid3774 returns nil3775 when the configuration is invalid3776 returns the error message3777Gitlab::Git::Attributes3778 #attributes3779 using a path with attributes3780 returns the attributes as a Hash3781 returns a Hash containing multiple attributes3782 returns a Hash containing attributes for a file with multiple extensions3783 returns a Hash containing attributes for a file in a directory3784 returns a Hash containing attributes with query string parameters3785 returns a Hash containing the attributes for an absolute path3786 returns a Hash containing the attributes when a pattern is defined using an absolute path3787 returns an empty Hash for a defined path without attributes3788 when the "binary" option is set for a path3789 returns true for the "binary" option3790 returns false for the "diff" option3791 using a path without any attributes3792 returns an empty Hash3793 #patterns3794 parses a file with entries3795 parses an entry that uses a tab to separate the pattern and attributes3796 stores patterns in reverse order3797 ignores any comments and empty lines3798 does not parse anything when the attributes file does not exist3799 #parse_attributes3800 parses a boolean attribute3801 parses a negated boolean attribute3802 parses a key-value pair3803 parses multiple attributes3804 parses attributes with query string parameters3805 #each_line3806 iterates over every line in the attributes file3807 does not yield when the attributes file does not exist3808 does not yield when the attributes file has an unsupported encoding3809Ci::UpdateRunnerService3810 #update3811 with description params3812 updates the runner and ticking the queue3813 when params are not valid3814 does not update and give false because it is not valid3815ConfigLint3816 errors out if any bash scripts have errors3817 passes if all scripts are fine3818config_lint rake task3819 runs lint on shell scripts3820Emails::DestroyService3821 #execute3822 removes an email3823Gitlab::SQL::RecursiveCTE3824 #to_arel3825 generates an Arel relation for the CTE body (PENDING: around hook at ./spec/spec_helper.rb:159 did not execute the example)3826 #alias_to3827 returns an alias for the CTE (PENDING: around hook at ./spec/spec_helper.rb:159 did not execute the example)3828 #apply_to3829 applies a CTE to an ActiveRecord::Relation (PENDING: around hook at ./spec/spec_helper.rb:159 did not execute the example)3830VersionCheckHelper3831 #version_status_badge3832 should return nil if not dev environment and not enabled3833 when production and enabled3834 should return an image tag3835 should have a js prefixed css class3836 should have a VersionCheck url as the src3837Gitlab::Ci::Config3838 when config is valid3839 #to_hash3840 returns hash created from string3841 #valid?3842 is valid3843 has no errors3844 when config is invalid3845 when yml is incorrect3846 .new3847 raises error3848 when config logic is incorrect3849 #valid?3850 is not valid3851 has errors3852 #errors3853 returns an array of strings3854Gitlab::Ci::Config::Entry::Validatable3855 .validator3856 returns validator3857 returns only one validator to mitigate leaks3858 when validating entry instance3859 when attribute is valid3860 instance of validator is valid3861 when attribute is not valid3862 instance of validator is invalid3863Gitlab::RequestForgeryProtection3864 .call3865 when the request method is GET3866 does not raise an exception3867 when the request method is POST3868 when the CSRF token is valid3869 does not raise an exception3870 when the CSRF token is invalid3871 raises an ActionController::InvalidAuthenticityToken exception3872 .verified?3873 when the request method is GET3874 returns true3875 when the request method is POST3876 when the CSRF token is valid3877 returns true3878 when the CSRF token is invalid3879 returns false3880Gitlab::Metrics::Metric3881 #series3882 should eq "foo"3883 #values3884 should eq {:number=>10}3885 #tags3886 should eq {:host=>"localtoast"}3887 #type3888 should eq :metric3889 #event?3890 returns false for a regular metric3891 returns true for an event metric3892 #to_hash3893 returns a Hash3894 the returned Hash3895 includes the series3896 includes the tags3897 includes the values3898 includes the timestamp3899EmailsOnPushService3900 Validations3901 when service is active3902 should validate that :recipients cannot be empty/falsy3903 when service is inactive3904 should not validate that :recipients cannot be empty/falsy3905Bitbucket::Representation::Comment3906 #author3907 should eq "Ben"3908 should be nil3909 #note3910 should eq "Text"3911 should be nil3912 #created_at3913 should eq Fri, 04 Aug 20173914 #updated_at3915 should eq Fri, 04 Aug 20173916 should eq Fri, 04 Aug 20173917ScheduleUpdateUserActivityWorker3918 schedules UpdateUserActivityWorker once3919 when specifying a batch size3920 schedules UpdateUserActivityWorker twice3921Gitlab::Sherlock::FileSample3922 #id3923 returns the ID3924 #file3925 returns the file path3926 #line_samples3927 returns the line samples3928 #events3929 returns the total number of events3930 #duration3931 returns the total execution time3932 #relative_path3933 returns the relative path3934 #to_param3935 returns the sample ID3936 #source3937 returns the contents of the file3938PropagateServiceTemplateWorker3939 #perform3940 calls the propagate service with the template3941MergeRequestDiffFile3942 #diff3943 when the diff is marked as binary3944 unpacks from base 643945 when the diff is not marked as binary3946 returns the raw diff3947 #utf8_diff3948 does not raise error when the diff is binary3949StorageHelper3950 #storage_counter3951 formats bytes to one decimal place3952 does not add decimals for sizes < 1 MB3953 does not add decimals for zeroes3954 uses commas as thousands separator3955ContainerRegistry::Client3956 #blob3957 GET /v2/:name/blobs/:digest3958 follows 307 redirect for GET /v2/:name/blobs/:digest3959Gitlab::Ci::Config::Entry::Unspecified3960 #valid?3961 delegates method to entry3962 #errors3963 delegates method to entry3964 #value3965 delegates method to entry3966 #specified?3967 is always false3968Gitlab::Git3969 committer_hash3970 returns a hash containing the given email and name3971 when email is nil3972 returns nil3973 when name is nil3974 returns nil3975Gitlab::Routing3976 when module is included3977 makes it possible to access url helpers3978 when module is not included3979 exposes url helpers module through a method3980Gitlab::Diff::InlineDiff3981 .for_lines3982 finds all inline diffs3983 #inline_diffs3984 finds the inline diff3985Gitlab::Database::LoadBalancing::ModelProxy3986 #connection3987 returns a connection proxy3988Knapsack report was generated. Preview:3989{3990 "spec/services/system_note_service_spec.rb": 456.51910734176636,3991 "spec/features/merge_requests/diff_notes_resolve_spec.rb": 191.62958431243896,3992 "spec/requests/api/triggers_spec.rb": 62.912684202194214,3993 "spec/models/cycle_analytics/issue_spec.rb": 119.60256505012512,3994 "spec/models/cycle_analytics/code_spec.rb": 83.9416606426239,3995 "spec/finders/notes_finder_spec.rb": 34.97778797149658,3996 "spec/features/security/group/public_access_spec.rb": 33.49488615989685,3997 "spec/controllers/projects/merge_requests_controller_ee_spec.rb": 48.773542642593384,3998 "spec/controllers/autocomplete_controller_spec.rb": 52.94283175468445,3999 "spec/services/merge_requests/squash_service_spec.rb": 62.98209190368652,4000 "spec/requests/api/tags_spec.rb": 33.285340785980225,4001 "spec/helpers/markup_helper_spec.rb": 24.764751195907593,4002 "spec/controllers/projects/imports_controller_spec.rb": 13.935391664505005,4003 "spec/lib/gitlab/diff/file_spec.rb": 27.318360090255737,4004 "spec/controllers/projects/jobs_controller_spec.rb": 30.653168201446533,4005 "spec/requests/api/project_hooks_spec.rb": 16.222257375717163,4006 "spec/controllers/ee/projects/boards_controller_spec.rb": 13.181616306304932,4007 "spec/features/issues/note_polling_spec.rb": 29.455608367919922,4008 "spec/features/reportable_note/issue_spec.rb": 15.796050786972046,4009 "spec/workers/stuck_ci_jobs_worker_spec.rb": 12.05775785446167,4010 "spec/lib/gitlab/conflict/file_spec.rb": 22.76569628715515,4011 "spec/services/geo/schedule_repo_create_service_spec.rb": 10.98381495475769,4012 "spec/controllers/projects/deployments_controller_spec.rb": 19.34300923347473,4013 "spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb": 19.39485239982605,4014 "spec/lib/gitlab/gfm/uploads_rewriter_spec.rb": 5.809229612350464,4015 "spec/controllers/projects/issues_controller_ee_spec.rb": 15.363703489303589,4016 "spec/features/admin/admin_uses_repository_checks_spec.rb": 9.03491997718811,4017 "spec/lib/banzai/filter/gollum_tags_filter_spec.rb": 6.827820062637329,4018 "spec/finders/issues_finder_spec.rb": 10.649828672409058,4019 "spec/services/labels/transfer_service_spec.rb": 10.953565120697021,4020 "spec/helpers/blob_helper_spec.rb": 6.375834226608276,4021 "spec/models/application_setting_spec.rb": 8.027937650680542,4022 "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 4.895965337753296,4023 "spec/workers/repository_update_remote_mirror_worker_spec.rb": 5.294554233551025,4024 "spec/features/snippets/user_edits_snippet_spec.rb": 9.88386583328247,4025 "spec/lib/gitlab/ci/status/build/cancelable_spec.rb": 5.789782762527466,4026 "spec/controllers/projects/services_controller_spec.rb": 7.978753328323364,4027 "spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb": 3.9544146060943604,4028 "spec/features/admin/admin_geo_nodes_spec.rb": 8.66457986831665,4029 "spec/models/lfs_objects_project_spec.rb": 4.2857513427734375,4030 "spec/lib/gitlab/ci/build/image_spec.rb": 6.8710949420928955,4031 "spec/controllers/ee/projects_controller_spec.rb": 7.141573429107666,4032 "spec/services/ee/boards/create_service_spec.rb": 4.492227792739868,4033 "spec/services/pages_service_spec.rb": 5.050108432769775,4034 "spec/services/geo/schedule_repo_update_service_spec.rb": 5.841026782989502,4035 "spec/models/concerns/elastic/project_spec.rb": 8.286553859710693,4036 "spec/services/ee/wiki_pages/update_service_spec.rb": 4.414388179779053,4037 "spec/workers/git_garbage_collect_worker_spec.rb": 7.396456480026245,4038 "spec/features/projects/settings/visibility_settings_spec.rb": 5.311839580535889,4039 "spec/lib/gitlab/slash_commands/issue_new_spec.rb": 4.181419849395752,4040 "spec/models/project_group_link_spec.rb": 4.614008903503418,4041 "spec/services/projects/unlink_fork_service_spec.rb": 3.4779443740844727,4042 "spec/features/projects/milestones/new_spec.rb": 2.328949451446533,4043 "spec/lib/gitlab/backup/repository_spec.rb": 7.832166910171509,4044 "spec/models/abuse_report_spec.rb": 4.48017692565918,4045 "spec/lib/gitlab/import_export/fork_spec.rb": 5.496218204498291,4046 "spec/lib/gitlab/ci/status/pipeline/common_spec.rb": 3.20314884185791,4047 "spec/services/boards/lists/destroy_service_spec.rb": 3.521268844604492,4048 "spec/lib/gitlab/cycle_analytics/code_event_fetcher_spec.rb": 1.5074572563171387,4049 "spec/controllers/dashboard/labels_controller_spec.rb": 1.451871395111084,4050 "spec/requests/api/system_hooks_spec.rb": 2.479341745376587,4051 "spec/features/dashboard/datetime_on_tooltips_spec.rb": 3.9121944904327393,4052 "spec/helpers/namespaces_helper_spec.rb": 1.527172327041626,4053 "spec/controllers/admin/groups_controller_spec.rb": 2.8483898639678955,4054 "spec/features/projects/files/editing_a_file_spec.rb": 3.406686782836914,4055 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 1.0640900135040283,4056 "spec/services/update_release_service_spec.rb": 2.4875385761260986,4057 "spec/features/groups/activity_spec.rb": 2.389178514480591,4058 "spec/models/project_services/chat_notification_service_spec.rb": 1.389794111251831,4059 "spec/features/groups/show_spec.rb": 0.9962296485900879,4060 "spec/presenters/ci/group_variable_presenter_spec.rb": 0.5933029651641846,4061 "spec/controllers/projects/wikis_controller_spec.rb": 1.452749490737915,4062 "spec/controllers/projects/hooks_controller_spec.rb": 0.9264681339263916,4063 "spec/features/snippets/public_snippets_spec.rb": 1.3326566219329834,4064 "spec/models/label_link_spec.rb": 1.1556057929992676,4065 "spec/tasks/tokens_spec.rb": 1.6425838470458984,4066 "spec/services/chat_names/authorize_user_service_spec.rb": 0.9996905326843262,4067 "spec/models/concerns/token_authenticatable_spec.rb": 0.5507714748382568,4068 "spec/models/merge_request/metrics_spec.rb": 1.199965000152588,4069 "spec/services/create_snippet_service_spec.rb": 0.46497011184692383,4070 "spec/mailers/abuse_report_mailer_spec.rb": 1.3170554637908936,4071 "spec/services/tags/destroy_service_spec.rb": 0.9181840419769287,4072 "spec/services/after_branch_delete_service_spec.rb": 0.8406121730804443,4073 "spec/features/users/rss_spec.rb": 0.8070871829986572,4074 "spec/lib/banzai/filter/reference_filter_spec.rb": 0.32211780548095703,4075 "spec/lib/gitlab/redis/wrapper_spec.rb": 0.20439743995666504,4076 "spec/uploaders/records_uploads_spec.rb": 0.43969225883483887,4077 "spec/models/pages_domain_spec.rb": 0.5148351192474365,4078 "spec/models/concerns/faster_cache_keys_spec.rb": 0.6476080417633057,4079 "spec/models/blob_viewer/route_map_spec.rb": 0.2774224281311035,4080 "spec/lib/gitlab/database/load_balancing_spec.rb": 0.3336679935455322,4081 "spec/views/help/index.html.haml_spec.rb": 0.17055630683898926,4082 "spec/models/blob_viewer/gitlab_ci_yml_spec.rb": 0.30830979347229004,4083 "spec/lib/gitlab/git/attributes_spec.rb": 0.24051761627197266,4084 "spec/services/ci/update_runner_service_spec.rb": 0.13451385498046875,4085 "spec/tasks/config_lint_spec.rb": 0.20513200759887695,4086 "spec/services/emails/destroy_service_spec.rb": 0.31071925163269043,4087 "spec/helpers/version_check_helper_spec.rb": 0.09383416175842285,4088 "spec/lib/gitlab/ci/config_spec.rb": 0.09335589408874512,4089 "spec/lib/gitlab/ci/config/entry/validatable_spec.rb": 0.04034924507141113,4090 "spec/lib/gitlab/request_forgery_protection_spec.rb": 0.09194517135620117,4091 "spec/lib/gitlab/metrics/metric_spec.rb": 0.12056612968444824,4092 "spec/models/project_services/emails_on_push_service_spec.rb": 0.10824394226074219,4093 "spec/lib/bitbucket/representation/comment_spec.rb": 0.05630350112915039,4094 "spec/workers/schedule_update_user_activity_worker_spec.rb": 0.02640819549560547,4095 "spec/lib/gitlab/sherlock/file_sample_spec.rb": 0.10954403877258301,4096 "spec/workers/propagate_service_template_worker_spec.rb": 0.13535356521606445,4097 "spec/models/merge_request_diff_file_spec.rb": 0.031397104263305664,4098 "spec/helpers/storage_helper_spec.rb": 0.06469011306762695,4099 "spec/lib/container_registry/client_spec.rb": 0.04880499839782715,4100 "spec/lib/gitlab/ci/config/entry/unspecified_spec.rb": 0.03758406639099121,4101 "spec/lib/gitlab/git_spec.rb": 0.022089004516601562,4102 "spec/lib/gitlab/routing_spec.rb": 0.016057491302490234,4103 "spec/lib/gitlab/diff/inline_diff_spec.rb": 0.012632369995117188,4104 "spec/lib/gitlab/database/load_balancing/model_proxy_spec.rb": 0.0075297355651855474105}4106Knapsack global time execution for tests: 28m 19s4107Pending: (Failures listed here are expected and do not affect your suite's status)4108 1) Projects::IssuesController issue weights unlicensed #index ignores sorting by weight (ascending)4109 # Not yet implemented4110 # ./spec/controllers/projects/issues_controller_ee_spec.rb:1594111 2) Projects::IssuesController issue weights unlicensed #index ignores sorting by weight (descending)4112 # Not yet implemented4113 # ./spec/controllers/projects/issues_controller_ee_spec.rb:1604114 3) ProjectGroupLink Validation doesn't allow a project to be shared with an ancestor of the group it is in4115 # around hook at ./spec/spec_helper.rb:155 did not execute the example4116 # ./spec/models/project_group_link_spec.rb:264117 4) Gitlab::SQL::RecursiveCTE#to_arel generates an Arel relation for the CTE body4118 # around hook at ./spec/spec_helper.rb:159 did not execute the example4119 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:74120 5) Gitlab::SQL::RecursiveCTE#alias_to returns an alias for the CTE4121 # around hook at ./spec/spec_helper.rb:159 did not execute the example4122 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:264123 6) Gitlab::SQL::RecursiveCTE#apply_to applies a CTE to an ActiveRecord::Relation4124 # around hook at ./spec/spec_helper.rb:159 did not execute the example4125 # ./spec/lib/gitlab/sql/recursive_cte_spec.rb:374126Finished in 37 minutes 25 seconds (files took 46.22 seconds to load)41271515 examples, 0 failures, 6 pending4128Not uploading cache ruby-233-with-yarn due to policy4129Uploading artifacts...4130coverage/: found 5 matching files 4131knapsack/: found 7 matching files 4132WARNING: tmp/capybara/: no matching files 4133Uploading artifacts to coordinator... ok id=28149561 responseStatus=201 Created token=Ku8zYvqa4134Job succeeded