rspec integration pg-10 5/6
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 12.2.0-rc1 (a1db02fa)2 on prm-com-gitlab-org bd091556 3 Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ...
00:16
4Starting service postgres:10.9 ...5Pulling docker image postgres:10.9 ...6Using docker image sha256:897b33033d6498ba789d2ad5b305209106c8b45622b37ad135440a584ec885d3 for postgres:10.9 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:ed7d2ff5a6232b43bdc89a2220ed989f532c3794422aa2a86823b8bc62e71447 for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ...12Using docker image sha256:f56a8963ab3ec0167e7f96d50025946a254a4069e01e0a2e6c3731fc19cb5c27 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33 ... 13 Running on runner-bd091556-project-278964-concurrent-0 via runner-bd091556-prm-1566552461-df197396...
00:01
15Initialized empty Git repository in /builds/gitlab-org/gitlab-ee/.git/16Created fresh repository.18 * [new branch] master -> origin/master19Checking out 4447c081 as master...20Skipping Git submodules setup22Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 23Successfully extracted cache25Downloading artifacts from coordinator... ok id=278682829 responseStatus=200 OK token=GD3tnYdc26Downloading artifacts for setup-test-env (278682830)...27Downloading artifacts from coordinator... ok id=278682830 responseStatus=200 OK token=M-vJJYAX28WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 29Downloading artifacts for retrieve-tests-metadata (278682832)...30Downloading artifacts from coordinator... ok id=278682832 responseStatus=200 OK token=Nc9UNA_232Fri Aug 23 10:41:56 UTC 201933$ source scripts/utils.sh34$ source scripts/prepare_build.sh35Bundler version 1.17.236Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.37The Gemfile's dependencies are satisfied38Successfully installed knapsack-1.17.2391 gem installed40CREATE ROLE41GRANT42Dropped database 'gitlabhq_test'43Created database 'gitlabhq_test'44-- enable_extension("pg_trgm")45 -> 0.0338s46-- enable_extension("plpgsql")47 -> 0.0025s48-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})49 -> 0.0040s50-- create_table("allowed_email_domains", {:force=>:cascade})51 -> 0.0053s52-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})53 -> 0.0136s54-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})55 -> 0.0138s56-- create_table("appearances", {:id=>:serial, :force=>:cascade})57 -> 0.0033s58-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})59 -> 0.0024s60-- create_table("application_settings", {:id=>:serial, :force=>:cascade})61 -> 0.0682s62-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})63 -> 0.0060s64-- create_table("approval_merge_request_rules", {:force=>:cascade})65 -> 0.0124s66-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})67 -> 0.0064s68-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})69 -> 0.0066s70-- create_table("approval_merge_request_rules_users", {:force=>:cascade})71 -> 0.0063s72-- create_table("approval_project_rules", {:force=>:cascade})73 -> 0.0076s74-- create_table("approval_project_rules_groups", {:force=>:cascade})75 -> 0.0062s76-- create_table("approval_project_rules_users", {:force=>:cascade})77 -> 0.0062s78-- create_table("approvals", {:id=>:serial, :force=>:cascade})79 -> 0.0061s80-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})81 -> 0.0072s82-- create_table("approvers", {:id=>:serial, :force=>:cascade})83 -> 0.0067s84-- create_table("audit_events", {:id=>:serial, :force=>:cascade})85 -> 0.0072s86-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})87 -> 0.0071s88-- create_table("badges", {:id=>:serial, :force=>:cascade})89 -> 0.0067s90-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})91 -> 0.0062s92-- create_table("board_group_recent_visits", {:force=>:cascade})93 -> 0.0101s94-- create_table("board_labels", {:id=>:serial, :force=>:cascade})95 -> 0.0061s96-- create_table("board_project_recent_visits", {:force=>:cascade})97 -> 0.0111s98-- create_table("boards", {:id=>:serial, :force=>:cascade})99 -> 0.0088s100-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})101 -> 0.0048s102-- create_table("chat_names", {:id=>:serial, :force=>:cascade})103 -> 0.0068s104-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})105 -> 0.0048s106-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})107 -> 0.0047s108-- create_table("ci_build_trace_chunks", {:force=>:cascade})109 -> 0.0046s110-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})111 -> 0.0046s112-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})113 -> 0.0087s114-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})115 -> 0.0529s116-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})117 -> 0.0080s118-- create_table("ci_builds_runner_session", {:force=>:cascade})119 -> 0.0049s120-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})121 -> 0.0068s122-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})123 -> 0.0111s124-- create_table("ci_job_variables", {:force=>:cascade})125 -> 0.0073s126-- create_table("ci_pipeline_chat_data", {:force=>:cascade})127 -> 0.0065s128-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})129 -> 0.0050s130-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})131 -> 0.0121s132-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})133 -> 0.0053s134-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})135 -> 0.0279s136-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})137 -> 0.0061s138-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})139 -> 0.0062s140-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})141 -> 0.0176s142-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})143 -> 0.0127s144-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})145 -> 0.0115s146-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})147 -> 0.0070s148-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})149 -> 0.0067s150-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})151 -> 0.0067s152-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})153 -> 0.0062s154-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})155 -> 0.0050s156-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})157 -> 0.0065s158-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})159 -> 0.0055s160-- create_table("clusters", {:id=>:serial, :force=>:cascade})161 -> 0.0093s162-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})163 -> 0.0050s164-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})165 -> 0.0049s166-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})167 -> 0.0048s168-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})169 -> 0.0069s170-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})171 -> 0.0048s172-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})173 -> 0.0048s174-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})175 -> 0.0070s176-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})177 -> 0.0153s178-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})179 -> 0.0071s180-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})181 -> 0.0068s182-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})183 -> 0.0050s184-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})185 -> 0.0048s186-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})187 -> 0.0047s188-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})189 -> 0.0086s190-- create_table("deployments", {:id=>:serial, :force=>:cascade})191 -> 0.0250s192-- create_table("design_management_designs", {:force=>:cascade})193 -> 0.0072s194-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})195 -> 0.0100s196-- create_table("design_management_versions", {:force=>:cascade})197 -> 0.0071s198-- create_table("draft_notes", {:force=>:cascade})199 -> 0.0100s200-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})201 -> 0.0035s202-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})203 -> 0.0034s204-- create_table("emails", {:id=>:serial, :force=>:cascade})205 -> 0.0097s206-- create_table("environments", {:id=>:serial, :force=>:cascade})207 -> 0.0124s208-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})209 -> 0.0064s210-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})211 -> 0.0043s212-- create_table("epics", {:id=>:serial, :force=>:cascade})213 -> 0.0229s214-- create_table("events", {:id=>:serial, :force=>:cascade})215 -> 0.0152s216-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})217 -> 0.0052s218-- create_table("features", {:id=>:serial, :force=>:cascade})219 -> 0.0051s220-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})221 -> 0.0084s222-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})223 -> 0.0049s224-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})225 -> 0.0042s226-- create_table("geo_cache_invalidation_events", {:force=>:cascade})227 -> 0.0023s228-- create_table("geo_container_repository_updated_events", {:force=>:cascade})229 -> 0.0043s230-- create_table("geo_event_log", {:force=>:cascade})231 -> 0.0300s232-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})233 -> 0.0047s234-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})235 -> 0.0050s236-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})237 -> 0.0058s238-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})239 -> 0.0047s240-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})241 -> 0.0086s242-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})243 -> 0.0063s244-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})245 -> 0.0133s246-- create_table("geo_repositories_changed_events", {:force=>:cascade})247 -> 0.0045s248-- create_table("geo_repository_created_events", {:force=>:cascade})249 -> 0.0052s250-- create_table("geo_repository_deleted_events", {:force=>:cascade})251 -> 0.0053s252-- create_table("geo_repository_renamed_events", {:force=>:cascade})253 -> 0.0050s254-- create_table("geo_repository_updated_events", {:force=>:cascade})255 -> 0.0082s256-- create_table("geo_reset_checksum_events", {:force=>:cascade})257 -> 0.0045s258-- create_table("geo_upload_deleted_events", {:force=>:cascade})259 -> 0.0052s260-- create_table("gitlab_subscriptions", {:force=>:cascade})261 -> 0.0084s262-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})263 -> 0.0105s264-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})265 -> 0.0100s266-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})267 -> 0.0151s268-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})269 -> 0.0072s270-- create_table("historical_data", {:id=>:serial, :force=>:cascade})271 -> 0.0021s272-- create_table("identities", {:id=>:serial, :force=>:cascade})273 -> 0.0092s274-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})275 -> 0.0073s276-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})277 -> 0.0053s278-- create_table("insights", {:id=>:serial, :force=>:cascade})279 -> 0.0062s280-- create_table("internal_ids", {:force=>:cascade})281 -> 0.0100s282-- create_table("ip_restrictions", {:force=>:cascade})283 -> 0.0046s284-- create_table("issue_assignees", {:id=>false, :force=>:cascade})285 -> 0.0052s286-- create_table("issue_links", {:id=>:serial, :force=>:cascade})287 -> 0.0082s288-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})289 -> 0.0041s290-- create_table("issue_tracker_data", {:force=>:cascade})291 -> 0.0050s292-- create_table("issues", {:id=>:serial, :force=>:cascade})293 -> 0.0374s294-- create_table("jira_connect_installations", {:force=>:cascade})295 -> 0.0047s296-- create_table("jira_connect_subscriptions", {:force=>:cascade})297 -> 0.0082s298-- create_table("jira_tracker_data", {:force=>:cascade})299 -> 0.0050s300-- create_table("keys", {:id=>:serial, :force=>:cascade})301 -> 0.0095s302-- create_table("label_links", {:id=>:serial, :force=>:cascade})303 -> 0.0067s304-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})305 -> 0.0083s306-- create_table("labels", {:id=>:serial, :force=>:cascade})307 -> 0.0143s308-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})309 -> 0.0028s310-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})311 -> 0.0069s312-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})313 -> 0.0067s314-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})315 -> 0.0063s316-- create_table("licenses", {:id=>:serial, :force=>:cascade})317 -> 0.0025s318-- create_table("lists", {:id=>:serial, :force=>:cascade})319 -> 0.0133s320-- create_table("members", {:id=>:serial, :force=>:cascade})321 -> 0.0162s322-- create_table("merge_request_assignees", {:force=>:cascade})323 -> 0.0081s324-- create_table("merge_request_blocks", {:force=>:cascade})325 -> 0.0064s326-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})327 -> 0.0061s328-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})329 -> 0.0040s330-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})331 -> 0.0072s332-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})333 -> 0.0175s334-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})335 -> 0.0488s336-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})337 -> 0.0062s338-- create_table("merge_trains", {:force=>:cascade})339 -> 0.0111s340-- create_table("milestones", {:id=>:serial, :force=>:cascade})341 -> 0.0162s342-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})343 -> 0.0036s344-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})345 -> 0.0069s346-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})347 -> 0.0052s348-- create_table("namespaces", {:id=>:serial, :force=>:cascade})349 -> 0.0462s350-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})351 -> 0.0050s352-- create_table("notes", {:id=>:serial, :force=>:cascade})353 -> 0.0286s354-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})355 -> 0.0106s356-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})357 -> 0.0051s358-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})359 -> 0.0094s360-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})361 -> 0.0080s362-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})363 -> 0.0047s364-- create_table("operations_feature_flag_scopes", {:force=>:cascade})365 -> 0.0066s366-- create_table("operations_feature_flags", {:force=>:cascade})367 -> 0.0056s368-- create_table("operations_feature_flags_clients", {:force=>:cascade})369 -> 0.0074s370-- create_table("packages_maven_metadata", {:force=>:cascade})371 -> 0.0053s372-- create_table("packages_package_files", {:force=>:cascade})373 -> 0.0054s374-- create_table("packages_packages", {:force=>:cascade})375 -> 0.0052s376-- create_table("pages_domain_acme_orders", {:force=>:cascade})377 -> 0.0078s378-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})379 -> 0.0191s380-- create_table("path_locks", {:id=>:serial, :force=>:cascade})381 -> 0.0095s382-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})383 -> 0.0089s384-- create_table("plans", {:id=>:serial, :force=>:cascade})385 -> 0.0054s386-- create_table("pool_repositories", {:force=>:cascade})387 -> 0.0094s388-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})389 -> 0.0047s390-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})391 -> 0.0019s392-- create_table("project_aliases", {:force=>:cascade})393 -> 0.0065s394-- create_table("project_authorizations", {:id=>false, :force=>:cascade})395 -> 0.0053s396-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})397 -> 0.0048s398-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})399 -> 0.0052s400-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})401 -> 0.0068s402-- create_table("project_daily_statistics", {:force=>:cascade})403 -> 0.0042s404-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})405 -> 0.0062s406-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})407 -> 0.0026s408-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})409 -> 0.0081s410-- create_table("project_features", {:id=>:serial, :force=>:cascade})411 -> 0.0054s412-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})413 -> 0.0073s414-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})415 -> 0.0046s416-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})417 -> 0.0033s418-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})419 -> 0.0019s420-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})421 -> 0.0166s422-- create_table("project_repositories", {:force=>:cascade})423 -> 0.0097s424-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})425 -> 0.0159s426-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})427 -> 0.0093s428-- create_table("project_tracing_settings", {:force=>:cascade})429 -> 0.0059s430-- create_table("projects", {:id=>:serial, :force=>:cascade})431 -> 0.0693s432-- create_table("prometheus_alert_events", {:force=>:cascade})433 -> 0.0069s434-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})435 -> 0.0738s436-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})437 -> 0.0116s438-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})439 -> 0.0090s440-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})441 -> 0.0087s442-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})443 -> 0.0088s444-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})445 -> 0.0048s446-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})447 -> 0.0088s448-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})449 -> 0.0071s450-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})451 -> 0.0090s452-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})453 -> 0.0068s454-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})455 -> 0.0039s456-- create_table("push_rules", {:id=>:serial, :force=>:cascade})457 -> 0.0095s458-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})459 -> 0.0066s460-- create_table("release_links", {:force=>:cascade})461 -> 0.0069s462-- create_table("releases", {:id=>:serial, :force=>:cascade})463 -> 0.0091s464-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})465 -> 0.0083s466-- create_table("repository_languages", {:id=>false, :force=>:cascade})467 -> 0.0034s468-- create_table("resource_label_events", {:force=>:cascade})469 -> 0.0128s470-- create_table("reviews", {:force=>:cascade})471 -> 0.0084s472-- create_table("routes", {:id=>:serial, :force=>:cascade})473 -> 0.0087s474-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})475 -> 0.0058s476-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})477 -> 0.0053s478-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})479 -> 0.0048s480-- create_table("services", {:id=>:serial, :force=>:cascade})481 -> 0.0158s482-- create_table("shards", {:id=>:serial, :force=>:cascade})483 -> 0.0045s484-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})485 -> 0.0068s486-- create_table("smartcard_identities", {:force=>:cascade})487 -> 0.0068s488-- create_table("snippets", {:id=>:serial, :force=>:cascade})489 -> 0.0158s490-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})491 -> 0.0066s492-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})493 -> 0.0048s494-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})495 -> 0.0035s496-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})497 -> 0.0073s498-- create_table("suggestions", {:force=>:cascade})499 -> 0.0070s500-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})501 -> 0.0046s502-- create_table("taggings", {:id=>:serial, :force=>:cascade})503 -> 0.0113s504-- create_table("tags", {:id=>:serial, :force=>:cascade})505 -> 0.0070s506-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})507 -> 0.0086s508-- create_table("timelogs", {:id=>:serial, :force=>:cascade})509 -> 0.0086s510-- create_table("todos", {:id=>:serial, :force=>:cascade})511 -> 0.0220s512-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})513 -> 0.0043s514-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})515 -> 0.0071s516-- create_table("uploads", {:id=>:serial, :force=>:cascade})517 -> 0.0111s518-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})519 -> 0.0053s520-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})521 -> 0.0062s522-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})523 -> 0.0072s524-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})525 -> 0.0054s526-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})527 -> 0.0065s528-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})529 -> 0.0051s530-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})531 -> 0.0060s532-- create_table("users", {:id=>:serial, :force=>:cascade})533 -> 0.0605s534-- create_table("users_ops_dashboard_projects", {:force=>:cascade})535 -> 0.0065s536-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})537 -> 0.0066s538-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})539 -> 0.0151s540-- create_table("vulnerability_identifiers", {:force=>:cascade})541 -> 0.0050s542-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})543 -> 0.0070s544-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})545 -> 0.0131s546-- create_table("vulnerability_occurrences", {:force=>:cascade})547 -> 0.0120s548-- create_table("vulnerability_scanners", {:force=>:cascade})549 -> 0.0051s550-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})551 -> 0.0074s552-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})553 -> 0.0129s554-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})555 -> 0.0027s556-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})557 -> 0.0018s558-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})559 -> 0.0013s560-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})561 -> 0.0014s562-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})563 -> 0.0014s564-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})565 -> 0.0012s566-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})567 -> 0.0025s568-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})569 -> 0.0026s570-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})571 -> 0.0022s572-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})573 -> 0.0021s574-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})575 -> 0.0029s576-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})577 -> 0.0016s578-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})579 -> 0.0047s580-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})581 -> 0.0026s582-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})583 -> 0.0016s584-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})585 -> 0.0016s586-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})587 -> 0.0014s588-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})589 -> 0.0013s590-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})591 -> 0.0013s592-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})593 -> 0.0015s594-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})595 -> 0.0015s596-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})597 -> 0.0012s598-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})599 -> 0.0013s600-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})601 -> 0.0017s602-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})603 -> 0.0015s604-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})605 -> 0.0014s606-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})607 -> 0.0015s608-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})609 -> 0.0014s610-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})611 -> 0.0015s612-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})613 -> 0.0014s614-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})615 -> 0.0014s616-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})617 -> 0.0013s618-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})619 -> 0.0013s620-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})621 -> 0.0017s622-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})623 -> 0.0012s624-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})625 -> 0.0013s626-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})627 -> 0.0013s628-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})629 -> 0.0016s630-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})631 -> 0.0015s632-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})633 -> 0.0014s634-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})635 -> 0.0016s636-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})637 -> 0.0015s638-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})639 -> 0.0023s640-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})641 -> 0.0014s642-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})643 -> 0.0015s644-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})645 -> 0.0012s646-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})647 -> 0.0013s648-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})649 -> 0.0015s650-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})651 -> 0.0021s652-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})653 -> 0.0015s654-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})655 -> 0.0014s656-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})657 -> 0.0017s658-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})659 -> 0.0023s660-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})661 -> 0.0015s662-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})663 -> 0.0016s664-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})665 -> 0.0014s666-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})667 -> 0.0014s668-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})669 -> 0.0015s670-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})671 -> 0.0018s672-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})673 -> 0.0015s674-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})675 -> 0.0015s676-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})677 -> 0.0012s678-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})679 -> 0.0013s680-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})681 -> 0.0016s682-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})683 -> 0.0014s684-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})685 -> 0.0014s686-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})687 -> 0.0012s688-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})689 -> 0.0014s690-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})691 -> 0.0015s692-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})693 -> 0.0017s694-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})695 -> 0.0015s696-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})697 -> 0.0014s698-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})699 -> 0.0018s700-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})701 -> 0.0016s702-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})703 -> 0.0012s704-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})705 -> 0.0012s706-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})707 -> 0.0015s708-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})709 -> 0.0015s710-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})711 -> 0.0013s712-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})713 -> 0.0016s714-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})715 -> 0.0013s716-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})717 -> 0.0015s718-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})719 -> 0.0015s720-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})721 -> 0.0016s722-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})723 -> 0.0015s724-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})725 -> 0.0015s726-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})727 -> 0.0013s728-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})729 -> 0.0012s730-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})731 -> 0.0015s732-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})733 -> 0.0013s734-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})735 -> 0.0016s736-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})737 -> 0.0012s738-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})739 -> 0.0012s740-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})741 -> 0.0013s742-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})743 -> 0.0013s744-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})745 -> 0.0013s746-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})747 -> 0.0017s748-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})749 -> 0.0013s750-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})751 -> 0.0012s752-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})753 -> 0.0012s754-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})755 -> 0.0015s756-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})757 -> 0.0014s758-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})759 -> 0.0015s760-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})761 -> 0.0016s762-- add_foreign_key("container_repositories", "projects")763 -> 0.0018s764-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})765 -> 0.0016s766-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})767 -> 0.0014s768-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})769 -> 0.0019s770-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})771 -> 0.0017s772-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})773 -> 0.0017s774-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})775 -> 0.0020s776-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})777 -> 0.0015s778-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})779 -> 0.0012s780-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})781 -> 0.0012s782-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})783 -> 0.0013s784-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})785 -> 0.0020s786-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})787 -> 0.0016s788-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})789 -> 0.0015s790-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})791 -> 0.0017s792-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})793 -> 0.0017s794-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})795 -> 0.0017s796-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})797 -> 0.0013s798-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})799 -> 0.0012s800-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})801 -> 0.0012s802-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})803 -> 0.0015s804-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})805 -> 0.0014s806-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})807 -> 0.0016s808-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})809 -> 0.0015s810-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})811 -> 0.0016s812-- add_foreign_key("events", "projects", {:on_delete=>:cascade})813 -> 0.0019s814-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})815 -> 0.0016s816-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})817 -> 0.0014s818-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})819 -> 0.0016s820-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})821 -> 0.0016s822-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})823 -> 0.0014s824-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})825 -> 0.0015s826-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})827 -> 0.0013s828-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})829 -> 0.0018s830-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})831 -> 0.0012s832-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})833 -> 0.0012s834-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})835 -> 0.0012s836-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})837 -> 0.0013s838-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})839 -> 0.0012s840-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})841 -> 0.0015s842-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})843 -> 0.0017s844-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})845 -> 0.0012s846-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})847 -> 0.0013s848-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})849 -> 0.0012s850-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})851 -> 0.0013s852-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})853 -> 0.0019s854-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})855 -> 0.0017s856-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})857 -> 0.0016s858-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})859 -> 0.0015s860-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})861 -> 0.0016s862-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})863 -> 0.0012s864-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})865 -> 0.0016s866-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})867 -> 0.0017s868-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})869 -> 0.0016s870-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})871 -> 0.0016s872-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})873 -> 0.0017s874-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})875 -> 0.0013s876-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})877 -> 0.0015s878-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})879 -> 0.0019s880-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})881 -> 0.0023s882-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})883 -> 0.0013s884-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})885 -> 0.0019s886-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})887 -> 0.0021s888-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})889 -> 0.0015s890-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})891 -> 0.0019s892-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})893 -> 0.0018s894-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})895 -> 0.0016s896-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})897 -> 0.0016s898-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})899 -> 0.0017s900-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})901 -> 0.0018s902-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})903 -> 0.0014s904-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})905 -> 0.0014s906-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})907 -> 0.0016s908-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})909 -> 0.0016s910-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})911 -> 0.0013s912-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})913 -> 0.0015s914-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})915 -> 0.0016s916-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})917 -> 0.0013s918-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})919 -> 0.0014s920-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})921 -> 0.0019s922-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})923 -> 0.0016s924-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})925 -> 0.0017s926-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})927 -> 0.0017s928-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})929 -> 0.0014s930-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})931 -> 0.0016s932-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})933 -> 0.0016s934-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})935 -> 0.0014s936-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})937 -> 0.0014s938-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})939 -> 0.0017s940-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})941 -> 0.0015s942-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})943 -> 0.0018s944-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})945 -> 0.0020s946-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})947 -> 0.0017s948-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})949 -> 0.0015s950-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})951 -> 0.0013s952-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})953 -> 0.0013s954-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})955 -> 0.0017s956-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})957 -> 0.0019s958-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})959 -> 0.0015s960-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})961 -> 0.0016s962-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})963 -> 0.0014s964-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})965 -> 0.0014s966-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})967 -> 0.0014s968-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})969 -> 0.0013s970-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})971 -> 0.0015s972-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})973 -> 0.0017s974-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})975 -> 0.0015s976-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})977 -> 0.0017s978-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})979 -> 0.0016s980-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})981 -> 0.0015s982-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})983 -> 0.0014s984-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})985 -> 0.0015s986-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})987 -> 0.0019s988-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})989 -> 0.0019s990-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})991 -> 0.0018s992-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})993 -> 0.0017s994-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})995 -> 0.0019s996-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})997 -> 0.0019s998-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})999 -> 0.0017s1000-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1001 -> 0.0016s1002-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1003 -> 0.0016s1004-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1005 -> 0.0014s1006-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1007 -> 0.0016s1008-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1009 -> 0.0016s1010-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1011 -> 0.0014s1012-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1013 -> 0.0018s1014-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1015 -> 0.0015s1016-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1017 -> 0.0015s1018-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1019 -> 0.0015s1020-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1021 -> 0.0014s1022-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1023 -> 0.0015s1024-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1025 -> 0.0019s1026-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1027 -> 0.0018s1028-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1029 -> 0.0025s1030-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1031 -> 0.0016s1032-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1033 -> 0.0021s1034-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1035 -> 0.0013s1036-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1037 -> 0.0013s1038-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1039 -> 0.0018s1040-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1041 -> 0.0018s1042-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1043 -> 0.0013s1044-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1045 -> 0.0012s1046-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1047 -> 0.0018s1048-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1049 -> 0.0018s1050-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1051 -> 0.0018s1052-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1053 -> 0.0019s1054-- add_foreign_key("path_locks", "users")1055 -> 0.0017s1056-- add_foreign_key("personal_access_tokens", "users")1057 -> 0.0017s1058-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1059 -> 0.0018s1060-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1061 -> 0.0014s1062-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1063 -> 0.0017s1064-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1065 -> 0.0019s1066-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1067 -> 0.0018s1068-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1069 -> 0.0016s1070-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1071 -> 0.0018s1072-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1073 -> 0.0017s1074-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1075 -> 0.0018s1076-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1077 -> 0.0018s1078-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1079 -> 0.0015s1080-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1081 -> 0.0016s1082-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1083 -> 0.0016s1084-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1085 -> 0.0017s1086-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1087 -> 0.0017s1088-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1089 -> 0.0018s1090-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1091 -> 0.0016s1092-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1093 -> 0.0018s1094-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1095 -> 0.0018s1096-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1097 -> 0.0018s1098-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1099 -> 0.0018s1100-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1101 -> 0.0013s1102-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1103 -> 0.0020s1104-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1105 -> 0.0018s1106-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1107 -> 0.0017s1108-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1109 -> 0.0019s1110-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1111 -> 0.0018s1112-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1113 -> 0.0014s1114-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1115 -> 0.0012s1116-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1117 -> 0.0016s1118-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1119 -> 0.0014s1120-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1121 -> 0.0019s1122-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1123 -> 0.0017s1124-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1125 -> 0.0013s1126-- add_foreign_key("protected_branch_merge_access_levels", "users")1127 -> 0.0017s1128-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1129 -> 0.0015s1130-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1131 -> 0.0012s1132-- add_foreign_key("protected_branch_push_access_levels", "users")1133 -> 0.0016s1134-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1135 -> 0.0016s1136-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1137 -> 0.0012s1138-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1139 -> 0.0015s1140-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1141 -> 0.0018s1142-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1143 -> 0.0015s1144-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1145 -> 0.0013s1146-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1147 -> 0.0015s1148-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1149 -> 0.0017s1150-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1151 -> 0.0015s1152-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1153 -> 0.0013s1154-- add_foreign_key("protected_tag_create_access_levels", "users")1155 -> 0.0018s1156-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1157 -> 0.0017s1158-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1159 -> 0.0013s1160-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1161 -> 0.0021s1162-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1163 -> 0.0016s1164-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1165 -> 0.0017s1166-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1167 -> 0.0018s1168-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1169 -> 0.0019s1170-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1171 -> 0.0023s1172-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1173 -> 0.0018s1174-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1175 -> 0.0015s1176-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1177 -> 0.0014s1178-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1179 -> 0.0015s1180-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1181 -> 0.0026s1182-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1183 -> 0.0015s1184-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1185 -> 0.0018s1186-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1187 -> 0.0015s1188-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1189 -> 0.0015s1190-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1191 -> 0.0015s1192-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1193 -> 0.0019s1194-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1195 -> 0.0014s1196-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1197 -> 0.0017s1198-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1199 -> 0.0021s1200-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1201 -> 0.0019s1202-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1203 -> 0.0013s1204-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1205 -> 0.0020s1206-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1207 -> 0.0017s1208-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1209 -> 0.0013s1210-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1211 -> 0.0013s1212-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1213 -> 0.0016s1214-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1215 -> 0.0016s1216-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1217 -> 0.0014s1218-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1219 -> 0.0019s1220-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1221 -> 0.0014s1222-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1223 -> 0.0020s1224-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1225 -> 0.0016s1226-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1227 -> 0.0019s1228-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1229 -> 0.0019s1230-- add_foreign_key("u2f_registrations", "users")1231 -> 0.0019s1232-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1233 -> 0.0017s1234-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1235 -> 0.0016s1236-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1237 -> 0.0018s1238-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1239 -> 0.0016s1240-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1241 -> 0.0018s1242-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1243 -> 0.0016s1244-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1245 -> 0.0017s1246-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1247 -> 0.0016s1248-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1249 -> 0.0019s1250-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1251 -> 0.0019s1252-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1253 -> 0.0016s1254-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1255 -> 0.0018s1256-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1257 -> 0.0017s1258-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1259 -> 0.0015s1260-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1261 -> 0.0015s1262-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1263 -> 0.0018s1264-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1265 -> 0.0016s1266-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1267 -> 0.0016s1268-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1269 -> 0.0019s1270-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1271 -> 0.0013s1272-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1273 -> 0.0019s1274-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1275 -> 0.0082s1276-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1277 -> 0.0031s1278-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1279 -> 0.0025s1280-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1281 -> 0.0014s1282-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1283 -> 0.0014s1284-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1285 -> 0.0018s1286-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1287 -> 0.0016s1288-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1289 -> 0.0019s1290Dropped database 'gitlabhq_geo_test'1291Created database 'gitlabhq_geo_test'1292-- enable_extension("plpgsql")1293 -> 0.0172s1294-- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade})1295 -> 0.0131s1296-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1297 -> 0.0018s1298-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1299 -> 0.0115s1300-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1301 -> 0.0090s1302-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1303 -> 0.0433s1304$ date1305Fri Aug 23 10:42:42 UTC 20191306$ JOB_NAME=( $CI_JOB_NAME )1307$ TEST_TOOL=${JOB_NAME[0]}1308$ TEST_LEVEL=${JOB_NAME[1]}1309$ DATABASE=${JOB_NAME[2]}1310$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1311$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec1312$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1313$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1314$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1315$ export FLAKY_RSPEC_GENERATE_REPORT=true1316$ export CACHE_CLASSES=true1317$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1318$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1319$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1320$ scripts/gitaly-test-spawn1321Checking gitaly-ruby bundle...1322Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.1323The Gemfile's dependencies are satisfied1324Trying to connect to gitaly: ...... OK1325$ date1326Fri Aug 23 10:42:43 UTC 20191327$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")1328$ mkdir -p tmp/memory_test1329$ export MEMORY_TEST_PATH="tmp/memory_test/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"1330$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"1331Knapsack report generator started!1332Run options:1333 include {:focus=>true, :level=>"integration"}1334 exclude {:geo=>true}1335==> Setting up GitLab Shell...1336 GitLab Shell set up in 0.531058007 seconds...1337==> Setting up Gitaly...1338 Gitaly set up in 0.000277594 seconds...1339==> Setting up GitLab Elasticsearch Indexer...1340 GitLab Elasticsearch Indexer set up in 0.000335023 seconds...1341API::Commits1342 GET /projects/:id/repository/commits1343 when unauthenticated and project is public1344 behaves like project commits1345 returns project commits1346 include correct pagination headers1347 when unauthenticated and project is private1348 behaves like 404 response1349 returns 4041350 when authenticated as a maintainer1351 behaves like project commits1352 returns project commits1353 include correct pagination headers1354 since optional parameter1355 returns project commits since provided parameter1356 include correct pagination headers1357 until optional parameter1358 returns project commits until provided parameter1359 include correct pagination headers1360 invalid xmlschema date parameters1361 returns an invalid parameter error message1362 with empty ref_name parameter1363 behaves like project commits1364 returns project commits1365 include correct pagination headers1366 path optional parameter1367 returns project commits matching provided path parameter1368 include correct pagination headers1369 all optional parameter1370 returns all project commits1371 with_stats optional parameter1372 behaves like project commits1373 returns project commits1374 include correct pagination headers1375 include commits details1376 with pagination params1377 returns correct headers1378 viewing the first page1379 returns the first 5 commits1380 viewing the third page1381 returns the third 5 commits1382 POST /projects/:id/repository/commits1383 returns a 403 unauthorized for user without permissions1384 returns a 400 bad request if no params are given1385 create1386 does not increment the usage counters using access token authentication1387 a new file in project repo1388 a new file with utf8 chars in project repo1389 returns a 400 bad request if file exists1390 with project path containing a dot in URL1391 a new file in project repo1392 when committing to a new branch1393 when the API user is a guest1394 returns a 4031395 when start_project is provided1396 when posting to a forked project the user owns1397 identified by Integer (id)1398 adds a new commit to forked_project and returns a 2011399 identified by String (full_path)1400 adds a new commit to forked_project and returns a 2011401 when branch already exists1402 returns a 4001403 when force is set to true1404 adds a new commit to forked_project and returns a 2011405 when start_sha is also provided1406 fetches the start_sha from the original project to use as parent commit and returns a 2011407 when the target project is not part of the fork network of start_project1408 returns a 4031409 when posting to a forked project the user does not have write access1410 returns a 4031411 when start_sha is provided1412 returns a 400 if start_branch is also provided1413 returns a 400 if branch already exists1414 returns a 400 if start_sha does not exist1415 returns a 400 if start_sha is not a full SHA1416 uses the start_sha as parent commit and returns a 2011417 when force is set to true and branch already exists1418 uses the start_sha as parent commit and returns a 2011419 delete1420 an existing file in project repo1421 returns a 400 bad request if file does not exist1422 move1423 an existing file in project repo1424 returns a 400 bad request if file does not exist1425 update1426 an existing file in project repo1427 returns a 400 bad request if file does not exist1428 chmod1429 responds with success1430 when execute_filemode is false1431 responds with success1432 when the file doesn't exists1433 responds with 4001434 multiple operations1435 are committed as one in project repo1436 includes the commit stats1437 doesn't include the commit stats when stats is false1438 return a 400 bad request if there are any issues1439 when committing into a fork as a maintainer1440 allows pushing to the source branch of the merge request1441 denies pushing to another branch1442 GET /projects/:id/repository/commits/:sha/refs1443 when ref does not exist1444 behaves like 404 response1445 returns 4041446 when repository is disabled1447 behaves like 404 response1448 returns 4041449 for a valid commit1450 returns all refs with no scope1451 returns all refs1452 returns the branch refs1453 returns the tag refs1454 GET /projects/:id/repository/commits/:sha1455 when stat param1456 is not present return stats by default1457 is false it does not include stats1458 is true it includes stats1459 when unauthenticated and project is public1460 behaves like ref commit1461 returns the ref last commit1462 when ref does not exist1463 behaves like 404 response1464 returns 4041465 when repository is disabled1466 behaves like 404 response1467 returns 4041468 when unauthenticated and project is private1469 behaves like 404 response1470 returns 4041471 when authenticated as a maintainer1472 behaves like ref commit1473 returns the ref last commit1474 when ref does not exist1475 behaves like 404 response1476 returns 4041477 when repository is disabled1478 behaves like 404 response1479 returns 4041480 when branch contains a dot1481 behaves like ref commit1482 returns the ref last commit1483 when ref does not exist1484 behaves like 404 response1485 returns 4041486 when repository is disabled1487 behaves like 404 response1488 returns 4041489 when branch contains a slash1490 behaves like 404 response1491 returns 4041492 when branch contains an escaped slash1493 behaves like ref commit1494 returns the ref last commit1495 when ref does not exist1496 behaves like 404 response1497 returns 4041498 when repository is disabled1499 behaves like 404 response1500 returns 4041501 requesting with the escaped project full path1502 behaves like ref commit1503 returns the ref last commit1504 when ref does not exist1505 behaves like 404 response1506 returns 4041507 when repository is disabled1508 behaves like 404 response1509 returns 4041510 when branch contains a dot1511 behaves like ref commit1512 returns the ref last commit1513 when ref does not exist1514 behaves like 404 response1515 returns 4041516 when repository is disabled1517 behaves like 404 response1518 returns 4041519 when the ref has a pipeline1520 includes a "created" status1521 when pipeline succeeds1522 includes a "success" status1523 GET /projects/:id/repository/commits/:sha/diff1524 when unauthenticated and project is public1525 behaves like ref diff1526 returns the diff of the selected commit1527 when ref does not exist1528 behaves like 404 response1529 returns 4041530 when repository is disabled1531 behaves like 404 response1532 returns 4041533 when unauthenticated and project is private1534 behaves like 404 response1535 returns 4041536 when authenticated as a maintainer1537 behaves like ref diff1538 returns the diff of the selected commit1539 when ref does not exist1540 behaves like 404 response1541 returns 4041542 when repository is disabled1543 behaves like 404 response1544 returns 4041545 when branch contains a dot1546 behaves like ref diff1547 returns the diff of the selected commit1548 when ref does not exist1549 behaves like 404 response1550 returns 4041551 when repository is disabled1552 behaves like 404 response1553 returns 4041554 when branch contains a slash1555 behaves like 404 response1556 returns 4041557 when branch contains an escaped slash1558 behaves like ref diff1559 returns the diff of the selected commit1560 when ref does not exist1561 behaves like 404 response1562 returns 4041563 when repository is disabled1564 behaves like 404 response1565 returns 4041566 requesting with the escaped project full path1567 behaves like ref diff1568 returns the diff of the selected commit1569 when ref does not exist1570 behaves like 404 response1571 returns 4041572 when repository is disabled1573 behaves like 404 response1574 returns 4041575 when branch contains a dot1576 behaves like ref diff1577 returns the diff of the selected commit1578 when ref does not exist1579 behaves like 404 response1580 returns 4041581 when repository is disabled1582 behaves like 404 response1583 returns 4041584 when binary diff are treated as text1585 behaves like ref diff1586 returns the diff of the selected commit1587 when ref does not exist1588 behaves like 404 response1589 returns 4041590 when repository is disabled1591 behaves like 404 response1592 returns 4041593 GET /projects/:id/repository/commits/:sha/comments1594 when unauthenticated and project is public1595 behaves like ref comments1596 when ref exists1597 returns the diff of the selected commit1598 when ref does not exist1599 behaves like 404 response1600 returns 4041601 when repository is disabled1602 behaves like 404 response1603 returns 4041604 when unauthenticated and project is private1605 behaves like 404 response1606 returns 4041607 when authenticated as a maintainer1608 behaves like ref comments1609 when ref exists1610 returns the diff of the selected commit1611 when ref does not exist1612 behaves like 404 response1613 returns 4041614 when repository is disabled1615 behaves like 404 response1616 returns 4041617 when branch contains a dot1618 behaves like ref comments1619 when ref exists1620 returns the diff of the selected commit1621 when ref does not exist1622 behaves like 404 response1623 returns 4041624 when repository is disabled1625 behaves like 404 response1626 returns 4041627 when branch contains a slash1628 behaves like 404 response1629 returns 4041630 when branch contains an escaped slash1631 behaves like ref comments1632 when ref exists1633 returns the diff of the selected commit1634 when ref does not exist1635 behaves like 404 response1636 returns 4041637 when repository is disabled1638 behaves like 404 response1639 returns 4041640 requesting with the escaped project full path1641 behaves like ref comments1642 when ref exists1643 returns the diff of the selected commit1644 when ref does not exist1645 behaves like 404 response1646 returns 4041647 when repository is disabled1648 behaves like 404 response1649 returns 4041650 when branch contains a dot1651 behaves like ref comments1652 when ref exists1653 returns the diff of the selected commit1654 when ref does not exist1655 behaves like 404 response1656 returns 4041657 when repository is disabled1658 behaves like 404 response1659 returns 4041660 when the commit is present on two projects1661 returns the comments for the target project1662 POST :id/repository/commits/:sha/cherry_pick1663 when unauthenticated and project is public1664 behaves like 403 response1665 returns 4031666 when unauthenticated and project is private1667 behaves like 404 response1668 returns 4041669 when authenticated as an owner1670 behaves like ref cherry-pick1671 when ref exists1672 cherry-picks the ref commit1673 when repository is disabled1674 behaves like 404 response1675 returns 4041676 when ref does not exist1677 behaves like 404 response1678 returns 4041679 when branch is missing1680 behaves like 400 response1681 returns 4001682 when branch is empty1683 behaves like 400 response1684 returns 4001685 behaves like 400 response1686 returns 4001687 when branch does not exist1688 behaves like 404 response1689 returns 4041690 when commit is already included in the target branch1691 behaves like 400 response1692 returns 4001693 when ref contains a dot1694 behaves like ref cherry-pick1695 when ref exists1696 cherry-picks the ref commit1697 when repository is disabled1698 behaves like 404 response1699 returns 4041700 when ref contains a slash1701 behaves like 404 response1702 returns 4041703 requesting with the escaped project full path1704 behaves like ref cherry-pick1705 when ref exists1706 cherry-picks the ref commit1707 when repository is disabled1708 behaves like 404 response1709 returns 4041710 when ref contains a dot1711 behaves like ref cherry-pick1712 when ref exists1713 cherry-picks the ref commit1714 when repository is disabled1715 behaves like 404 response1716 returns 4041717 when authenticated as a developer1718 when branch is protected1719 returns 400 if you are not allowed to push to the target branch1720 when cherry picking to a fork as a maintainer1721 allows access from a maintainer that to the source branch1722 denies cherry picking to another branch1723 POST :id/repository/commits/:sha/revert1724 when unauthenticated and project is public1725 behaves like 403 response1726 returns 4031727 when unauthenticated and project is private1728 behaves like 404 response1729 returns 4041730 when authenticated as an owner1731 behaves like ref revert1732 when ref exists1733 reverts the ref commit1734 when repository is disabled1735 behaves like 404 response1736 returns 4041737 when ref does not exist1738 behaves like 404 response1739 returns 4041740 when branch is missing1741 behaves like 400 response1742 returns 4001743 when branch is empty1744 behaves like 400 response1745 returns 4001746 behaves like 400 response1747 returns 4001748 when branch does not exist1749 behaves like 404 response1750 returns 4041751 when ref contains a dot1752 behaves like 400 response1753 returns 4001754 when authenticated as a developer1755 when branch is protected1756 returns 400 if you are not allowed to push to the target branch1757 POST /projects/:id/repository/commits/:sha/comments1758 when unauthenticated and project is public1759 behaves like 400 response1760 returns 4001761 when unauthenticated and project is private1762 behaves like 404 response1763 returns 4041764 when authenticated as an owner1765 returns the inline comment1766 returns 400 if note is missing1767 behaves like ref new comment1768 when ref exists1769 creates the comment1770 when repository is disabled1771 behaves like 404 response1772 returns 4041773 when ref does not exist1774 behaves like 404 response1775 returns 4041776 when ref contains a dot1777 behaves like ref new comment1778 when ref exists1779 creates the comment1780 when repository is disabled1781 behaves like 404 response1782 returns 4041783 when ref contains a slash1784 behaves like 404 response1785 returns 4041786 when ref contains an escaped slash1787 behaves like ref new comment1788 when ref exists1789 creates the comment1790 when repository is disabled1791 behaves like 404 response1792 returns 4041793 requesting with the escaped project full path1794 behaves like ref new comment1795 when ref exists1796 creates the comment1797 when repository is disabled1798 behaves like 404 response1799 returns 4041800 when ref contains a dot1801 behaves like ref new comment1802 when ref exists1803 creates the comment1804 when repository is disabled1805 behaves like 404 response1806 returns 4041807 GET /projects/:id/repository/commits/:sha/merge_requests1808 returns the correct merge request1809 returns 403 for an unauthorized user1810 responds 404 when the commit does not exist1811 public project1812 responds 403 when only members are allowed to read merge requests1813 GET /projects/:id/repository/commits/:sha/signature1814 when commit does not exist1815 behaves like 404 response1816 returns 4041817 unsigned commit1818 behaves like 404 response1819 returns 4041820 signed commit1821 returns correct JSON1822API::Issues1823 GET /projects/:id/issues1824 avoids N+1 queries1825 returns 404 when project does not exist1826 returns 404 on private projects for other users1827 returns no issues when user has access to project but not issues1828 returns project issues without confidential issues for non project members1829 returns project issues without confidential issues for project members with guest role1830 returns project confidential issues for author1831 returns only confidential issues1832 returns only public issues1833 returns project confidential issues for assignee1834 returns project issues with confidential issues for project members1835 returns project confidential issues for admin1836 returns an array of labeled project issues1837 returns an array of labeled project issues with labels param as array1838 returns issues matching given search string for title1839 returns issues matching given search string for description1840 returns an array of issues found by iids1841 returns an empty array if iid does not exist1842 returns an empty array if not all labels matches1843 returns an array of project issues with any label1844 returns an array of project issues with any label with labels param as array1845 returns an array of project issues with no label1846 returns an array of project issues with no label with labels param as array1847 returns an empty array if no project issue matches labels1848 returns an empty array if no issue matches milestone1849 returns an empty array if milestone does not exist1850 returns an array of issues in given milestone1851 returns an array of issues matching state in milestone1852 returns an array of issues with no milestone1853 returns an array of issues with any milestone1854 sorts ascending when requested1855 sorts by updated_at descending when requested1856 sorts by updated_at ascending when requested1857 when unauthenticated1858 returns public project issues1859 issues_statistics1860 no state is treated as all state1861 behaves like project issues statistics1862 returns project issues statistics1863 statistics when all state is passed1864 behaves like project issues statistics1865 returns project issues statistics1866 closed state is treated as all state1867 behaves like project issues statistics1868 returns project issues statistics1869 opened state is treated as all state1870 behaves like project issues statistics1871 returns project issues statistics1872 when filtering by milestone and no state treated as all state1873 behaves like project issues statistics1874 returns project issues statistics1875 when filtering by milestone and all state1876 behaves like project issues statistics1877 returns project issues statistics1878 when filtering by milestone and closed state treated as all state1879 behaves like project issues statistics1880 returns project issues statistics1881 when filtering by milestone and opened state treated as all state1882 behaves like project issues statistics1883 returns project issues statistics1884 sort does not affect statistics1885 behaves like project issues statistics1886 returns project issues statistics1887 behaves like accessible merge requests count1888 returns anonymous accessible merge requests count1889 returns guest accessible merge requests count1890 returns reporter accessible merge requests count1891 returns admin accessible merge requests count1892 with labeled issues1893 behaves like labeled issues with labels and label_name params1894 array of labeled issues when all labels match1895 behaves like returns label names1896 returns label names1897 array of labeled issues when all labels match with labels param as array1898 behaves like returns label names1899 returns label names1900 when with_labels_details provided1901 array of labeled issues when all labels match1902 behaves like returns basic label entity1903 returns basic label entity1904 array of labeled issues when all labels match with labels param as array1905 behaves like returns basic label entity1906 returns basic label entity1907 without sort params1908 sorts by created_at descending by default1909 with 2 issues with same created_at1910 page breaks first page correctly1911 page breaks second page correctly1912 issues_statistics1913 no state is treated as all state1914 behaves like project issues statistics1915 returns project issues statistics1916 statistics when all state is passed1917 behaves like project issues statistics1918 returns project issues statistics1919 closed state is treated as all state1920 behaves like project issues statistics1921 returns project issues statistics1922 opened state is treated as all state1923 behaves like project issues statistics1924 returns project issues statistics1925 when filtering by milestone and no state treated as all state1926 behaves like project issues statistics1927 returns project issues statistics1928 when filtering by milestone and all state1929 behaves like project issues statistics1930 returns project issues statistics1931 when filtering by milestone and closed state treated as all state1932 behaves like project issues statistics1933 returns project issues statistics1934 when filtering by milestone and opened state treated as all state1935 behaves like project issues statistics1936 returns project issues statistics1937 sort does not affect statistics1938 behaves like project issues statistics1939 returns project issues statistics1940 filtering by assignee_username1941 returns issues by assignee_username1942 returns issues by assignee_username as string1943 returns error when multiple assignees are passed1944 returns error when assignee_username and assignee_id are passed together1945 GET /projects/:id/issues/:issue_iid1946 exposes known attributes1947 exposes the closed_at attribute1948 returns a project issue by internal id1949 returns 404 if issue id not found1950 returns 404 if the issue ID is used1951 when unauthenticated1952 returns public issues1953 links exposure1954 exposes related resources full URIs1955 confidential issues1956 returns 404 for non project members1957 returns 404 for project members with guest role1958 returns confidential issue for project members1959 returns confidential issue for author1960 returns confidential issue for assignee1961 returns confidential issue for admin1962 behaves like accessible merge requests count1963 returns anonymous accessible merge requests count1964 returns guest accessible merge requests count1965 returns reporter accessible merge requests count1966 returns admin accessible merge requests count1967 GET :id/issues/:issue_iid/closed_by1968 returns merge requests that will close issue on merge1969 returns 404 when issue doesn't exists1970 when unauthenticated1971 return public project issues1972 when no merge requests will close issue1973 returns empty array1974 GET :id/issues/:issue_iid/related_merge_requests1975 returns merge requests that mentioned a issue1976 returns merge requests cross-project wide1977 does not generate references to projects with no access1978 returns 404 when issue doesn't exists1979 when unauthenticated1980 return list of referenced merge requests from issue1981 renders 404 if project is not visible1982 no merge request mentioned a issue1983 returns empty array1984 GET /projects/:id/issues/:issue_iid/user_agent_detail1985 exposes known attributes1986 returns unauthorized for non-admin users1987 when unauthenticated1988 returns unauthorized1989 GET projects/:id/issues/:issue_iid/participants1990 returns 404 if the issue is confidential1991 behaves like issuable participants endpoint1992 returns participants1993 returns a 404 when iid does not exist1994 returns a 404 when id is used instead of iid1995API::Branches1996 GET /projects/:id/repository/branches1997 when search parameter is passed1998 and branch exists1999 returns correct branches2000 and branch does not exist2001 returns an empty array2002 when unauthenticated and project is public2003 behaves like repository branches2004 returns the repository branches2005 determines only a limited number of merged branch names2006 merge status matches reality on paginated input2007 when repository is disabled2008 behaves like 404 response2009 returns 4042010 when unauthenticated and project is private2011 behaves like 404 response2012 returns 4042013 when authenticated as a maintainer2014 behaves like repository branches2015 returns the repository branches2016 determines only a limited number of merged branch names2017 merge status matches reality on paginated input2018 when repository is disabled2019 behaves like 404 response2020 returns 4042021 requesting with the escaped project full path2022 behaves like repository branches2023 returns the repository branches2024 determines only a limited number of merged branch names2025 merge status matches reality on paginated input2026 when repository is disabled2027 behaves like 404 response2028 returns 4042029 when authenticated as a guest2030 behaves like 403 response2031 returns 4032032 GET /projects/:id/repository/branches/:branch2033 when unauthenticated and project is public2034 returns that the current user cannot push2035 behaves like repository branch2036 returns the repository branch2037 HEAD request2038 returns 204 No Content2039 returns 404 Not Found2040 when branch does not exist2041 behaves like 404 response2042 returns 4042043 when the branch refname is invalid2044 behaves like 400 response2045 returns 4002046 when repository is disabled2047 behaves like 404 response2048 returns 4042049 when unauthenticated and project is private2050 behaves like 404 response2051 returns 4042052 when authenticated as a maintainer2053 returns that the current user can push2054 behaves like repository branch2055 returns the repository branch2056 HEAD request2057 returns 204 No Content2058 returns 404 Not Found2059 when branch does not exist2060 behaves like 404 response2061 returns 4042062 when the branch refname is invalid2063 behaves like 400 response2064 returns 4002065 when repository is disabled2066 behaves like 404 response2067 returns 4042068 when branch contains a dot2069 behaves like repository branch2070 returns the repository branch2071 HEAD request2072 returns 204 No Content2073 returns 404 Not Found2074 when branch does not exist2075 behaves like 404 response2076 returns 4042077 when the branch refname is invalid2078 behaves like 400 response2079 returns 4002080 when repository is disabled2081 behaves like 404 response2082 returns 4042083 when branch contains a slash2084 behaves like 404 response2085 returns 4042086 when branch contains an escaped slash2087 behaves like repository branch2088 returns the repository branch2089 HEAD request2090 returns 204 No Content2091 returns 404 Not Found2092 when branch does not exist2093 behaves like 404 response2094 returns 4042095 when the branch refname is invalid2096 behaves like 400 response2097 returns 4002098 when repository is disabled2099 behaves like 404 response2100 returns 4042101 requesting with the escaped project full path2102 behaves like repository branch2103 returns the repository branch2104 HEAD request2105 returns 204 No Content2106 returns 404 Not Found2107 when branch does not exist2108 behaves like 404 response2109 returns 4042110 when the branch refname is invalid2111 behaves like 400 response2112 returns 4002113 when repository is disabled2114 behaves like 404 response2115 returns 4042116 when branch contains a dot2117 behaves like repository branch2118 returns the repository branch2119 HEAD request2120 returns 204 No Content2121 returns 404 Not Found2122 when branch does not exist2123 behaves like 404 response2124 returns 4042125 when the branch refname is invalid2126 behaves like 400 response2127 returns 4002128 when repository is disabled2129 behaves like 404 response2130 returns 4042131 when authenticated as a developer and branch is protected2132 returns that the current user cannot push2133 behaves like repository branch2134 returns the repository branch2135 HEAD request2136 returns 204 No Content2137 returns 404 Not Found2138 when branch does not exist2139 behaves like 404 response2140 returns 4042141 when the branch refname is invalid2142 behaves like 400 response2143 returns 4002144 when repository is disabled2145 behaves like 404 response2146 returns 4042147 when authenticated as a guest2148 behaves like 403 response2149 returns 4032150 PUT /projects/:id/repository/branches/:branch/protect2151 when unauthenticated and project is private2152 behaves like 404 response2153 returns 4042154 when authenticated as a guest2155 behaves like 403 response2156 returns 4032157 when authenticated as a maintainer2158 when a protected branch doesn't already exist2159 behaves like repository new protected branch2160 protects a single branch2161 protects a single branch and developers can push2162 protects a single branch and developers can merge2163 protects a single branch and developers can push and merge2164 when branch does not exist2165 behaves like 404 response2166 returns 4042167 when the branch refname is invalid2168 behaves like 400 response2169 returns 4002170 when repository is disabled2171 behaves like 404 response2172 returns 4042173 when branch contains a dot2174 behaves like repository new protected branch2175 protects a single branch2176 protects a single branch and developers can push2177 protects a single branch and developers can merge2178 protects a single branch and developers can push and merge2179 when branch does not exist2180 behaves like 404 response2181 returns 4042182 when the branch refname is invalid2183 behaves like 400 response2184 returns 4002185 when repository is disabled2186 behaves like 404 response2187 returns 4042188 when branch contains a slash2189 behaves like 404 response2190 returns 4042191 when branch contains an escaped slash2192 behaves like repository new protected branch2193 protects a single branch2194 protects a single branch and developers can push2195 protects a single branch and developers can merge2196 protects a single branch and developers can push and merge2197 when branch does not exist2198 behaves like 404 response2199 returns 4042200 when the branch refname is invalid2201 behaves like 400 response2202 returns 4002203 when repository is disabled2204 behaves like 404 response2205 returns 4042206 requesting with the escaped project full path2207 behaves like repository new protected branch2208 protects a single branch2209 protects a single branch and developers can push2210 protects a single branch and developers can merge2211 protects a single branch and developers can push and merge2212 when branch does not exist2213 behaves like 404 response2214 returns 4042215 when the branch refname is invalid2216 behaves like 400 response2217 returns 4002218 when repository is disabled2219 behaves like 404 response2220 returns 4042221 when branch contains a dot2222 behaves like repository new protected branch2223 protects a single branch2224 protects a single branch and developers can push2225 protects a single branch and developers can merge2226 protects a single branch and developers can push and merge2227 when branch does not exist2228 behaves like 404 response2229 returns 4042230 when the branch refname is invalid2231 behaves like 400 response2232 returns 4002233 when repository is disabled2234 behaves like 404 response2235 returns 4042236 when protected branch already exists2237 when developers can push and merge2238 updates that a developer cannot push or merge2239 when developers cannot push or merge2240 updates that a developer can push and merge2241 PUT /projects/:id/repository/branches/:branch/unprotect2242 when unauthenticated and project is private2243 behaves like 404 response2244 returns 4042245 when authenticated as a guest2246 behaves like 403 response2247 returns 4032248 when authenticated as a maintainer2249 when a protected branch doesn't already exist2250 behaves like repository unprotected branch2251 unprotects a single branch2252 when branch does not exist2253 behaves like 404 response2254 returns 4042255 when the branch refname is invalid2256 behaves like 400 response2257 returns 4002258 when repository is disabled2259 behaves like 404 response2260 returns 4042261 when branch contains a dot2262 behaves like repository unprotected branch2263 unprotects a single branch2264 when branch does not exist2265 behaves like 404 response2266 returns 4042267 when the branch refname is invalid2268 behaves like 400 response2269 returns 4002270 when repository is disabled2271 behaves like 404 response2272 returns 4042273 when branch contains a slash2274 behaves like 404 response2275 returns 4042276 when branch contains an escaped slash2277 behaves like repository unprotected branch2278 unprotects a single branch2279 when branch does not exist2280 behaves like 404 response2281 returns 4042282 when the branch refname is invalid2283 behaves like 400 response2284 returns 4002285 when repository is disabled2286 behaves like 404 response2287 returns 4042288 requesting with the escaped project full path2289 behaves like repository unprotected branch2290 unprotects a single branch2291 when branch does not exist2292 behaves like 404 response2293 returns 4042294 when the branch refname is invalid2295 behaves like 400 response2296 returns 4002297 when repository is disabled2298 behaves like 404 response2299 returns 4042300 when branch contains a dot2301 behaves like repository unprotected branch2302 unprotects a single branch2303 when branch does not exist2304 behaves like 404 response2305 returns 4042306 when the branch refname is invalid2307 behaves like 400 response2308 returns 4002309 when repository is disabled2310 behaves like 404 response2311 returns 4042312 POST /projects/:id/repository/branches2313 returns 400 if branch name is invalid2314 returns 400 if branch already exists2315 returns 400 if ref name is invalid2316 when unauthenticated and project is private2317 behaves like 404 response2318 returns 4042319 when authenticated as a guest2320 behaves like 403 response2321 returns 4032322 when authenticated as a maintainer2323 when a protected branch doesn't already exist2324 behaves like repository new branch2325 creates a new branch2326 when repository is disabled2327 behaves like 404 response2328 returns 4042329 requesting with the escaped project full path2330 behaves like repository new branch2331 creates a new branch2332 when repository is disabled2333 behaves like 404 response2334 returns 4042335 DELETE /projects/:id/repository/branches/:branch2336 removes branch2337 removes a branch with dots in the branch name2338 returns 404 if branch not exists2339 when the branch refname is invalid2340 behaves like 400 response2341 returns 4002342 behaves like 412 response2343 for a modified ressource2344 returns 4122345 for an unmodified ressource2346 returns accepted2347 DELETE /projects/:id/repository/merged_branches2348 returns 202 with json body2349 returns a 403 error if guest2350Projects::NotesController2351 GET index2352 passes last_fetched_at from headers to NotesFinder2353 when user notes_filter is present2354 filters system notes by comments2355 returns all notes2356 does not merge label event notes2357 for a discussion note2358 responds with the expected attributes2359 for a diff discussion note2360 responds with the expected attributes2361 for a commit note2362 when displayed on a merge request2363 responds with the expected attributes2364 when displayed on the commit2365 responds with the expected attributes2366 when user cannot read commit2367 renders 4042368 for a regular note2369 responds with the expected attributes2370 with cross-reference system note2371 filters notes that the user should not see2372 does not result in N+1 queries2373 POST create2374 returns status 302 for html2375 returns status 200 for json2376 returns discussion JSON when the return_discussion param is set2377 when merge_request_diff_head_sha present2378 returns status 302 for html2379 when creating a comment on a commit with SHA1 starting with a large number2380 creates a note successfully2381 when creating a commit comment from an MR fork2382 when the note_project_id is not correct2383 returns a 4042384 when the user has no access to the fork2385 returns a 4042386 when the user has access to the fork2387 creates the note2388 when target_id and noteable_id do not match2389 uses target_id and ignores noteable_id2390 when the merge request discussion is locked2391 when a noteable is not found2392 returns 404 status2393 when a user is a team member2394 returns 302 status for html2395 returns 200 status for json2396 creates a new note2397 when a user is not a team member2398 returns 404 status2399 does not create a new note2400 when creating a note with quick actions2401 with commands that return changes2402 includes changes in commands_changes2403 with commands that do not return changes2404 does not include changes in commands_changes2405 PUT update2406 should update the note with a valid issue2407 updates the note2408 doesnt update the note2409 disallows edits when the issue is confidential and the user has guest permissions2410 DELETE destroy2411 user is the author of a note2412 returns status 200 for html2413 deletes the note2414 user is not the author of a note2415 returns status 4042416 POST toggle_award_emoji2417 toggles the award emoji2418 removes the already awarded emoji2419 marks Todos on the Noteable as done2420 resolving and unresolving2421 POST resolve2422 when the user is not authorized to resolve the note2423 returns status 4042424 when the user is authorized to resolve the note2425 when the note is not resolvable2426 returns status 4042427 when the note is resolvable2428 resolves the note2429 sends notifications if all discussions are resolved2430 returns the name of the resolving user2431 returns status 2002432 DELETE unresolve2433 when the user is not authorized to resolve the note2434 returns status 4042435 when the user is authorized to resolve the note2436 when the note is not resolvable2437 returns status 4042438 when the note is resolvable2439 unresolves the note2440 returns status 2002441Git LFS API and storage2442 when lfs is disabled2443 responds with 5012444 project specific LFS settings2445 with LFS disabled globally2446 LFS disabled in project2447 responds with a 501 message on upload2448 responds with a 501 message on download2449 LFS enabled in project2450 responds with a 501 message on upload2451 responds with a 501 message on download2452 with LFS enabled globally2453 LFS disabled in project2454 responds with a 403 message on upload2455 responds with a 403 message on download2456 LFS enabled in project2457 responds with a 200 message on upload2458 responds with a 200 message on download2459 deprecated API2460 when fetching lfs object using deprecated API2461 behaves like a deprecated2462 responds with 5012463 returns deprecated message2464 when handling lfs request using deprecated API2465 behaves like a deprecated2466 responds with 5012467 returns deprecated message2468 when fetching lfs object2469 and request comes from gitlab-workhorse2470 without user being authorized2471 responds with status 4012472 with required headers2473 with user is authorized2474 and does not have project access2475 responds with status 4042476 and does have project access2477 behaves like responds with a file2478 responds with status 2002479 responds with the file location2480 when LFS uses object storage2481 when proxy download is enabled2482 responds with redirect2483 responds with the workhorse send-url2484 when proxy download is disabled2485 responds with redirect2486 responds with the file location2487 when deploy key is authorized2488 behaves like responds with a file2489 responds with status 2002490 responds with the file location2491 when using a user key2492 when user allowed2493 behaves like responds with a file2494 responds with status 2002495 responds with the file location2496 when user not allowed2497 responds with status 4042498 when build is authorized as2499 administrator2500 behaves like can download LFS only from own projects2501 for owned project2502 behaves like responds with a file2503 responds with status 2002504 responds with the file location2505 for member of project2506 behaves like responds with a file2507 responds with status 2002508 responds with the file location2509 for other project2510 rejects downloading code2511 regular user2512 behaves like can download LFS only from own projects2513 for owned project2514 behaves like responds with a file2515 responds with status 2002516 responds with the file location2517 for member of project2518 behaves like responds with a file2519 responds with status 2002520 responds with the file location2521 for other project2522 rejects downloading code2523 does not have user2524 behaves like can download LFS only from own projects2525 for owned project2526 behaves like responds with a file2527 responds with status 2002528 responds with the file location2529 for member of project2530 behaves like responds with a file2531 responds with status 2002532 responds with the file location2533 for other project2534 rejects downloading code2535 without required headers2536 responds with status 4042537 when handling lfs batch request2538 download2539 when user is authenticated2540 behaves like an authorized requests2541 when downloading an lfs object that is assigned to our project2542 responds with status 2002543 with href to download2544 when downloading an lfs object that is assigned to other project2545 responds with status 2002546 with href to download2547 when downloading a lfs object that does not exist2548 responds with status 2002549 with an 404 for specific object2550 when downloading one new and one existing lfs object2551 responds with status 2002552 responds with upload hypermedia link for the new object2553 when user does is not member of the project2554 responds with 4042555 when user does not have download access2556 responds with 4032557 when using Deploy Tokens2558 when Deploy Token is valid2559 behaves like an authorized requests2560 when downloading an lfs object that is assigned to our project2561 responds with status 2002562 with href to download2563 when downloading an lfs object that is assigned to other project2564 responds with status 2002565 with href to download2566 when downloading a lfs object that does not exist2567 responds with status 2002568 with an 404 for specific object2569 when downloading one new and one existing lfs object2570 responds with status 2002571 responds with upload hypermedia link for the new object2572 when Deploy Token is not valid2573 responds with access denied2574 when Deploy Token is not related to the project2575 responds with access forbidden2576 when build is authorized as2577 administrator2578 behaves like can download LFS only from own projects2579 for own project2580 behaves like an authorized requests2581 when downloading an lfs object that is assigned to our project2582 responds with status 2002583 with href to download2584 when downloading an lfs object that is assigned to other project2585 responds with status 2002586 with href to download2587 when downloading a lfs object that does not exist2588 responds with status 2002589 with an 404 for specific object2590 when downloading one new and one existing lfs object2591 responds with status 2002592 responds with upload hypermedia link for the new object2593 for other project2594 rejects downloading code2595 regular user2596 behaves like can download LFS only from own projects2597 for own project2598 behaves like an authorized requests2599 when downloading an lfs object that is assigned to our project2600 responds with status 2002601 with href to download2602 when downloading an lfs object that is assigned to other project2603 responds with status 2002604 with href to download2605 when downloading a lfs object that does not exist2606 responds with status 2002607 with an 404 for specific object2608 when downloading one new and one existing lfs object2609 responds with status 2002610 responds with upload hypermedia link for the new object2611 for other project2612 rejects downloading code2613 does not have user2614 behaves like can download LFS only from own projects2615 for own project2616 behaves like an authorized requests2617 when downloading an lfs object that is assigned to our project2618 responds with status 2002619 with href to download2620 when downloading an lfs object that is assigned to other project2621 responds with status 2002622 with href to download2623 when downloading a lfs object that does not exist2624 responds with status 2002625 with an 404 for specific object2626 when downloading one new and one existing lfs object2627 responds with status 2002628 responds with upload hypermedia link for the new object2629 for other project2630 rejects downloading code2631 when user is not authenticated2632 is accessing public project2633 responds with status 200 and href to download2634 responds with status 200 and href to download2635 is accessing non-public project2636 responds with authorization required2637 upload2638 when request is authenticated2639 when user has project push access2640 when pushing an lfs object that already exists2641 responds with status 2002642 responds with links the object to the project2643 when pushing a lfs object that does not exist2644 behaves like pushes new LFS objects2645 responds with upload hypermedia link2646 when pushing one new and one existing lfs object2647 responds with status 2002648 responds with upload hypermedia link for the new object2649 when user does not have push access2650 responds with 4032651 when build is authorized2652 build has an user2653 tries to push to own project2654 responds with 403 (not 404 because project is public)2655 tries to push to other project2656 responds with 403 (not 404 because project is public)2657 does not have user2658 responds with 403 (not 404 because project is public)2659 when deploy key has project push access2660 behaves like pushes new LFS objects2661 responds with upload hypermedia link2662 when user is not authenticated2663 when user has push access2664 responds with status 4012665 when user does not have push access2666 responds with status 4012667 unsupported2668 responds with status 4042669 when handling lfs batch request on a read-only GitLab instance2670 responds with a 200 message on download2671 responds with a 403 message on upload2672 when pushing a lfs object2673 to one project2674 when user is authenticated2675 when user has push access to the project2676 and the request bypassed workhorse2677 raises an exception2678 and request is sent by gitlab-workhorse to authorize the request2679 when using local storage2680 behaves like a local file2681 behaves like a valid response2682 responds with status 2002683 uses the gitlab-workhorse content type2684 responds with status 200, location of lfs store and object details2685 when using remote storage2686 when direct upload is enabled2687 behaves like a valid response2688 responds with status 2002689 uses the gitlab-workhorse content type2690 responds with status 200, location of lfs remote store and object details2691 when direct upload is disabled2692 behaves like a local file2693 behaves like a valid response2694 responds with status 2002695 uses the gitlab-workhorse content type2696 responds with status 200, location of lfs store and object details2697 and request is sent by gitlab-workhorse to finalize the upload2698 responds with status 2002699 lfs object is linked to the project2700 and request to finalize the upload is not sent by gitlab-workhorse2701 fails with a JWT decode error2702 and workhorse requests upload finalize for a new lfs object2703 with object storage disabled2704 doesn't attempt to migrate file to object storage2705 with object storage enabled2706 and direct upload enabled2707 with invalid remote_id: 1231232708 responds with status 4032709 with invalid remote_id: ../../1231232710 responds with status 4032711 with valid remote_id2712 responds with status 2002713 schedules migration of file to object storage2714 have valid file2715 and background upload enabled2716 schedules migration of file to object storage2717 invalid tempfiles2718 rejects slashes in the tempfile name (path traversal)2719 and user does not have push access2720 behaves like forbidden2721 and request is sent by gitlab-workhorse to authorize the request2722 responds with 4032723 and request is sent by gitlab-workhorse to finalize the upload2724 responds with 4032725 and request is sent with a malformed headers2726 does not recognize it as a valid lfs command2727 when build is authorized2728 build has an user2729 tries to push to own project2730 responds with 403 (not 404 because the build user can read the project)2731 tries to push to other project2732 responds with 404 (do not leak non-public project existence)2733 does not have user2734 responds with 404 (do not leak non-public project existence)2735 for unauthenticated2736 behaves like unauthorized2737 and request is sent by gitlab-workhorse to authorize the request2738 responds with status 4012739 and request is sent by gitlab-workhorse to finalize the upload2740 responds with status 4012741 and request is sent with a malformed headers2742 does not recognize it as a valid lfs command2743 to a forked project2744 when user is authenticated2745 when user has push access to the project2746 and request is sent by gitlab-workhorse to authorize the request2747 responds with status 2002748 with location of lfs store and object details2749 and request is sent by gitlab-workhorse to finalize the upload2750 responds with status 2002751 lfs object is linked to the source project2752 and user does not have push access2753 behaves like forbidden2754 and request is sent by gitlab-workhorse to authorize the request2755 responds with 4032756 and request is sent by gitlab-workhorse to finalize the upload2757 responds with 4032758 and request is sent with a malformed headers2759 does not recognize it as a valid lfs command2760 when build is authorized2761 build has an user2762 tries to push to own project2763 responds with 403 (not 404 because project is public)2764 tries to push to other project2765 responds with 403 (not 404 because project is public)2766 does not have user2767 responds with 403 (not 404 because project is public)2768 for unauthenticated2769 behaves like unauthorized2770 and request is sent by gitlab-workhorse to authorize the request2771 responds with status 4012772 and request is sent by gitlab-workhorse to finalize the upload2773 responds with status 4012774 and request is sent with a malformed headers2775 does not recognize it as a valid lfs command2776 and second project not related to fork or a source project2777 when pushing the same lfs object to the second project2778 responds with status 2002779 links the lfs object to the project2780Adding a Note2781 behaves like a Note mutation when the user does not have permission2782 behaves like a Note mutation that does not create a Note2783 should not change `Note.count`2784 behaves like a mutation that returns top-level errors2785 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]2786 when the user has permission2787 returns the note2788 behaves like a Note mutation that creates a Note2789 should change `Note.count` by 12790 behaves like a Note mutation when there are active record validation errors2791 returns an empty Note2792 behaves like a Note mutation that does not create a Note2793 should not change `Note.count`2794 behaves like a mutation that returns errors in the response2795 should eq ["Error 1", "Error 2"]2796 behaves like a Note mutation when the given resource id is not for a Noteable2797 behaves like a Note mutation that does not create a Note2798 should not change `Note.count`2799 behaves like a mutation that returns top-level errors2800 should eq ["Cannot add notes to this resource"]2801 creating Notes in reply to a discussion2802 when the user does not have permission to create notes on the discussion2803 behaves like a mutation that returns top-level errors2804 should eq ["The discussion does not exist or you don't have permission to perform this action"]2805 when the user has permission to create notes on the discussion2806 creates a Note in a discussion2807Adding an image DiffNote2808 behaves like a Note mutation when the user does not have permission2809 behaves like a Note mutation that does not create a Note2810 should not change `Note.count`2811 behaves like a mutation that returns top-level errors2812 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]2813 when the user has permission2814 returns the note with the correct position2815 behaves like a Note mutation that creates a Note2816 should change `Note.count` by 12817 behaves like a Note mutation when there are active record validation errors2818 returns an empty Note2819 behaves like a Note mutation that does not create a Note2820 should not change `Note.count`2821 behaves like a mutation that returns errors in the response2822 should eq ["Error 1", "Error 2"]2824 behaves like a Note mutation when the given resource id is not for a Noteable2825 behaves like a Note mutation that does not create a Note2826 should not change `Note.count`2827 behaves like a mutation that returns top-level errors2828 should eq ["Cannot add notes to this resource"]2829API::Issues2830 GET /issues2831 when unauthenticated2832 returns an array of all issues2833 returns authentication error without any scope2834 returns authentication error when scope is assigned-to-me2835 returns authentication error when scope is created-by-me2836 returns an array of issues matching state in milestone2837 returns an array of issues matching state in milestone2838 issues_statistics2839 returns authentication error without any scope2840 returns authentication error when scope is assigned_to_me2841 returns authentication error when scope is created_by_me2842 no state is treated as all state2843 behaves like issues statistics2844 returns issues statistics2845 statistics when all state is passed2846 behaves like issues statistics2847 returns issues statistics2848 closed state is treated as all state2849 behaves like issues statistics2850 returns issues statistics2851 opened state is treated as all state2852 behaves like issues statistics2853 returns issues statistics2854 when filtering by milestone and no state treated as all state2855 behaves like issues statistics2856 returns issues statistics2857 when filtering by milestone and all state2858 behaves like issues statistics2859 returns issues statistics2860 when filtering by milestone and closed state treated as all state2861 behaves like issues statistics2862 returns issues statistics2863 when filtering by milestone and opened state treated as all state2864 behaves like issues statistics2865 returns issues statistics2866 sort does not affect statistics2867 behaves like issues statistics2868 returns issues statistics2869 when authenticated2870 returns an array of issues2871 returns an array of closed issues2872 returns an array of opened issues2873 returns an array of all issues2874 returns issues assigned to me2875 returns issues assigned to me (kebab-case)2876 returns issues authored by the given author id2877 returns issues assigned to the given assignee id2878 returns issues authored by the given author id and assigned to the given assignee id2879 returns issues with no assignee2880 returns issues with any assignee2881 returns only confidential issues2882 returns only public issues2883 returns issues reacted by the authenticated user2884 returns issues not reacted by the authenticated user2885 returns issues matching given search string for title2886 returns issues matching given search string for title and scoped in title2887 returns an empty array if no issue matches given search string for title and scoped in description2888 returns issues matching given search string for description2889 returns an empty array if no issue matches milestone2890 returns an empty array if milestone does not exist2891 returns an array of issues in given milestone2892 returns an array of issues in given milestone_title param2893 returns an array of issues matching state in milestone2894 returns an array of issues with no milestone2895 returns an array of issues with no milestone using milestone_title param2896 returns an array of issues found by iids2897 returns an empty array if iid does not exist2898 sorts ascending when requested2899 sorts by updated_at descending when requested2900 sorts by updated_at ascending when requested2901 matches V4 response schema2902 returns a related merge request count of 0 if there are no related merge requests2903 returns a related merge request count > 0 if there are related merge requests2904 filtering before a specific date2905 returns issues created before a specific date2906 returns issues updated before a specific date2907 filtering after a specific date2908 returns issues created after a specific date2909 returns issues updated after a specific date2910 filter by labels or label_name param2911 returns an array of labeled issues2912 returns an array of labeled issues with labels param as array2913 returns an empty array if no issue matches labels2914 returns an empty array if no issue matches labels with labels param as array2915 returns an array of labeled issues matching given state2916 returns an array of labeled issues matching given state with labels param as array2917 returns an empty array if no issue matches labels and state filters2918 returns an array of issues with any label2919 returns an array of issues with any label with labels param as array2920 returns an array of issues with no label2921 returns an array of issues with no label with labels param as array2922 N+12923 tests N+12924 with labeled issues2925 behaves like labeled issues with labels and label_name params2926 array of labeled issues when all labels match2927 behaves like returns label names2928 returns label names2929 array of labeled issues when all labels match with labels param as array2930 behaves like returns label names2931 returns label names2932 when with_labels_details provided2933 array of labeled issues when all labels match2934 behaves like returns basic label entity2935 returns basic label entity2936 array of labeled issues when all labels match with labels param as array2937 behaves like returns basic label entity2938 returns basic label entity2939 without sort params2940 sorts by created_at descending by default2941 with 2 issues with same created_at2942 page breaks first page correctly2943 page breaks second page correctly2944 issues_statistics2945 no state is treated as all state2946 behaves like issues statistics2947 returns issues statistics2948 statistics when all state is passed2949 behaves like issues statistics2950 returns issues statistics2951 closed state is treated as all state2952 behaves like issues statistics2953 returns issues statistics2954 opened state is treated as all state2955 behaves like issues statistics2956 returns issues statistics2957 when filtering by milestone and no state treated as all state2958 behaves like issues statistics2959 returns issues statistics2960 when filtering by milestone and all state2961 behaves like issues statistics2962 returns issues statistics2963 when filtering by milestone and closed state treated as all state2964 behaves like issues statistics2965 returns issues statistics2966 when filtering by milestone and opened state treated as all state2967 behaves like issues statistics2968 returns issues statistics2969 sort does not affect statistics2970 behaves like issues statistics2971 returns issues statistics2972 filtering by assignee_username2973 returns issues with by assignee_username2974 returns issues by assignee_username as string2975 returns error when multiple assignees are passed2976 returns error when assignee_username and assignee_id are passed together2977 when returns issue merge_requests_count for different access levels2978 behaves like accessible merge requests count2979 returns anonymous accessible merge requests count2980 returns guest accessible merge requests count2981 returns reporter accessible merge requests count2982 returns admin accessible merge requests count2983 DELETE /projects/:id/issues/:issue_iid2984 rejects a non member from deleting an issue2985 rejects a developer from deleting an issue2986 returns 404 when using the issue ID instead of IID2987 when the user is project owner2988 deletes the issue if an admin requests it2989 behaves like 412 response2990 for a modified ressource2991 returns 4122992 for an unmodified ressource2993 returns accepted2994 when issue does not exist2995 returns 404 when trying to move an issue2996 time tracking endpoints2997 POST /projects/:id/issues/:issue_id/time_estimate2998 sets the time estimate for issue2999 with an unauthorized user3000 behaves like an unauthorized API user3001 should eq 4033002 updating the current estimate3003 when duration has a bad format3004 does not modify the original estimate3005 with a valid duration3006 updates the estimate3007 POST /projects/:id/issues/:issue_id/reset_time_estimate3008 resets the time estimate for issue3009 with an unauthorized user3010 behaves like an unauthorized API user3011 should eq 4033012 POST /projects/:id/issues/:issue_id/add_spent_time3013 add spent time for issue3014 with an unauthorized user3015 behaves like an unauthorized API user3016 should eq 4033017 when subtracting time3018 subtracts time of the total spent time3019 when time to subtract is greater than the total spent time3020 does not modify the total time spent3021 POST /projects/:id/issues/:issue_id/reset_spent_time3022 resets spent time for issue3023 with an unauthorized user3024 behaves like an unauthorized API user3025 should eq 4033026 GET /projects/:id/issues/:issue_id/time_stats3027 returns the time stats for issue3028Boards::IssuesController3029 GET index3030 with invalid board id3031 returns a not found 404 response3032 when list id is present3033 with valid list id3034DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3035 returns issues that have the list label applied3036DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3037DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)30381st Try error in ./spec/controllers/boards/issues_controller_spec.rb:60:3039Expected a maximum of 43 queries, got 61:3040SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1057 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13041SELECT "users".* FROM "users" WHERE "users"."id" = 1057 ORDER BY "users"."id" ASC LIMIT 13042SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1057 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 13043SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1057 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13044SELECT "boards".* FROM "boards" WHERE "boards"."project_id" = 635 AND "boards"."id" = 4 LIMIT 13045SELECT "lists".* FROM "lists" WHERE "lists"."board_id" = 4 AND "lists"."id" = 11 ORDER BY "lists"."list_type" ASC, "lists"."position" ASC LIMIT 13046SELECT "projects".* FROM "projects" WHERE "projects"."id" = 635 LIMIT 13047SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" WHERE "issues"."project_id" = 635 AND ("issues"."state" IN ('opened')) AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 32) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03048SELECT COUNT(*), COALESCE(SUM(weight), 0) FROM "issues" WHERE "issues"."id" IN (SELECT issues.id FROM "issues" WHERE "issues"."project_id" = 635 AND ("issues"."state" IN ('opened')) AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 32) LIMIT 1)))3049SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" WHERE "issues"."project_id" = 635 AND ("issues"."state" IN ('opened')) AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 32) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03050SELECT "issue_assignees".* FROM "issue_assignees" WHERE "issue_assignees"."issue_id" IN (747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727)3051SELECT "users".* FROM "users" WHERE "users"."id" = 10593052SELECT "projects".* FROM "projects" WHERE "projects"."id" = 6353053SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Project' AND "routes"."source_id" = 6353054SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 10803055SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Namespace' AND "routes"."source_id" = 10803056SELECT "label_links".* FROM "label_links" WHERE "label_links"."target_type" = 'Issue' AND "label_links"."target_id" IN (747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727)3057SELECT "labels".* FROM "labels" WHERE "labels"."id" = 32 ORDER BY "labels"."title" ASC3058SELECT "label_priorities".* FROM "label_priorities" WHERE "label_priorities"."label_id" = 323059SELECT "notes".* FROM "notes" WHERE "notes"."noteable_type" = 'Issue' AND "notes"."noteable_id" IN (747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727)3060SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7473061SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7473062SELECT "uploads".* FROM "uploads" WHERE "uploads"."uploader" = 'AvatarUploader' AND "uploads"."path" IN ('uploads/-/system/user/avatar/1059/dk.png', 'user/avatar/1059/dk.png') ORDER BY "uploads"."id" ASC LIMIT 10003063SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7463064SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7463065SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7453066SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7453067SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7443068SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7443069SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7433070SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7433071SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7423072SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7423073SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7413074SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7413075SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7403076SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7403077SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7393078SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7393079SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7383080SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7383081SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7373082SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7373083SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7363084SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7363085SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7353086SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7353087SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7343088SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7343089SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7333090SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7333091SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7323092SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7323093SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7313094SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7313095SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7303096SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7303097SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7293098SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7293099SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7283100SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7283101RSpec::Retry: 2nd try ./spec/controllers/boards/issues_controller_spec.rb:603102 avoids N+1 database queries3103DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3104DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)31051st Try error in ./spec/controllers/boards/issues_controller_spec.rb:71:3106Expected a maximum of 57 queries, got 59:3107SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1065 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13108SELECT "users".* FROM "users" WHERE "users"."id" = 1065 ORDER BY "users"."id" ASC LIMIT 13109SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1065 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 13110SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1065 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13111SELECT "boards".* FROM "boards" WHERE "boards"."group_id" = 1090 AND "boards"."id" = 9 LIMIT 13112SELECT "lists".* FROM "lists" WHERE "lists"."board_id" = 9 AND "lists"."id" = 23 ORDER BY "lists"."list_type" ASC, "lists"."position" ASC LIMIT 13113SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 1090 LIMIT 13114SELECT "members".* FROM "members" LEFT OUTER JOIN "users" ON "members"."user_id" = "users"."id" WHERE "members"."type" IN ('GroupMember') AND "members"."source_type" = 'Namespace' AND "users"."state" = 'active' AND "members"."requested_at" IS NULL AND "members"."source_id" = 1090 AND "members"."user_id" = 1065 ORDER BY "members"."access_level" DESC LIMIT 13115SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 10903116UNION3117SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 36) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03118SELECT "projects".* FROM "projects" WHERE "projects"."id" = 640 LIMIT 13119SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 1090 AND "namespaces"."type" = 'Group' LIMIT 13120SELECT 1 AS one FROM "boards" WHERE "boards"."group_id" = 1090 LIMIT 13121SELECT "issues"."project_id", MAX(relative_position) AS position FROM "issues" WHERE "issues"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1090) GROUP BY "issues"."project_id" ORDER BY position DESC NULLS LAST LIMIT 13122SAVEPOINT active_record_13123SELECT "users".* FROM "users" WHERE "users"."id" = 1072 LIMIT 13124UPDATE "issues" SET "relative_position" = 1073742823 WHERE "issues"."id" = 7773125SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 777 LIMIT 13126SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 777 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3127SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 363128SELECT "users".* FROM "users" WHERE "users"."id" = 1070 LIMIT 13129SELECT "projects".* FROM "projects" WHERE "projects"."id" = 639 LIMIT 13130UPDATE "issues" SET "relative_position" = 1073743323 WHERE "issues"."id" = 7763131SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 776 LIMIT 13132SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 776 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3133SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 363134SELECT "users".* FROM "users" WHERE "users"."id" = 1068 LIMIT 13135SELECT "projects".* FROM "projects" WHERE "projects"."id" = 638 LIMIT 13136UPDATE "issues" SET "relative_position" = 1073743823 WHERE "issues"."id" = 7753137SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 775 LIMIT 13138SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 775 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3139SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 363140RELEASE SAVEPOINT active_record_13141SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1090 LIMIT 13142SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1090 AND "routes"."source_type" = 'Namespace' LIMIT 13143SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1090 LIMIT 13144SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1090 AND "routes"."source_type" = 'Namespace' LIMIT 13145SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1090 LIMIT 13146SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1090 AND "routes"."source_type" = 'Namespace' LIMIT 13147SELECT COUNT(*), COALESCE(SUM(weight), 0) FROM "issues" WHERE "issues"."id" IN (SELECT issues.id FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 10903148UNION3149SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 36) LIMIT 1)))3150SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 10903151UNION3152SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1065 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 36) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03153SELECT "issue_assignees".* FROM "issue_assignees" WHERE "issue_assignees"."issue_id" IN (774, 777, 776, 775)3154SELECT "users".* FROM "users" WHERE "users"."id" = 10733155SELECT "projects".* FROM "projects" WHERE "projects"."id" IN (637, 640, 639, 638)3156SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Project' AND "routes"."source_id" IN (637, 638, 639, 640)3157SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 10903158SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Namespace' AND "routes"."source_id" = 10903159SELECT "label_links".* FROM "label_links" WHERE "label_links"."target_type" = 'Issue' AND "label_links"."target_id" IN (774, 777, 776, 775)3160SELECT "labels".* FROM "labels" WHERE "labels"."id" = 36 ORDER BY "labels"."title" ASC3161SELECT "label_priorities".* FROM "label_priorities" WHERE "label_priorities"."label_id" = 363162SELECT "notes".* FROM "notes" WHERE "notes"."noteable_type" = 'Issue' AND "notes"."noteable_id" IN (774, 777, 776, 775)3163SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7743164SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7743165SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7773166SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7773167SELECT "uploads".* FROM "uploads" WHERE "uploads"."uploader" = 'AvatarUploader' AND "uploads"."path" IN ('uploads/-/system/user/avatar/1073/dk.png', 'user/avatar/1073/dk.png') ORDER BY "uploads"."id" ASC LIMIT 10003168SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7763169SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7763170SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7753171SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7753172RSpec::Retry: 2nd try ./spec/controllers/boards/issues_controller_spec.rb:713173 avoids N+1 database queries when adding a project3174DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3175DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)31761st Try error in ./spec/controllers/boards/issues_controller_spec.rb:88:3177Expected a maximum of 57 queries, got 59:3178SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1085 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13179SELECT "users".* FROM "users" WHERE "users"."id" = 1085 ORDER BY "users"."id" ASC LIMIT 13180SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1085 AND (provider LIKE 'ldap%' AND extern_uid IS NOT NULL) LIMIT 13181SELECT 1 AS one FROM "identities" WHERE "identities"."user_id" = 1085 AND (provider = 'ultraauth' AND extern_uid IS NOT NULL) LIMIT 13182SELECT "boards".* FROM "boards" WHERE "boards"."group_id" = 1112 AND "boards"."id" = 13 LIMIT 13183SELECT "lists".* FROM "lists" WHERE "lists"."board_id" = 13 AND "lists"."id" = 33 ORDER BY "lists"."list_type" ASC, "lists"."position" ASC LIMIT 13184SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 1112 LIMIT 13185SELECT "members".* FROM "members" LEFT OUTER JOIN "users" ON "members"."user_id" = "users"."id" WHERE "members"."type" IN ('GroupMember') AND "members"."source_type" = 'Namespace' AND "users"."state" = 'active' AND "members"."requested_at" IS NULL AND "members"."source_id" = 1112 AND "members"."user_id" = 1085 ORDER BY "members"."access_level" DESC LIMIT 13186SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 11123187UNION3188SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 40) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03189SELECT "projects".* FROM "projects" WHERE "projects"."id" = 647 LIMIT 13190SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 1112 AND "namespaces"."type" = 'Group' LIMIT 13191SELECT 1 AS one FROM "boards" WHERE "boards"."group_id" = 1112 LIMIT 13192SELECT "issues"."project_id", MAX(relative_position) AS position FROM "issues" WHERE "issues"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1112) GROUP BY "issues"."project_id" ORDER BY position DESC NULLS LAST LIMIT 13193SAVEPOINT active_record_13194SELECT "users".* FROM "users" WHERE "users"."id" = 1090 LIMIT 13195UPDATE "issues" SET "relative_position" = 1073742823 WHERE "issues"."id" = 7853196SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 785 LIMIT 13197SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 785 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3198SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 403199SELECT "users".* FROM "users" WHERE "users"."id" = 1094 LIMIT 13200SELECT "projects".* FROM "projects" WHERE "projects"."id" = 649 LIMIT 13201UPDATE "issues" SET "relative_position" = 1073743323 WHERE "issues"."id" = 7843202SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 784 LIMIT 13203SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 784 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3204SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 403205SELECT "users".* FROM "users" WHERE "users"."id" = 1092 LIMIT 13206SELECT "projects".* FROM "projects" WHERE "projects"."id" = 648 LIMIT 13207UPDATE "issues" SET "relative_position" = 1073743823 WHERE "issues"."id" = 7833208SELECT "issue_metrics".* FROM "issue_metrics" WHERE "issue_metrics"."issue_id" = 783 LIMIT 13209SELECT "labels".* FROM "labels" INNER JOIN "label_links" ON "labels"."id" = "label_links"."label_id" WHERE "label_links"."target_id" = 783 AND "label_links"."target_type" = 'Issue' ORDER BY "labels"."title" ASC3210SELECT "lists".* FROM "lists" WHERE "lists"."label_id" = 403211RELEASE SAVEPOINT active_record_13212SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1112 LIMIT 13213SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1112 AND "routes"."source_type" = 'Namespace' LIMIT 13214SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1113 LIMIT 13215SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1113 AND "routes"."source_type" = 'Namespace' LIMIT 13216SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" = 1113 LIMIT 13217SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = 1113 AND "routes"."source_type" = 'Namespace' LIMIT 13218SELECT COUNT(*), COALESCE(SUM(weight), 0) FROM "issues" WHERE "issues"."id" IN (SELECT issues.id FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 11123219UNION3220SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 40) LIMIT 1)))3221SELECT issues.*, (SELECT MIN("label_priorities"."priority") FROM "labels" INNER JOIN "label_links" ON "label_links"."label_id" = "labels"."id" LEFT OUTER JOIN "label_priorities" ON "labels"."id" = "label_priorities"."label_id" WHERE (label_priorities.project_id = issues.project_id) AND (label_links.target_id = issues.id) AND "label_links"."target_type" = 'Issue') AS highest_priority FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (WITH RECURSIVE "base_and_descendants" AS (SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."id" = 11123222UNION3223SELECT "namespaces".* FROM "namespaces", "base_and_descendants" WHERE "namespaces"."type" IN ('Group') AND "namespaces"."parent_id" = "base_and_descendants"."id") SELECT "namespaces"."id" FROM "base_and_descendants" AS "namespaces") AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)) OR projects.visibility_level IN (10,20)) AND ("project_features"."issues_access_level" IS NULL OR "project_features"."issues_access_level" IN (20,30) OR ("project_features"."issues_access_level" = 10 AND EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1085 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= 10)))) AND ("issues"."state" IN ('opened')) AND "projects"."archived" = FALSE AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE (label_links.target_type = 'Issue' AND label_links.target_id = issues.id) AND (label_links.label_id = 40) LIMIT 1)) GROUP BY "issues"."id" ORDER BY relative_position ASC NULLS LAST, highest_priority ASC NULLS LAST, id DESC LIMIT 21 OFFSET 03224SELECT "issue_assignees".* FROM "issue_assignees" WHERE "issue_assignees"."issue_id" IN (782, 785, 784, 783)3225SELECT "users".* FROM "users" WHERE "users"."id" = 10953226SELECT "projects".* FROM "projects" WHERE "projects"."id" IN (645, 647, 649, 648)3227SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Project' AND "routes"."source_id" IN (645, 647, 648, 649)3228SELECT "namespaces".* FROM "namespaces" WHERE "namespaces"."id" IN (1112, 1113)3229SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Namespace' AND "routes"."source_id" IN (1112, 1113)3230SELECT "label_links".* FROM "label_links" WHERE "label_links"."target_type" = 'Issue' AND "label_links"."target_id" IN (782, 785, 784, 783)3231SELECT "labels".* FROM "labels" WHERE "labels"."id" = 40 ORDER BY "labels"."title" ASC3232SELECT "label_priorities".* FROM "label_priorities" WHERE "label_priorities"."label_id" = 403233SELECT "notes".* FROM "notes" WHERE "notes"."noteable_type" = 'Issue' AND "notes"."noteable_id" IN (782, 785, 784, 783)3234SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7823235SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7823236SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7853237SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7853238SELECT "uploads".* FROM "uploads" WHERE "uploads"."uploader" = 'AvatarUploader' AND "uploads"."path" IN ('uploads/-/system/user/avatar/1095/dk.png', 'user/avatar/1095/dk.png') ORDER BY "uploads"."id" ASC LIMIT 10003239SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7843240SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7843241SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7833242SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."issue_id" = 7833243RSpec::Retry: 2nd try ./spec/controllers/boards/issues_controller_spec.rb:883244 avoids N+1 database queries when adding a subgroup, project, and issue3245 with invalid list id3246 returns a not found 404 response3247 when list id is missing3248DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3249 returns opened issues without board labels applied3250 with unauthorized user3251 returns a forbidden 403 response3252 with external authorization3253 returns a 403 for group boards3254DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3255 is successful for project boards3256 PUT bulk_move3257 when items are moved to another list3258 behaves like move issues endpoint provider3259 responds as expected3260DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3261 moves issues as expected3262 when moving just one issue3263 behaves like move issues endpoint provider3264 responds as expected3265DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3266 moves issues as expected3267 when user is not allowed to move issue3268 behaves like move issues endpoint provider3269 responds as expected3270DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3271 moves issues as expected3272 when issues should be moved visually above existing issue in list3273 behaves like move issues endpoint provider3274 responds as expected3275DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3276 moves issues as expected3277 when destination list is empty3278 behaves like move issues endpoint provider3279 responds as expected3280DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3281 moves issues as expected3282 when no position arguments are given3283 behaves like move issues endpoint provider3284 responds as expected3285DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3286 moves issues as expected3287 when move_before_id and move_after_id are given3288 behaves like move issues endpoint provider3289 responds as expected3290DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3291 moves issues as expected3292 when request contains too many issues3293 behaves like move issues endpoint provider3294 responds as expected3295DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3296 moves issues as expected3297 when request is malformed3298 behaves like move issues endpoint provider3299 responds as expected3300DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(*), COALESCE(SUM(weight), 0)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from metadata at /builds/gitlab-org/gitlab-ee/app/services/boards/issues/list_service.rb:16)3301 moves issues as expected3302 POST create3303 with valid params3304 returns a successful 200 response3305 returns the created issue3306 with invalid params3307 when title is nil3308 returns an unprocessable entity 422 response3309 when list does not belongs to project board3310 returns a not found 404 response3311 with invalid board id3312 returns a not found 404 response3313 with invalid list id3314 returns a not found 404 response3315 with guest user3316 in open list3317 returns a successful 200 response3318 in label list3319 returns a forbidden 403 response3320 PATCH update3321 with valid params3322 returns a successful 200 response3323 moves issue to the desired list3324 with invalid params3325 returns a unprocessable entity 422 response for invalid lists3326 returns a not found 404 response for invalid board id3327 returns a not found 404 response for invalid issue id3328 with unauthorized user3329 returns a forbidden 403 response3330Update of user activity3331 without an authenticated user3332 does not set the last activity cookie3333 with an authenticated user3334 with a POST request3335 does not set the last activity cookie3336 on GET to /group3337 updates the last activity date3338 when calling it twice3339 updates last_activity_on just once3340 when last_activity_on is nil3341 updates the last activity date3342 when last_activity_on is stale3343 updates the last activity date3344 when last_activity_on is up to date3345 does not try to update it3346 on GET to /group/project3347 updates the last activity date3348 when calling it twice3349 updates last_activity_on just once3350 when last_activity_on is nil3351 updates the last activity date3352 when last_activity_on is stale3353 updates the last activity date3354 when last_activity_on is up to date3355 does not try to update it3356 on GET to /groups/group/-/issues3357 updates the last activity date3358 when calling it twice3359 updates last_activity_on just once3360 when last_activity_on is nil3361 updates the last activity date3362 when last_activity_on is stale3363 updates the last activity date3364 when last_activity_on is up to date3365 does not try to update it3366 on GET to /groups/group/-/boards3367DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3368DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3369 updates the last activity date3370 when calling it twice3371DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3372DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3373DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3374DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3375 updates last_activity_on just once3376 when last_activity_on is nil3377DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3378DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3379 updates the last activity date3380 when last_activity_on is stale3381DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3382DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3383 updates the last activity date3384 when last_activity_on is up to date3385DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3386DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "LOWER(name) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from boards at /builds/gitlab-org/gitlab-ee/ee/app/services/ee/boards/list_service.rb:28)3387 does not try to update it3388 on GET to /dashboard/projects3389 updates the last activity date3390 when calling it twice3391 updates last_activity_on just once3392 when last_activity_on is nil3393 updates the last activity date3394 when last_activity_on is stale3395 updates the last activity date3396 when last_activity_on is up to date3397 does not try to update it3398 on GET to /dashboard/snippets3399 updates the last activity date3400 when calling it twice3401 updates last_activity_on just once3402 when last_activity_on is nil3403 updates the last activity date3404 when last_activity_on is stale3405 updates the last activity date3406 when last_activity_on is up to date3407 does not try to update it3408 on GET to /dashboard/groups3409 updates the last activity date3410 when calling it twice3411 updates last_activity_on just once3412 when last_activity_on is nil3413 updates the last activity date3414 when last_activity_on is stale3415 updates the last activity date3416 when last_activity_on is up to date3417 does not try to update it3418 on GET to /dashboard/todos3419 updates the last activity date3420 when calling it twice3421 updates last_activity_on just once3422 when last_activity_on is nil3423 updates the last activity date3424 when last_activity_on is stale3425 updates the last activity date3426 when last_activity_on is up to date3427 does not try to update it3428 on GET to /group/project/issues3429 updates the last activity date3430 when calling it twice3431 updates last_activity_on just once3432 when last_activity_on is nil3433 updates the last activity date3434 when last_activity_on is stale3435 updates the last activity date3436 when last_activity_on is up to date3437 does not try to update it3438 on GET to /group/project/issues/103439 updates the last activity date3440 when calling it twice3441 updates last_activity_on just once3442 when last_activity_on is nil3443 updates the last activity date3444 when last_activity_on is stale3445 updates the last activity date3446 when last_activity_on is up to date3447 does not try to update it3448 on GET to /group/project/merge_requests3449 updates the last activity date3450 when calling it twice3451 updates last_activity_on just once3452 when last_activity_on is nil3453 updates the last activity date3454 when last_activity_on is stale3455 updates the last activity date3456 when last_activity_on is up to date3457 does not try to update it3458 on GET to /group/project/merge_requests/153459 updates the last activity date3460 when calling it twice3461 updates last_activity_on just once3462 when last_activity_on is nil3463 updates the last activity date3464 when last_activity_on is stale3465 updates the last activity date3466 when last_activity_on is up to date3467 does not try to update it3468Projects::BranchesController3469 POST create with HTML format3470 on creation of a new branch3471 valid branch name, valid source3472 redirects3473 invalid branch name, valid ref3474 redirects3475 valid branch name, invalid ref3476 should render template new3477 invalid branch name, invalid ref3478 should render template new3479 valid branch name with encoded slashes3480 should render template new3481 example at ./spec/controllers/projects/branches_controller_spec.rb:693482 created from the new branch button on issues3483 redirects3484 posts a system note3485 confidential_issue_project_id is present3486 create_confidential_merge_request feature is enabled3487 user cannot update issue3488 does not post a system note3489 user can update issue3490 issue is under the specified project3491 posts a system note3492 issue is not under the specified project3493 does not post a system note3494 create_confidential_merge_request feature is disabled3495 posts a system note on project3496 repository-less project3497 redirects to newly created branch3498 redirects to autodeploy setup page3499 when user configured kubernetes from CI/CD > Clusters3500 redirects to autodeploy setup page3501 when create branch service fails3502 doesn't post a system note3503 without issue feature access3504 doesn't post a system note3505 POST create with JSON format3506 with valid params3507 returns a successful 200 response3508 returns the created branch3509 with invalid params3510 returns an unprocessable entity 422 response3511 POST destroy with HTML format3512 returns 3033513 POST destroy3514 as JS3515 valid branch name, valid source3516 should respond with numeric status code 2003517 should be blank3518 valid branch name with unencoded slashes3519 should respond with numeric status code 2003520 should be blank3521 valid branch name with encoded slashes3522 should respond with numeric status code 2003523 should be blank3524 invalid branch name, valid ref3525 should respond with numeric status code 4043526 should be blank3527 as JSON3528 valid branch name, valid source3529 returns JSON response with message3530 should respond with numeric status code 2003531 valid branch name with unencoded slashes3532 returns JSON response with message3533 should respond with numeric status code 2003534 valid branch name with encoded slashes3535 returns JSON response with message3536 should respond with numeric status code 2003537 invalid branch name, valid ref3538 returns JSON response with message3539 should respond with numeric status code 4043540 as HTML3541 redirects to branches path3542 DELETE destroy_all_merged3543 when user is allowed to push3544 redirects to branches3545 starts worker to delete merged branches3546 when user is not allowed to push3547 responds with status 4043548 GET index3549 when rendering a JSON format3550 filters branches by name3551 when cache is enabled yet cold3552 return with a status 2003553 when branch contains an invalid UTF-8 sequence3554 return with a status 2003555 when deprecated sort/search/page parameters are specified3556 returns with a status 301 when sort specified3557 returns with a status 301 when search specified3558 returns with a status 301 when page specified3559 GET diverging_commit_counts3560 returns the commit counts behind and ahead of default branch3561Destroying a Note3562 when the user does not have permission3563 does not destroy the Note3564 behaves like a mutation that returns top-level errors3565 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]3566 when the user has permission3567 destroys the Note3568 returns an empty Note3569 behaves like a Note mutation when the given resource id is not for a Note3570 behaves like a mutation that returns top-level errors3571 should eq ["Resource is not a note"]3572API::GroupClusters3573 GET /groups/:id/clusters3574 non-authorized user3575 responds with 4033576 authorized user3577 responds with 2003578 includes pagination headers3579 only include authorized clusters3580 GET /groups/:id/clusters/:cluster_id3581 non-authorized user3582 responds with 4033583 authorized user3584 returns specific cluster3585 returns cluster information3586 returns group information3587 returns kubernetes platform information3588 returns user information3589 returns GCP provider information3590 when cluster has no provider3591 does not include GCP provider info3592 with non-existing cluster3593 returns 4043594 POST /groups/:id/clusters/user3595 non-authorized user3596 responds with 4033597 authorized user3598 with valid params3599 responds with 2013600 creates a new Cluster::Cluster3601 when user does not indicate authorization type3602 defaults to RBAC3603 when user sets authorization type as ABAC3604 creates an ABAC cluster3605 with invalid params3606 responds with 4003607 does not create a new Clusters::Cluster3608 returns validation errors3609 when user tries to add multiple clusters3610 responds with 4003611 non-authorized user3612 responds with 4033613 PUT /groups/:id/clusters/:cluster_id3614 non-authorized user3615 responds with 4033616 authorized user3617 with valid params3618 responds with 2003619 updates cluster attributes3620 with invalid params3621 responds with 4003622 does not update cluster attributes3623 returns validation errors3624 with a GCP cluster3625 when user tries to change GCP specific fields3626 responds with 4003627 returns validation error3628 when user tries to change domain3629 responds with 2003630 with an user cluster3631 responds with 2003632 updates platform kubernetes attributes3633 with a cluster that does not belong to user3634 responds with 4043635 DELETE /groups/:id/clusters/:cluster_id3636 non-authorized user3637 responds with 4033638 authorized user3639 responds with 2043640 deletes the cluster3641 with a cluster that does not belong to user3642 responds with 4043643API::Deployments3644 GET /projects/:id/deployments3645 as member of the project3646 returns projects deployments sorted by id asc3647 ordering3648 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]3649 returns the deployments ordered3650 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3651 returns the deployments ordered3652 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]3653 returns the deployments ordered3654 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]3655 returns the deployments ordered3656 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]3657 returns the deployments ordered3658 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]3659 returns the deployments ordered3660 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]3661 returns the deployments ordered3662 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]3663 returns the deployments ordered3664 as non member3665 returns a 404 status code3666 GET /projects/:id/deployments/:deployment_id3667 as a member of the project3668 returns the projects deployment3669 as non member3670 returns a 404 status code3671Projects::SnippetsController3672 GET #index3673 when page param3674 redirects to last_page if page number is larger than number of pages3675 redirects to specified page3676 when the project snippet is private3677 when anonymous3678 does not include the private snippet3679 when signed in as the author3680 renders the snippet3681 when signed in as a project member3682 renders the snippet3683 POST #create3684 creates the snippet correctly3685 when the snippet is spam3686 when the snippet is private3687 creates the snippet3688 when the snippet is public3689 rejects the shippet3690 creates a spam log3691 renders :new with recaptcha disabled3692 recaptcha enabled3693 renders :verify with recaptcha enabled3694 renders snippet page when recaptcha verified3695 PUT #update3696 when the snippet is spam3697 when the snippet is private3698 updates the snippet3699 when the snippet is public3700 rejects the shippet3701 creates a spam log3702 renders :edit with recaptcha disabled3703 recaptcha enabled3704 renders :verify with recaptcha enabled3705 renders snippet page when recaptcha verified3706 when the private snippet is made public3707 rejects the shippet3708 creates a spam log3709 renders :edit with recaptcha disabled3710 recaptcha enabled3711 renders :verify with recaptcha enabled3712 renders snippet page when recaptcha verified3713 POST #mark_as_spam3714 updates the snippet3715 GET #show3716 when the project snippet is private3717 when anonymous3718 responds with status 4043719 when signed in as the author3720 renders the snippet3721 when signed in as a project member3722 renders the snippet3723 when the project snippet does not exist3724 when anonymous3725 responds with status 4043726 when signed in3727 responds with status 4043728 GET #raw3729 when the project snippet is private3730 when anonymous3731 responds with status 4043732 when signed in as the author3733 renders the snippet3734 when signed in as a project member3735 renders the snippet3736 when the project snippet does not exist3737 when anonymous3738 responds with status 4043739 when signed in3740 responds with status 4043741 GET #show for embeddable content3742 when snippet is private3743 responds with status 4043744 when snippet is public3745 responds with status 2003746 when the project is private3747 when snippet is public3748 responds with status 4043749 GET #raw3750 CRLF line ending3751 returns LF line endings by default3752 does not convert line endings when parameter present3753Projects::MergeRequests::ConflictsController3754 GET show3755 when the conflicts cannot be resolved in the UI3756 returns a 200 status code3757 returns JSON with a message3758 with valid conflicts3759 matches the schema3760 includes meta info about the MR3761 includes each file that has conflicts3762 splits files into sections with lines3763 has unique section IDs across files3764 GET conflict_for_path3765 when the conflicts cannot be resolved in the UI3766 returns a 404 status code3767 when the file does not exist cannot be resolved in the UI3768 returns a 404 status code3769 with an existing file3770 returns a 200 status code3771 returns the file in JSON format3772 POST resolve_conflicts3773 with valid params3774 creates a new commit on the branch3775 returns an OK response3776 when sections are missing3777 returns a 400 error3778 has a message with the name of the first missing section3779 does not create a new commit3780 when files are missing3781 returns a 400 error3782 has a message with the name of the missing file3783 does not create a new commit3784 when a file has identical content to the conflict3785 returns a 400 error3786 has a message with the path of the problem file3787 does not create a new commit3788Groups::ChildrenController3789 GET #index3790 for projects3791 as a user3792 shows all children3793 being member of private subgroup3794 shows public and private children the user is member of3795 as a guest3796 shows the public children3797 for subgroups3798 as a user3799 shows all children3800 being member of private subgroup3801 shows public and private children the user is member of3802 as a guest3803 shows the public children3804 filtering children3805 expands the tree for matching projects3806 expands the tree for matching subgroups3807 merges the trees correctly3808 expands the tree upto a specified parent3809 returns an array with one element when only one result is matched3810 returns an empty array when there are no search results3811 succeeds if multiple pages contain matching subgroups3812 includes pagination headers3813 queries per rendered element3814 queries the expected amount for a group row3815 queries the expected amount for a project row3816 when rendering hierarchies3817 queries the expected amount when nested rows are increased for a group3818 queries the expected amount when a new group match is added3819 queries the expected amount when nested rows are increased for a project3820 pagination3821 with only projects3822 has projects on the first page3823 has projects on the second page3824 with subgroups and projects3825 contains all subgroups3826 contains the project and group on the second page3827 with a mixed first page3828 correctly calculates the counts3829 external authorization3830 works when external authorization service is enabled3831API::Issues3832 PUT /projects/:id/issues/:issue_iid to update only title3833 updates a project issue3834 returns 404 error if issue iid not found3835 returns 404 error if issue id is used instead of the iid3836 allows special label names3837 allows special label names with labels param as array3838 confidential issues3839 returns 403 for non project members3840 returns 403 for project members with guest role3841 updates a confidential issue for project members3842 updates a confidential issue for author3843 updates a confidential issue for admin3844 sets an issue to confidential3845 makes a confidential issue public3846 does not update a confidential issue with wrong confidential flag3847 PUT /projects/:id/issues/:issue_iid with spam filtering3848 does not create a new project issue3849 PUT /projects/:id/issues/:issue_iid to update assignee3850 removes assignee3851 updates an issue with new assignee3852 support for deprecated assignee_id3853 removes assignee3854 updates an issue with new assignee3855 single assignee restrictions3856 updates an issue with several assignees but only one has been applied3857 PUT /projects/:id/issues/:issue_iid to update labels3858 does not update labels if not present3859 removes all labels and touches the record3860 removes all labels and touches the record with labels param as array3861 updates labels and touches the record3862 updates labels and touches the record with labels param as array3863 allows special label names3864 allows special label names with labels param as array3865 returns 400 if title is too long3866 PUT /projects/:id/issues/:issue_iid to update state and label3867 updates a project issue3868 reopens a project isssue3869 when an admin or owner makes the request3870 accepts the update date to be set3871 PUT /projects/:id/issues/:issue_iid to update due date3872 creates a new project issue3873Boards::ListsController3874 GET index3875 returns a successful 200 response3876 returns a list of board lists3877 with unauthorized user3878 returns a forbidden 403 response3879 POST create3880 with valid params3881 returns a successful 200 response3882 returns the created list3883 with invalid params3884 when label is nil3885 returns a not found 404 response3886 when label that does not belongs to project3887 returns a not found 404 response3888 with unauthorized user3889 returns a forbidden 403 response3890 PATCH update3891 with valid position3892 returns a successful 200 response3893 moves the list to the desired position3894 with invalid position3895 returns an unprocessable entity 422 response3896 with invalid list id3897 returns a not found 404 response3898 with unauthorized user3899 returns a forbidden 403 response3900 DELETE destroy3901 with valid list id3902 returns a successful 200 response3903 removes list from board3904 with invalid list id3905 returns a not found 404 response3906 with unauthorized user3907 returns a forbidden 403 response3908 POST generate3909 when board lists is empty3910 returns a successful 200 response3911 returns the defaults lists3912 when board lists is not empty3913 returns an unprocessable entity 422 response3914 with unauthorized user3915 returns a forbidden 403 response3916Projects::CompareController3917 GET index3918 returns successfully3919 GET show3920 when the refs exist3921 when we set the white space param3922 shows some diffs with ignore whitespace change option3923 when we do not set the white space param3924 sets the diffs and commits ivars3925 when the source ref does not exist3926 sets empty diff and commit ivars3927 when the target ref does not exist3928 sets empty diff and commit ivars3929 when the target ref is invalid3930 shows a flash message and redirects3931 when the source ref is invalid3932 shows a flash message and redirects3933 GET diff_for_path3934 when the source and target refs exist3935 when the user has access target the project3936 when the path exists in the diff3937 disables diff notes3938 only renders the diffs for the path given3939 when the path does not exist in the diff3940 returns a 4043941 when the user does not have access target the project3942 returns a 4043943 when the source ref does not exist3944 returns a 4043945 when the target ref does not exist3946 returns a 4043947 POST create3948 when sending valid params3949 redirects back to show3950 when sending invalid params3951 when the source ref is empty and target ref is set3952 redirects back to index and preserves the target ref3953 when the target ref is empty and source ref is set3954 redirects back to index and preserves source ref3955 when the target and source ref are empty3956 redirects back to index3957 GET signatures3958 when the source and target refs exist3959 when the user has access to the project3960 returns only the commit with a signature3961 when the user does not have access to the project3962 returns a 4043963 when the source ref does not exist3964 returns no signatures3965 when the target ref does not exist3966 returns no signatures3967API::AwardEmoji3968 GET /projects/:id/awardable/:awardable_id/award_emoji3969 on an issue3970 returns an array of award_emoji3971 returns a 404 error when issue id not found3972 on a merge request3973 returns an array of award_emoji3974 on a snippet3975 returns the awarded emoji3976 when the user has no access3977 returns a status code 4043978 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji3979 returns an array of award emoji3980 GET /projects/:id/awardable/:awardable_id/award_emoji/:award_id3981 on an issue3982 returns the award emoji3983 returns a 404 error if the award is not found3984 on a merge request3985 returns the award emoji3986 on a snippet3987 returns the awarded emoji3988 when the user has no access3989 returns a status code 4043990 GET /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id3991 returns an award emoji3992 POST /projects/:id/awardable/:awardable_id/award_emoji3993 on an issue3994 creates a new award emoji3995 marks Todos on the Issue as done3996 returns a 400 bad request error if the name is not given3997 returns a 401 unauthorized error if the user is not authenticated3998 normalizes +1 as thumbsup award3999 when the emoji already has been awarded4000 returns a 404 status code4001 on a snippet4002 creates a new award emoji4003 POST /projects/:id/awardable/:awardable_id/notes/:note_id/award_emoji4004 creates a new award emoji4005 marks Todos on the Noteable as done4006 normalizes +1 as thumbsup award4007 when the emoji already has been awarded4008 returns a 404 status code4009 DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_id4010 when the awardable is an Issue4011 deletes the award4012 returns a 404 error when the award emoji can not be found4013 behaves like 412 response4014 for a modified ressource4015 returns 4124016 for an unmodified ressource4017 returns accepted4018 when the awardable is a Merge Request4019 deletes the award4020 returns a 404 error when note id not found4021 behaves like 412 response4022 for a modified ressource4023 returns 4124024 for an unmodified ressource4025 returns accepted4026 when the awardable is a Snippet4027 deletes the award4028 behaves like 412 response4029 for a modified ressource4030 returns 4124031 for an unmodified ressource4032 returns accepted4033 DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_emoji_id4034 deletes the award4035 behaves like 412 response4036 for a modified ressource4037 returns 4124038 for an unmodified ressource4039 returns accepted4040API::PipelineSchedules4041 GET /projects/:id/pipeline_schedules4042 authenticated user with valid permissions4043 returns list of pipeline_schedules4044 avoids N + 1 queries4045 when scope is active4046 returns matched pipeline schedules4047 when scope is inactive4048 returns matched pipeline schedules4049 authenticated user with invalid permissions4050 does not return pipeline_schedules list4051 unauthenticated user4052 does not return pipeline_schedules list4053 GET /projects/:id/pipeline_schedules/:pipeline_schedule_id4054 authenticated user with valid permissions4055 returns pipeline_schedule details4056 responds with 404 Not Found if requesting non-existing pipeline_schedule4057 authenticated user with invalid permissions4058 does not return pipeline_schedules list4059 authenticated user with insufficient permissions4060 does not return pipeline_schedules list4061 unauthenticated user4062 does not return pipeline_schedules list4063 POST /projects/:id/pipeline_schedules4064 authenticated user with valid permissions4065 with required parameters4066 creates pipeline_schedule4067 without required parameters4068 does not create pipeline_schedule4069 when cron has validation error4070 does not create pipeline_schedule4071 authenticated user with invalid permissions4072 does not create pipeline_schedule4073 unauthenticated user4074 does not create pipeline_schedule4075 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id4076 authenticated user with valid permissions4077 updates cron4078 when cron has validation error4079 does not update pipeline_schedule4080 authenticated user with invalid permissions4081 does not update pipeline_schedule4082 unauthenticated user4083 does not update pipeline_schedule4084 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership4085 authenticated user with valid permissions4086 updates owner4087 authenticated user with invalid permissions4088 does not update owner4089 unauthenticated user4090 does not update owner4091 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id4092 authenticated user with valid permissions4093 deletes pipeline_schedule4094 responds with 404 Not Found if requesting non-existing pipeline_schedule4095 behaves like 412 response4096 for a modified ressource4097 returns 4124098 for an unmodified ressource4099 returns accepted4100 authenticated user with invalid permissions4101 does not delete pipeline_schedule4102 unauthenticated user4103 does not delete pipeline_schedule4104 POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables4105 authenticated user with valid permissions4106 with required parameters4107 creates pipeline_schedule_variable4108 without required parameters4109 does not create pipeline_schedule_variable4110 when key has validation error4111 does not create pipeline_schedule_variable4112 authenticated user with invalid permissions4113 does not create pipeline_schedule_variable4114 unauthenticated user4115 does not create pipeline_schedule_variable4116 PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key4117 authenticated user with valid permissions4118 updates pipeline_schedule_variable4119 authenticated user with invalid permissions4120 does not update pipeline_schedule_variable4121 unauthenticated user4122 does not update pipeline_schedule_variable4123 DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key4124 authenticated user with valid permissions4125 deletes pipeline_schedule_variable4126 responds with 404 Not Found if requesting non-existing pipeline_schedule_variable4127 authenticated user with invalid permissions4128 does not delete pipeline_schedule_variable4129 unauthenticated user4130 does not delete pipeline_schedule_variable4131API::Variables4132 GET /projects/:id/variables4133 authorized user with proper permissions4134 returns project variables4135 authorized user with invalid permissions4136 does not return project variables4137 unauthorized user4138 does not return project variables4139 GET /projects/:id/variables/:key4140 authorized user with proper permissions4141 returns project variable details4142 responds with 404 Not Found if requesting non-existing variable4143 authorized user with invalid permissions4144 does not return project variable details4145 unauthorized user4146 does not return project variable details4147 POST /projects/:id/variables4148 authorized user with proper permissions4149 creates variable4150 creates variable with optional attributes4151 does not allow to duplicate variable key4152 creates variable with a specific environment scope4153 allows duplicated variable key given different environment scopes4154 authorized user with invalid permissions4155 does not create variable4156 unauthorized user4157 does not create variable4158 PUT /projects/:id/variables/:key4159 authorized user with proper permissions4160 updates variable data4161 responds with 404 Not Found if requesting non-existing variable4162 authorized user with invalid permissions4163 does not update variable4164 unauthorized user4165 does not update variable4166 DELETE /projects/:id/variables/:key4167 authorized user with proper permissions4168 deletes variable4169 responds with 404 Not Found if requesting non-existing variable4170 authorized user with invalid permissions4171 does not delete variable4172 unauthorized user4173 does not delete variable4174Admin::ServicesController4175 GET #edit4176 asana4177 successfully displays the template4178 assembla4179 successfully displays the template4180 bamboo4181 successfully displays the template4182 bugzilla4183 successfully displays the template4184 buildkite4185 successfully displays the template4186 campfire4187 successfully displays the template4188 custom_issue_tracker4189 successfully displays the template4190 discord4191 successfully displays the template4192 drone_ci4193 successfully displays the template4194 emails_on_push4195 successfully displays the template4196 external_wiki4197 successfully displays the template4198 flowdock4199 successfully displays the template4200 github4201 successfully displays the template4202 hangouts_chat4203 successfully displays the template4204 hipchat4205 successfully displays the template4206 irker4207 successfully displays the template4208 jenkins4209 successfully displays the template4210 jenkins_deprecated4211 successfully displays the template4212 jira4213 successfully displays the template4214 mattermost4215 successfully displays the template4216 mattermost_slash_commands4217 successfully displays the template4218 microsoft_teams4219 successfully displays the template4220 packagist4221 successfully displays the template4222 pipelines_email4223 successfully displays the template4224 pivotaltracker4225 successfully displays the template4226 prometheus4227 successfully displays the template4228 pushover4229 successfully displays the template4230 redmine4231 successfully displays the template4232 slack4233 successfully displays the template4234 slack_slash_commands4235 successfully displays the template4236 teamcity4237 successfully displays the template4238 youtrack4239 successfully displays the template4240 #update4241 calls the propagation worker when service is active4242 does not call the propagation worker when service is not active4243Groups::GroupMembersController4244 GET index4245 renders index with 200 status code4246 user with owner access4247 assigns invited members4248 restricts search to one email4249 paginates invited list4250 POST create4251 when user does not have enough rights4252 returns 4034253 when user has enough rights4254 adds user to members4255 adds no user to members4256 PUT update4257 can change the access level to Guest4258 can change the access level to Reporter4259 can change the access level to Developer4260 can change the access level to Maintainer4261 DELETE destroy4262 when member is not found4263 returns 4034264 when member is found4265 when user does not have enough rights4266 returns 4034267 when user has enough rights4268 [HTML] removes user from members4269 [JS] removes user from members4270 DELETE leave4271 when member is not found4272 returns 4044273 when member is found4274 and is not an owner4275 removes user from members4276 supports json request4277 and is an owner4278 cannot removes himself from the group4279 and is a requester4280 removes user from members4281 POST request_access4282 creates a new GroupMember that is not a team member4283 POST approve_access_request4284 when member is not found4285 returns 4034286 when member is found4287 when user does not have enough rights4288 returns 4034289 when user has enough rights4290 adds user to members4291 with external authorization enabled4292 GET #index4293 is successful4294 POST #create4295 is successful4296 PUT #update4297 is successful4298 DELETE #destroy4299 is successful4300 POST #destroy4301 is successful4302 POST #approve_request_access4303 is successful4304 DELETE #leave4305 is successful4306 POST #resend_invite4307 is successful4308Projects::CommitController4309 GET show4310 handles binary files4311 with valid id4312 responds with 2004313 with invalid id4314 responds with 4044315 as diff4316 triggers workhorse to serve the request4317 as patch4318 contains a git diff4319 commit that removes a submodule4320 renders it4321 in the context of a merge_request4322 prepare diff notes in the context of the merge request4323 GET branches4324 contains branch and tags information4325 returns :limit_exceeded when number of branches/tags reach a threshhold4326 POST revert4327 when target branch is not provided4328 renders the 404 page4329 when the revert was successful4330 redirects to the commits page4331 when the revert failed4332 redirects to the commit page4333 POST cherry_pick4334 when target branch is not provided4335 renders the 404 page4336 when the cherry-pick was successful4337 redirects to the commits page4338 when the cherry_pick failed4339 redirects to the commit page4340 GET diff_for_path4341 when the commit exists4342 when the user has access to the project4343 when the path exists in the diff4344 enables diff notes4345 only renders the diffs for the path given4346 when the path does not exist in the diff4347 returns a 4044348 when the user does not have access to the project4349 returns a 4044350 when the commit does not exist4351 returns a 4044352 GET pipelines4353 when the commit exists4354 when the commit has pipelines4355 when rendering a HTML format4356 shows pipelines4357 when rendering a JSON format4358DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "max(stage_idx)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from legacy_stages at /builds/gitlab-org/gitlab-ee/app/models/ci/pipeline.rb:377)4359DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "(SELECT COUNT(*) FROM \"ci_builds\" WHERE \"ci_builds\".\"commit_id\" = 107 AND (\"ci_builds\".\"retried\" = FALSE OR \"ci_builds\".\"retried\" IS NULL) AND (stage=sg.stage) AND \"ci_builds\".\"allow_failure\" = TRUE AND \"ci_builds\".\"status\" IN ('failed', 'canceled'))". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from legacy_stages at /builds/gitlab-org/gitlab-ee/app/models/ci/pipeline.rb:385)4360 responds with serialized pipelines4361 when the commit does not exist4362 returns a 4044363API::ProtectedTags4364 GET /projects/:id/protected_tags4365 when authenticated as a maintainer4366 behaves like protected tags4367 returns the protected tags4368 when authenticated as a guest4369 behaves like 403 response4370 returns 4034371 GET /projects/:id/protected_tags/:tag4372 when authenticated as a maintainer4373 behaves like protected tag4374 returns the protected tag4375 when protected tag does not exist4376 behaves like 404 response4377 returns 4044378 when protected tag contains a wildcard4379 behaves like protected tag4380 returns the protected tag4381 when protected tag does not exist4382 behaves like 404 response4383 returns 4044384 when authenticated as a guest4385 behaves like 403 response4386 returns 4034387 POST /projects/:id/protected_tags4388 when authenticated as a maintainer4389 protects a single tag with maintainers can create tags4390 protects a single tag with developers can create tags4391 protects a single tag with no one can create tags4392 returns a 422 error if the same tag is protected twice4393 returns 201 if the same tag is proteted on different projects4394 when tag has a wildcard in its name4395 protects multiple tags with a wildcard in the name4396 when authenticated as a guest4397 returns a 403 error if guest4398 DELETE /projects/:id/protected_tags/unprotect/:tag4399 unprotects a single tag4400 returns 404 if tag does not exist4401 behaves like 412 response4402 for a modified ressource4403 returns 4124404 for an unmodified ressource4405 returns accepted4406 when tag has a wildcard in its name4407 unprotects a wildcard tag4408Admin::ClustersController4409 GET #index4410 functionality4411 when instance has one or more clusters4412 lists available clusters4413 when page is specified4414 redirects to the page4415 when instance does not have a cluster4416 returns an empty state page4417 security4418 should be allowed for admin. Expected: 200,201,204,302 Got: 2004419 should be denied for user. Expected: 401,404 Got: 4044420 should be denied for external. Expected: 401,404 Got: 4044421 GET #new4422 functionality for new cluster4423 when omniauth has been configured4424 has authorize_url4425 when omniauth has not configured4426 does not have authorize_url4427 when access token is valid4428 has new object4429 when access token is expired4430 should be falsey4431 when access token is not stored in session4432 should be falsey4433 functionality for existing cluster4434 has new object4435 security4436 should be allowed for admin. Expected: 200,201,204,302 Got: 2004437 should be denied for user. Expected: 401,404 Got: 4044438 should be denied for external. Expected: 401,404 Got: 4044439 POST #create_gcp4440 functionality4441 when access token is valid4442 creates a new cluster4443 when legacy_abac param is false4444 creates a new cluster with legacy_abac_disabled4445 when access token is expired4446 should be falsey4447 when access token is not stored in session4448 should be falsey4449 security4450 should be allowed for admin. Expected: 200,201,204,302 Got: 3024451 should be denied for user. Expected: 401,404 Got: 4044452 should be denied for external. Expected: 401,404 Got: 4044453 POST #create_user4454 functionality4455 when creates a cluster4456 creates a new cluster4457 when creates a RBAC-enabled cluster4458 creates a new cluster4459 security4460 should be allowed for admin. Expected: 200,201,204,302 Got: 3024461 should be denied for user. Expected: 401,404 Got: 4044462 should be denied for external. Expected: 401,404 Got: 4044463 GET #cluster_status4464 functionality4465 responds with matching schema4466 invokes schedule_status_update on each application4467 security4468 should be allowed for admin. Expected: 200,201,204,302 Got: 2004469 should be denied for user. Expected: 401,404 Got: 4044470 should be denied for external. Expected: 401,404 Got: 4044471 GET #show4472 functionality4473 responds successfully4474 security4475 should be allowed for admin. Expected: 200,201,204,302 Got: 2004476 should be denied for user. Expected: 401,404 Got: 4044477 should be denied for external. Expected: 401,404 Got: 4044478 PUT #update4479 updates and redirects back to show page4480 when domain is invalid4481 does not update cluster attributes4482 when format is json4483 when changing parameters4484 when valid parameters are used4485 updates and redirects back to show page4486 when invalid parameters are used4487 rejects changes4488 security4489 should be allowed for admin. Expected: 200,201,204,302 Got: 3024490 should be denied for user. Expected: 401,404 Got: 4044491 should be denied for external. Expected: 401,404 Got: 4044492 DELETE #destroy4493 functionality4494 when cluster is provided by GCP4495 when cluster is created4496 destroys and redirects back to clusters list4497 when cluster is being created4498 destroys and redirects back to clusters list4499 when cluster is provided by user4500 destroys and redirects back to clusters list4501 security4502 should be allowed for admin. Expected: 200,201,204,302 Got: 3024503 should be denied for user. Expected: 401,404 Got: 4044504 should be denied for external. Expected: 401,404 Got: 4044505SearchController4506 GET #show4507 finds issue comments4508 behaves like when the user cannot read cross project4509 blocks access without a project_id4510 allows access with a project_id4511 still allows accessing the search page4512 behaves like with external authorization service enabled4513 renders a 403 when no project is given4514 renders a 200 when a project was set4515 uses the right partials depending on scope4516 partial: "_blob", scope: :blobs4517 should render template search/results/_blob4518 partial: "_wiki_blob", scope: :wiki_blobs4519 should render template search/results/_wiki_blob4520 partial: "_commit", scope: :commits4521 should render template search/results/_commit4522 global search4523 omits pipeline status from load4524 on restricted projects4525 doesn't expose comments on merge_requests4526 doesn't expose comments on snippets4527 when signed out4528 doesn't expose comments on issues4529 GET #count4530 returns the result count for the given term and scope4531 raises an error if search term is missing4532 raises an error if search scope is missing4533 behaves like when the user cannot read cross project4534 blocks access without a project_id4535 allows access with a project_id4536 behaves like with external authorization service enabled4537 renders a 403 when no project is given4538 renders a 200 when a project was set4539 GET #autocomplete4540 behaves like when the user cannot read cross project4541 blocks access without a project_id4542 allows access with a project_id4543 behaves like with external authorization service enabled4544 renders a 403 when no project is given4545 renders a 200 when a project was set4546API::ProjectSnippets4547 GET /projects/:project_id/snippets/:id/user_agent_detail4548 exposes known attributes4549 respects project scoping4550 returns unauthorized for non-admin users4551 GET /projects/:project_id/snippets/4552 returns all snippets available to team member4553 hides private snippets from regular user4554 GET /projects/:project_id/snippets/:id4555 returns snippet json4556 returns 404 for invalid snippet id4557 POST /projects/:project_id/snippets/4558 creates a new snippet4559 returns 400 for missing parameters4560 returns 400 for empty code field4561 when the snippet is spam4562 when the snippet is private4563 creates the snippet4564 when the snippet is public4565 rejects the snippet4566 creates a spam log4567 PUT /projects/:project_id/snippets/:id/4568 updates snippet4569 returns 404 for invalid snippet id4570 returns 400 for missing parameters4571 returns 400 for empty code field4572 when the snippet is spam4573 when the snippet is private4574 creates the snippet4575 when the snippet is public4576 rejects the snippet4577 creates a spam log4578 when the private snippet is made public4579 rejects the snippet4580 creates a spam log4581 DELETE /projects/:project_id/snippets/:id/4582 deletes snippet4583 returns 404 for invalid snippet id4584 behaves like 412 response4585 for a modified ressource4586 returns 4124587 for an unmodified ressource4588 returns accepted4589 GET /projects/:project_id/snippets/:id/raw4590 returns raw text4591 returns 404 for invalid snippet id4592Admin::ApplicationSettingsController4593 GET #usage_data with no access4594 returns 4044595 GET #usage_data4596unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.4597unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.4598unknown OID 194: failed to recognize type of 'relpartbound'. It will be treated as String.4599 returns HTML data4600 returns JSON data4601 PUT #update4602 updates the password_authentication_enabled_for_git setting4603 updates the default_project_visibility for string value4604 update the restricted levels for string values4605 updates the restricted_visibility_levels when empty array is passed4606 updates the receive_max_input_size setting4607 updates the default_project_creation for string value4608 external policy classification settings4609 updates settings when the feature is available4610 verify panel actions4611 behaves like renders correct panels4612 renders correct action on error4613 redirects to same panel on success4614 behaves like renders correct panels4615 renders correct action on error4616 redirects to same panel on success4617 behaves like renders correct panels4618 renders correct action on error4619 redirects to same panel on success4620 behaves like renders correct panels4621 renders correct action on error4622 redirects to same panel on success4623 behaves like renders correct panels4624 renders correct action on error4625 redirects to same panel on success4626 behaves like renders correct panels4627 renders correct action on error4628 redirects to same panel on success4629 behaves like renders correct panels4630 renders correct action on error4631 redirects to same panel on success4632 PUT #reset_registration_token4633 resets runner registration token4634 redirects the user to admin runners page4635Projects::DeploymentsController4636 GET #index4637 returns list of deployments from last 8 hours4638 returns a list with deployments information4639 GET #metrics4640 when metrics are disabled4641 responds with not found4642 when metrics are enabled4643 when environment has no metrics4644 returns a empty response 204 resposne4645 when environment has some metrics4646 returns a metrics JSON document4647 GET #additional_metrics4648 when metrics are disabled4649 responds with not found4650 when metrics are enabled4651 when environment has no metrics4652 returns a empty response 204 response4653 when environment has some metrics4654 returns a metrics JSON document4655ApplicationController4656 #check_password_expiration4657 redirects if the user is over their password expiry4658 does not redirect if the user is under their password expiry4659 does not redirect if the user is over their password expiry but they are an ldap user4660 does not redirect if the user is over their password expiry but password authentication is disabled for the web interface4661 #add_gon_variables4662 with html format4663 behaves like setting gon variables4664 sets gon variables4665 for peek requests4666 behaves like not setting gon variables4667 does not set gon variables4668 with json format4669 behaves like not setting gon variables4670 does not set gon variables4671 session expiration4672 authenticated user4673 does not set the expire_after option4674 unauthenticated user4675 sets the expire_after option4676 response format4677 when format is handled4678 returns 200 response4679 when format is not handled4680 returns 404 response4681 #route_not_found4682 renders 404 if authenticated4683 does redirect to login page via authenticate_user! if not authenticated4684 #set_page_title_header4685 URI encodes UTF-8 characters in the title4686 two-factor authentication4687 #check_two_factor_requirement4688 does not redirect if user has temporary oauth email4689 does not redirect if 2FA is not required4690 does not redirect if user is not logged in4691 does not redirect if user has 2FA enabled4692 does not redirect if 2FA setup can be skipped4693 redirects to 2FA setup otherwise4694 #two_factor_authentication_required?4695 returns false if no 2FA requirement is present4696 returns true if a 2FA requirement is set in the application settings4697 returns true if a 2FA requirement is set on the user4698 returns true if user has signed up using omniauth-ultraauth4699 #two_factor_grace_period4700 returns the grace period from the application settings4701 with a 2FA requirement set on the user4702 returns the user grace period if lower than the application grace period4703 returns the application grace period if lower than the user grace period4704 #two_factor_grace_period_expired?4705 returns false if the user has not started their grace period yet4706 with grace period started4707 returns true if the grace period has expired4708 returns false if the grace period is still active4709 #two_factor_skippable4710 returns false if 2FA is not required4711 returns false if the user has already enabled 2FA4712 returns false if the 2FA grace period has expired4713 returns true otherwise4714 #skip_two_factor?4715 returns false if 2FA setup was not skipped4716 with 2FA setup skipped4717 returns false if the grace period has expired4718 returns true if the grace period is still active4719 terms4720 does not query more when terms are enforced4721 when terms are enforced4722 redirects if the user did not accept the terms4723 does not redirect when the user accepted terms4724 #append_info_to_payload4725 does not log errors with a 200 response4726 does log correlation id4727 422 errors4728 logs a response with a string4729 logs a response with an array4730 does not log a string with an empty body4731 does not log an HTML body4732 #access_denied4733 renders a 404 without a message4734 renders a 403 when a message is passed to access denied4735 renders a status passed to access denied4736 when invalid UTF-8 parameters are received4737 html4738 renders 4124739 js4740 renders 4124741 X-GitLab-Custom-Error header4742 given a 422 error page4743 sets a custom header4744 given a 500 error page4745 sets a custom header4746 given a 200 success page4747 does not set a custom header4748 given a json response4749 sets a custom header4750 for html request4751 sets a custom header4752 for 200 response4753 does not set a custom header4754 control headers4755 user not logged in4756 sets the default headers4757 user logged in4758 sets the default headers4759 does not set the "no-store" header for XHR requests4760 Gitlab::Session4761 is set on web requests4762 with sessionless user4763 is not set4764Projects::ServicesController4765 #test4766 when can_test? returns false4767 renders 4044768 when validations fail4769 returns error messages in JSON response4770 success4771 returns success4772 with empty project4773 returns success4774 with chat notification service4775 returns success4776 when service is configured for the first time4777 persist the object4778 creates the ServiceHook object4779 failure4780 returns success status code and the error message4781 PUT #update4782 when param `active` is set to true4783 activates the service and redirects to integrations paths4784 when param `active` is set to false4785 does not activate the service but saves the settings4786 when activating Jira service from a template4787 activate Jira service from template4788 GET #edit4789 with approved services4790 renders edit page4791Projects::BadgesController4792 #pipeline4793 behaves like a badge resource4794 when pipelines are public4795 when project is public4796 returns the pipeline badge to unauthenticated users4797 when project is restricted4798 returns the pipeline badge to guest users4799 format4800 renders the `flat` badge layout by default4801 when style param is set to `flat`4802 renders the `flat` badge layout4803 when style param is set to an invalid type4804 renders the `flat` (default) badge layout4805 when style param is set to `flat-square`4806 renders the `flat-square` badge layout4807 when pipelines are not public4808 when project is public4809 returns 404 to unauthenticated users4810 when project is restricted to the user4811 defaults to project permissions4812 #coverage4813 behaves like a badge resource4814 when pipelines are public4815 when project is public4816 returns the coverage badge to unauthenticated users4817 when project is restricted4818 returns the coverage badge to guest users4819 format4820 renders the `flat` badge layout by default4821 when style param is set to `flat`4822 renders the `flat` badge layout4823 when style param is set to an invalid type4824 renders the `flat` (default) badge layout4825 when style param is set to `flat-square`4826 renders the `flat-square` badge layout4827 when pipelines are not public4828 when project is public4829 returns 404 to unauthenticated users4830 when project is restricted to the user4831 defaults to project permissions4832Admin::UsersController4833 GET #index4834 retrieves all users4835 filters by admins4836 GET :id4837 finds a user case-insensitively4838 DELETE #user with projects4839 deletes user and ghosts their contributions4840 deletes the user and their contributions when hard delete is specified4841 PUT block/:id4842 blocks user4843 PUT unblock/:id4844 ldap blocked users4845 does not unblock user4846 manually blocked users4847 unblocks user4848 PUT unlock/:id4849 unlocks user4850 PUT confirm/:id4851 confirms user4852 PATCH disable_two_factor4853 disables 2FA for the user4854 redirects back4855 displays an alert4856 POST create4857 creates the user4858 shows only one error message for an invalid email4859 POST update4860 when the password has changed4861 when the admin changes his own password4862 updates the password4863 does not set the new password to expire immediately4864 when the new password is valid4865 redirects to the user4866 updates the password4867 sets the new password to expire immediately4868 when the new password is invalid4869 shows the edit page again4870 returns the error message4871 does not update the password4872 when the new password does not match the password confirmation4873 shows the edit page again4874 returns the error message4875 does not update the password4876 POST impersonate4877 when the user is blocked4878 shows a notice4879 doesn't sign us in as the user4880 when the user is not blocked4881 stores the impersonator in the session4882 signs us in as the user4883 logs the beginning of the impersonation event4884 redirects to root4885 shows a notice4886 when impersonation is disabled4887 shows error page4888Adding an AwardEmoji4889 when the user does not have permission4890 behaves like a mutation that does not create an AwardEmoji4891 should not change `AwardEmoji.count`4892 behaves like a mutation that returns top-level errors4893 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]4894 when the user has permission4895 when the given awardable is not an Awardable4896 behaves like a mutation that does not create an AwardEmoji4897 should not change `AwardEmoji.count`4898 behaves like a mutation that returns top-level errors4899 should eq ["Cannot award emoji to this resource"]4900 when the given awardable is an Awardable but still cannot be awarded an emoji4901 behaves like a mutation that does not create an AwardEmoji4902 should not change `AwardEmoji.count`4903 behaves like a mutation that returns top-level errors4904 should eq ["Cannot award emoji to this resource"]4905 when the given awardable an Awardable4906 creates an emoji4907 returns the emoji4908 marking Todos as done4909 type: :issue, expectation: true4910 should eq true4911 type: :merge_request, expectation: true4912 should eq true4913 type: :project_snippet, expectation: false4914 should eq false4915 for notes4916 regular Notes4917 marks the Todo as done4918 PersonalSnippet Notes4919 does not mark the Todo as done4920 when there were active record validation errors4921 returns an empty awardEmoji4922 behaves like a mutation that does not create an AwardEmoji4923 should not change `AwardEmoji.count`4924 behaves like a mutation that returns errors in the response4925 should eq ["Error 1", "Error 2"]4926API::Snippets4927 GET /snippets/4928 returns snippets available4929 hides private snippets from regular user4930 returns 404 for non-authenticated4931 does not return snippets related to a project with disable feature visibility4932 GET /snippets/public4933 returns all snippets with public visibility from all users4934 GET /snippets/:id/raw4935 requires authentication4936 returns raw text4937 forces attachment content disposition4938 returns 404 for invalid snippet id4939 hides private snippets from ordinary users4940 shows internal snippets to ordinary users4941 GET /snippets/:id4942 requires authentication4943 returns snippet json4944 shows private snippets to an admin4945 hides private snippets from an ordinary user4946 shows internal snippets to an ordinary user4947 returns 404 for invalid snippet id4948 POST /snippets/4949 creates a new snippet4950 returns 400 for missing parameters4951 when the snippet is spam4952 when the snippet is private4953 creates the snippet4954 when the snippet is public4955 rejects the shippet4956 creates a spam log4957 PUT /snippets/:id4958 updates snippet4959 returns 404 for invalid snippet id4960 returns 404 for another user's snippet4961 returns 400 for missing parameters4962 when the snippet is spam4963 when the snippet is private4964 updates the snippet4965 when the snippet is public4966 rejects the shippet4967 creates a spam log4968 when a private snippet is made public4969 rejects the snippet4970 creates a spam log4971 DELETE /snippets/:id4972 deletes snippet4973 returns 404 for invalid snippet id4974 behaves like 412 response4975 for a modified ressource4976 returns 4124977 for an unmodified ressource4978 returns accepted4979 GET /snippets/:id/user_agent_detail4980 exposes known attributes4981 returns unauthorized for non-admin users4982Projects::Tags::ReleasesController4983 GET #edit4984 initializes a new release4985 retrieves an existing release4986 PUT #update4987 updates release note description4988 creates a release if one does not exist4989 sets the release name, sha, and author for a new release4990 deletes release when description is empty4991 does nothing when description is empty and the tag does not have a release4992API::Namespaces4993 GET /namespaces4994 when unauthenticated4995 returns authentication error4996 when authenticated as admin4997 returns correct attributes4998 admin: returns an array of all namespaces4999 admin: returns an array of matched namespaces5000 when authenticated as a regular user5001 returns correct attributes when user can admin group5002 returns correct attributes when user cannot admin group5003 user: returns an array of namespaces5004 admin: returns an array of matched namespaces5005 GET /namespaces/:id5006 when unauthenticated5007 returns authentication error5008 when authenticated as regular user5009 when requested namespace is not owned by user5010 when requesting group5011 returns not-found5012 when requesting personal namespace5013 returns not-found5014 when requested namespace is owned by user5015 behaves like namespace reader5016 when namespace exists5017 when requested by ID5018 when requesting group5019 behaves like can access namespace5020 returns namespace details5021 when requesting personal namespace5022 behaves like can access namespace5023 returns namespace details5024 when requested by path5025 when requesting group5026 behaves like can access namespace5027 returns namespace details5028 when requesting personal namespace5029 behaves like can access namespace5030 returns namespace details5031 when namespace doesn't exist5032 returns not-found5033 when authenticated as admin5034 when requested namespace is not owned by user5035 when requesting group5036 behaves like can access namespace5037 returns namespace details5038 when requesting personal namespace5039 behaves like can access namespace5040 returns namespace details5041 when requested namespace is owned by user5042 behaves like namespace reader5043 when namespace exists5044 when requested by ID5045 when requesting group5046 behaves like can access namespace5047 returns namespace details5048 when requesting personal namespace5049 behaves like can access namespace5050 returns namespace details5051 when requested by path5052 when requesting group5053 behaves like can access namespace5054 returns namespace details5055 when requesting personal namespace5056 behaves like can access namespace5057 returns namespace details5058 when namespace doesn't exist5059 returns not-found5060GitlabSchema configurations5061 regular queries5062 behaves like imposing query limits5063 #max_complexity5064 when complexity is too high5065 shows an error5066 #max_depth5067 when query depth is too high5068 shows error5069 when query depth is within range5070 has no error5071 multiplexed queries5072 does not authenticate all queries5073 behaves like imposing query limits5074 fails all queries when only one of the queries is too complex5075 #max_complexity5076 when complexity is too high5077 shows an error5078 #max_depth5079 when query depth is too high5080 shows error5081 when query depth is within range5082 has no error5083 authentication5084 authenticates all queries5085 when IntrospectionQuery5086 is not too complex5087 logging5088 logs the query complexity and depth5089 logs using `format_message`5090 global id's5091 uses GlobalID to expose ids5092getting a tree in a project5093 when path does not exist5094 returns empty tree5095 returns null commit5096 when ref does not exist5097 returns empty tree5098 returns null commit5099 when ref and path exist5100 returns tree5101 returns blobs, subtrees and submodules inside tree5102 returns tree latest commit5103 when current user is nil5104 returns empty project5105Projects::PagesController5106 GET show5107 returns 200 status5108 when the project is in a subgroup5109 returns a 200 status code5110 DELETE destroy5111 returns 302 status5112 when user is developer5113 returns 404 status5114 pages disabled5115 GET show5116 returns 404 status5117 DELETE destroy5118 returns 404 status5119 PATCH update5120 returns 302 status5121 redirects back to the pages settings5122 calls the update service5123Groups::Settings::CiCdController5124 GET #show5125 when user is owner5126 renders show with 200 status code5127 when user is not owner5128 renders a 4045129 external authorization5130 renders show with 200 status code5131 PUT #reset_registration_token5132 when user is owner5133 resets runner registration token5134 redirects the user to admin runners page5135 when user is not owner5136 renders a 4045137 PATCH #update_auto_devops5138 when user does not have enough permission5139 should respond with numeric status code 4045140 when user has enough privileges5141 should redirect to "/groups/group260/-/settings/ci_cd"5142 when service execution went wrong5143 returns a flash alert5144 when service execution was successful5145 returns a flash notice5146 when changing auto devops value5147 when explicitly enabling auto devops5148 updates group attribute5149 when explicitly disabling auto devops5150 updates group attribute5151Explore::ProjectsController5152 when user is signed in5153 GET #index.json5154 should respond with 2005155 GET #trending.json5156 should respond with 2005157 GET #starred.json5158 should respond with 2005159 GET #trending5160 sorting by update date5161 sorts by last updated5162 sorts by oldest updated5163 user preference sorting5164 behaves like set sort order from user preference5165 #set_sort_order_from_user_preference5166 when database is in read-only mode5167 does not update user preference5168 when database is not in read-only mode5169 updates user preference5170 when user is not signed in5171 GET #index.json5172 should respond with 2005173 GET #trending.json5174 should respond with 2005175 GET #starred.json5176 should respond with 2005177 GET #trending5178 sorting by update date5179 sorts by last updated5180 sorts by oldest updated5181 user preference sorting5182 does not set sort order from user preference5183Projects::FindFileController5184 GET #show5185 valid branch5186 should respond with 2005187 invalid branch5188 should respond with 4045189 GET #list5190 valid branch5191 returns an array of file path list5192 invalid branch5193 responds with status 4045194API::GroupContainerRepositories5195 GET /groups/:id/registry/repositories5196 behaves like rejected container repository access5197 for guest5198 returns forbidden5199 behaves like rejected container repository access5200 for anonymous5201 returns not_found5202 behaves like returns repositories for allowed users5203 for reporter5204 returns a list of repositories5205 returns a matching schema5206 with tags param5207 returns a list of repositories and their tags5208 returns a matching schema5209 with invalid group id5210 returns not found5211getting a repository in a project5212 returns repository5213 as a non-authorized user5214 returns nil5215 when the repository is only accessible to members5216 returns a repository for the owner5217 returns nil for the repository for other users5218 returns nil for the repository for other users5219GraphQL5220 logging5221 with no variables5222 behaves like logging a graphql query5223 logs a query with the expected params5224 does not instantiate any query analyzers5225 with variables5226 behaves like logging a graphql query5227 logs a query with the expected params5228 does not instantiate any query analyzers5229 when there is an error in the logger5230 logs the exception in Sentry and continues with the request5231 invalid variables5232 returns an error5233 authentication5234 allows access to public data without authentication5235 does not authenticate a user with an invalid CSRF5236 authenticates a user with a valid session token5237 token authentication5238 Authenticates users with a PAT5239 when the personal access token has no api scope5240 does not log the user in5241 testing for Gitaly calls5242 behaves like a working graphql query5243 returns a successful response5244 when Gitaly is called5245 logs a warning that the 'calls_gitaly' field declaration is missing5246API::NotificationSettings5247 GET /notification_settings5248 returns global notification settings for the current user5249 PUT /notification_settings5250 updates global notification settings for the current user5251 PUT /notification_settings5252 fails on non-user email address5253 GET /groups/:id/notification_settings5254 returns group level notification settings for the current user5255 PUT /groups/:id/notification_settings5256 updates group level notification settings for the current user5257 GET /projects/:id/notification_settings5258 returns project level notification settings for the current user5259 PUT /projects/:id/notification_settings5260 updates project level notification settings for the current user5261 PUT /projects/:id/notification_settings5262 fails on invalid level5263Admin::GroupsController5264 DELETE #destroy5265 schedules a group destroy5266 redirects to the admin group path5267 PUT #members_update5268 adds user to members5269 can add unlimited members5270 adds no user to members5271 updates the project_creation_level successfully5272 updates the subgroup_creation_level successfully5273Dashboard::LabelsController5274 #index5275 returns global labels for projects the user has a relationship with5276 behaves like disabled when using an external authorization service5277 works when the feature is not enabled5278 renders a 404 with a message when the feature is enabled5279API::Applications5280 POST /applications5281 authenticated and authorized user5282 creates and returns an OAuth application5283 does not allow creating an application with the wrong redirect_uri format5284 does not allow creating an application with a forbidden URI format5285 does not allow creating an application without a name5286 does not allow creating an application without a redirect_uri5287 does not allow creating an application without scopes5288 authorized user without authorization5289 does not create application5290 non-authenticated user5291 does not create application5292 GET /applications5293 authenticated and authorized user5294 can list application5295 authorized user without authorization5296 cannot list application5297 non-authenticated user5298 cannot list application5299 DELETE /applications/:id5300 authenticated and authorized user5301 can delete an application5302 authorized user without authorization5303 cannot delete an application5304 non-authenticated user5305 cannot delete an application5306Projects::ErrorTrackingController5307 GET #index5308 html5309 renders index with 200 status code5310 with insufficient permissions5311 returns 4045312 with an anonymous user5313 redirects to sign-in page5314 format json5315 service result is successful5316 returns a list of errors5317 service result is erroneous5318 without http_status5319 returns 400 with message5320 with explicit http_status5321 returns http_status with message5322 POST #list_projects5323 with insufficient permissions5324 returns 4045325 with an anonymous user5326 redirects to sign-in page5327 with authorized user5328 service result is successful5329 returns a list of projects5330 service result is erroneous5331 without http_status5332 returns 400 with message5333 with explicit http_status5334 returns http_status with message5335API::UserCounts5336 GET /user_counts5337 when unauthenticated5338 returns authentication error5339 when authenticated5340 returns open counts for current user5341 updates the mr count when a new mr is assigned5342AbuseReportsController5343 GET new5344 when the user has already been deleted5345 redirects the reporter to root_path5346 when the user has already been blocked5347 redirects the reporter to the user's profile5348 POST create5349 with valid attributes5350 saves the abuse report5351 calls notify5352 redirects back to the reported user5353 with invalid attributes5354 renders new5355LfsRequest5356 #storage_project5357 assigns the project as storage project5358 assigns the source of a forked project5359Profiles::KeysController5360 #get_keys5361 non existent user5362 does not generally work5363 user with no keys5364 does generally work5365 renders all keys separated with a new line5366 responds with text/plain content type5367 user with keys5368 does generally work5369 renders all non deploy keys separated with a new line5370 does not render the comment of the key5371 responds with text/plain content type5372Users::TermsController5373 GET #index5374 redirects when no terms exist5375 when terms exist5376 shows terms when they exist5377 shows a message when the user already accepted the terms5378 POST #accept5379 saves that the user accepted the terms5380 redirects to a path when specified5381 redirects to the referer when no redirect specified5382 redirecting to another domain5383 is prevented when passing a redirect param5384 is prevented when redirecting to the referer5385 POST #decline5386 stores that the user declined the terms5387 signs out the user5388Groups::LabelsController5389 GET #index5390 returns group and project labels by default5391 with ancestor group5392 returns ancestor group labels5393 external authorization5394 behaves like disabled when using an external authorization service5395 works when the feature is not enabled5396 renders a 404 with a message when the feature is enabled5397 POST #toggle_subscription5398 allows user to toggle subscription on group labels5399Projects::HooksController5400 #index5401 redirects to settings/integrations page5402 #create5403 sets all parameters5404Import::FogbugzController5405 POST #callback5406 attempts to contact Fogbugz server5407 POST #create_user_map5408 stores the user map in the session5409 GET status5410 assigns variables5411 does not show already added project5412HealthController5413 #readiness5414 accessed from whitelisted ip5415 behaves like endpoint responding with readiness data5416 responds with readiness checks data5417 accessed from not whitelisted ip5418 responds with resource not found5419 accessed with valid token5420 token passed in request header5421 behaves like endpoint responding with readiness data5422 responds with readiness checks data5423 token passed as URL param5424 behaves like endpoint responding with readiness data5425 responds with readiness checks data5426 #liveness5427 accessed from whitelisted ip5428 behaves like endpoint responding with liveness data5429 responds with liveness checks data5430 accessed from not whitelisted ip5431 responds with resource not found5432 accessed with valid token5433 token passed in request header5434 behaves like endpoint responding with liveness data5435 responds with liveness checks data5436 token passed as URL param5437 behaves like endpoint responding with liveness data5438 responds with liveness checks data5439Admin::SpamLogsController5440 #index5441 lists all spam logs5442 #destroy5443 removes only the spam log when removing log5444 removes user and his spam logs when removing the user5445 #mark_as_ham5446 submits the log as ham5447AbuseReportMailer5448 .notify5449 behaves like appearance header and footer enabled5450 contains header and footer5451 behaves like appearance header and footer not enabled5452 does not contain header and footer5453 with admin_notification_email set5454 sends to the admin_notification_email5455 includes the user in the subject5456 with no admin_notification_email set5457 returns early5458InstanceStatistics::CohortsController5459 renders a 404 when the usage ping is disabled5460 behaves like instance statistics availability5461 GET #index5462DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "CAST(DATE_TRUNC('month', created_at) AS date) ASC", "CAST(DATE_TRUNC('month', last_activity_on) AS date) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from counts_by_month at /builds/gitlab-org/gitlab-ee/app/services/cohorts_service.rb:91)5463 is available when the feature is available publicly5464 renders a 404 when the feature is not available publicly5465 for admins5466DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "CAST(DATE_TRUNC('month', created_at) AS date) ASC", "CAST(DATE_TRUNC('month', last_activity_on) AS date) ASC". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from counts_by_month at /builds/gitlab-org/gitlab-ee/app/services/cohorts_service.rb:91)5467 allows access when the feature is not available publicly5468ContinueParams5469 returns an empty hash if params are not present5470 cleans up any params that are not allowed5471 does not allow cross host redirection5472 allows redirecting to a path with querystring5473API::ImportGithub5474 POST /import/github5475 returns 201 response when the project is imported successfully5476 returns 422 response when user can not create projects in the chosen namespace5477API::Avatar5478 GET /avatar5479 avatar uploaded to GitLab5480 user with matching public email address5481 returns the avatar url5482 no user with matching public email address5483 returns the avatar url from Gravatar5484 avatar uploaded to Gravatar5485 user with matching public email address5486 returns the avatar url from Gravatar5487 no user with matching public email address5488 returns the avatar url from Gravatar5489 public visibility level restricted5490 when authenticated5491 returns the avatar url5492 when unauthenticated5493 behaves like 403 response5494 returns 4035495UserCalloutsController5496 POST #create5497 with valid feature name5498 when callout entry does not exist5499 creates a callout entry with dismissed state5500 returns success5501 when callout entry already exists5502 returns success5503 with invalid feature name5504 returns bad request5505IssuableCollections5506 #page_count_for_relation5507 returns the number of pages5508 #finder_options5509 scalar params5510 only allows whitelisted params5511 array params5512 only allows whitelisted params5513 search using an issue iid5514 mutates the search into a filter by iid5515PasswordsController5516 #check_password_authentication_available5517 when password authentication is disabled for the web interface and Git5518 prevents a password reset5519 when reset email belongs to an ldap user5520 prevents a password reset5521MetricsController5522 #index5523 accessed from whitelisted ip5524 behaves like endpoint providing metrics5525 returns prometheus metrics5526 prometheus metrics are disabled5527 returns proper response5528 accessed from ip in whitelisted range5529 behaves like endpoint providing metrics5530 returns prometheus metrics5531 prometheus metrics are disabled5532 returns proper response5533 accessed from not whitelisted ip5534 returns the expected error response5535Admin::RequestsProfilesController5536 #show5537 when loading HTML profile5538 renders the data5539 when loading TXT profile5540 renders the data5541 when loading PDF profile5542 fails to render the data5543Knapsack report was generated. Preview:5544{5545 "spec/requests/api/commits_spec.rb": 193.44603776931763,5546 "spec/requests/api/issues/get_project_issues_spec.rb": 95.22581338882446,5547 "spec/requests/api/branches_spec.rb": 56.830987215042114,5548 "spec/controllers/projects/notes_controller_spec.rb": 62.63071632385254,5549 "spec/requests/lfs_http_spec.rb": 64.80097484588623,5550 "spec/requests/api/graphql/mutations/notes/create/note_spec.rb": 41.004337549209595,5551 "spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb": 36.18509030342102,5552 "spec/requests/api/issues/issues_spec.rb": 40.65426421165466,5553 "spec/controllers/boards/issues_controller_spec.rb": 39.53692269325256,5554 "spec/requests/user_activity_spec.rb": 40.46977782249451,5555 "spec/controllers/projects/branches_controller_spec.rb": 26.3683979511261,5556 "spec/requests/api/graphql/mutations/notes/destroy_spec.rb": 17.50410532951355,5557 "spec/requests/api/group_clusters_spec.rb": 19.153850317001343,5558 "spec/requests/api/deployments_spec.rb": 20.344456911087036,5559 "spec/controllers/projects/snippets_controller_spec.rb": 17.60285472869873,5560 "spec/controllers/projects/merge_requests/conflicts_controller_spec.rb": 14.424451351165771,5561 "spec/controllers/groups/children_controller_spec.rb": 15.09110951423645,5562 "spec/requests/api/issues/put_projects_issues_spec.rb": 13.233471393585205,5563 "spec/controllers/boards/lists_controller_spec.rb": 11.643041610717773,5564 "spec/controllers/projects/compare_controller_spec.rb": 11.147966861724854,5565 "spec/requests/api/award_emoji_spec.rb": 9.893916845321655,5566 "spec/requests/api/pipeline_schedules_spec.rb": 9.294862747192383,5567 "spec/requests/api/variables_spec.rb": 9.125801801681519,5568 "spec/controllers/admin/services_controller_spec.rb": 9.0671968460083,5569 "spec/controllers/groups/group_members_controller_spec.rb": 8.917916536331177,5570 "spec/controllers/projects/commit_controller_spec.rb": 7.043969631195068,5571 "spec/requests/api/protected_tags_spec.rb": 7.1480700969696045,5572 "spec/controllers/admin/clusters_controller_spec.rb": 7.072968482971191,5573 "spec/controllers/search_controller_spec.rb": 5.727646350860596,5574 "spec/requests/api/project_snippets_spec.rb": 5.5096435546875,5575 "spec/controllers/admin/application_settings_controller_spec.rb": 7.013131618499756,5576 "spec/controllers/projects/deployments_controller_spec.rb": 5.437074661254883,5577 "spec/controllers/application_controller_spec.rb": 7.062726974487305,5578 "spec/controllers/projects/services_controller_spec.rb": 4.97827935218811,5579 "spec/controllers/projects/badges_controller_spec.rb": 5.09835410118103,5580 "spec/controllers/admin/users_controller_spec.rb": 4.867483854293823,5581 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 4.332429647445679,5582 "spec/requests/api/snippets_spec.rb": 4.4188055992126465,5583 "spec/controllers/projects/tags/releases_controller_spec.rb": 3.4106247425079346,5584 "spec/requests/api/namespaces_spec.rb": 4.209439992904663,5585 "spec/requests/api/graphql/gitlab_schema_spec.rb": 2.9263272285461426,5586 "spec/requests/api/graphql/project/tree/tree_spec.rb": 3.3810837268829346,5587 "spec/controllers/projects/pages_controller_spec.rb": 3.051332950592041,5588 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 2.23587965965271,5589 "spec/controllers/explore/projects_controller_spec.rb": 2.4898500442504883,5590 "spec/controllers/projects/find_file_controller_spec.rb": 2.2599356174468994,5591 "spec/requests/api/group_container_repositories_spec.rb": 2.1391332149505615,5592 "spec/requests/api/graphql/project/repository_spec.rb": 1.757697582244873,5593 "spec/requests/api/graphql_spec.rb": 1.5789542198181152,5594 "spec/requests/api/notification_settings_spec.rb": 2.072384834289551,5595 "spec/controllers/admin/groups_controller_spec.rb": 1.1543326377868652,5596 "spec/controllers/dashboard/labels_controller_spec.rb": 1.3497495651245117,5597 "spec/requests/api/applications_spec.rb": 1.4878177642822266,5598 "spec/controllers/projects/error_tracking_controller_spec.rb": 1.4154162406921387,5599 "spec/requests/api/user_counts_spec.rb": 1.346041202545166,5600 "spec/controllers/abuse_reports_controller_spec.rb": 0.7356417179107666,5601 "spec/controllers/concerns/lfs_request_spec.rb": 1.1728384494781494,5602 "spec/controllers/profiles/keys_controller_spec.rb": 0.8764121532440186,5603 "spec/controllers/users/terms_controller_spec.rb": 1.0869405269622803,5604 "spec/controllers/groups/labels_controller_spec.rb": 0.7336063385009766,5605 "spec/controllers/projects/hooks_controller_spec.rb": 0.6804091930389404,5606 "spec/controllers/import/fogbugz_controller_spec.rb": 0.6334593296051025,5607 "spec/controllers/health_controller_spec.rb": 0.9367315769195557,5608 "spec/controllers/admin/spam_logs_controller_spec.rb": 0.5570390224456787,5609 "spec/mailers/abuse_report_mailer_spec.rb": 0.5365219116210938,5610 "spec/controllers/instance_statistics/cohorts_controller_spec.rb": 0.4248955249786377,5611 "spec/controllers/concerns/continue_params_spec.rb": 0.5502395629882812,5612 "spec/requests/api/import_github_spec.rb": 0.38397884368896484,5613 "spec/requests/api/avatar_spec.rb": 0.4005141258239746,5614 "spec/controllers/user_callouts_controller_spec.rb": 0.3064556121826172,5615 "spec/controllers/concerns/issuable_collections_spec.rb": 0.163466215133667,5616 "spec/controllers/passwords_controller_spec.rb": 0.46517181396484375,5617 "spec/controllers/metrics_controller_spec.rb": 0.04414772987365723,5618 "spec/controllers/admin/requests_profiles_controller_spec.rb": 0.06335520744323735619}5620Knapsack global time execution for tests: 16m 48s5621Finished in 17 minutes 32 seconds (files took 45.59 seconds to load)56221898 examples, 0 failures5623$ date5624Fri Aug 23 11:01:10 UTC 20195626$ date5627Fri Aug 23 11:01:11 UTC 20195630coverage/: found 5 matching files 5631knapsack/: found 5 matching files 5632rspec_flaky/: found 4 matching files 5633rspec_profiling/: found 1 matching files 5634WARNING: tmp/capybara/: no matching files 5635tmp/memory_test/: found 2 matching files 5636Uploading artifacts to coordinator... ok id=278682957 responseStatus=201 Created token=DSEaCvxd5637Uploading artifacts...5638junit_rspec.xml: found 1 matching files 5639Uploading artifacts to coordinator... ok id=278682957 responseStatus=201 Created token=DSEaCvxd5640Job succeeded