rspec integration pg9-foss 5/6
Passed Started
by
@grzesiek

Grzegorz Bizon
1Running with gitlab-runner 12.3.0 (a8a019e0)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
00:19
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:61c59b9a763f02dd11635b20ef117812dad973b95a68bd125f3a1767f9159cf9 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:f9d774eafe0d9aa813860e94490efffec6041d63a786133749974c15c055663e for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...13Using docker image sha256:3689b07c936dec3fdafc5ec40ed80a6cfdba089394a505d60f2a6926b0b982a3 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 14 Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1571120531-a6e7be21...
00:11
16Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/18 * [new ref] refs/pipelines/88859459 -> refs/pipelines/8885945919 a40fa70a3..8bd324dc2 master -> origin/master20Checking out f5bf17c9 as master...21Removing .gitlab_shell_secret22Removing .gitlab_workhorse_secret23Removing .go/24Removing config/database.yml25Removing config/database_geo.yml26Removing config/gitlab.yml27Removing config/redis.cache.yml28Removing config/redis.queues.yml29Removing config/redis.shared_state.yml30Removing config/resque.yml31Removing config/secrets.yml32Removing coverage/33Removing junit_rspec.xml34Removing knapsack/35Removing log/api_json.log36Removing log/application.log37Removing log/audit_json.log38Removing log/gitaly-test.log39Removing log/graphql_json.log40Removing log/grpc.log41Removing log/importer.log42Removing log/test_json.log43Removing node_modules/44Removing public/assets/45Removing rspec_flaky/46Removing rspec_profiling/47Removing tmp/cache/48Removing tmp/capybara/49Removing tmp/memory_test/50Removing tmp/prometheus_multiproc_dir/counter_process_201-0.db51Removing tmp/prometheus_multiproc_dir/histogram_process_201-0.db52Removing tmp/tests/53Removing vendor/gitaly-ruby/54Removing vendor/ruby/55Skipping Git submodules setup57Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 58Successfully extracted cache60Downloading artifacts from coordinator... ok id=321109103 responseStatus=200 OK token=XMSy3Ehb61Downloading artifacts for setup-test-env (321109105)...62Downloading artifacts from coordinator... ok id=321109105 responseStatus=200 OK token=wfkozyzh63WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 64Downloading artifacts for retrieve-tests-metadata (321109113)...65Downloading artifacts from coordinator... ok id=321109113 responseStatus=200 OK token=rMBaZ9wv67$ date68Tue Oct 15 08:39:43 UTC 201969$ export GOPATH=$CI_PROJECT_DIR/.go70$ mkdir -p $GOPATH71$ source scripts/utils.sh72$ source scripts/prepare_build.sh73Bundler version 1.17.274Warning: 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`.75The Gemfile's dependencies are satisfied76Successfully installed knapsack-1.18.0771 gem installed78CREATE ROLE79GRANT80Dropped database 'gitlabhq_test'81Created database 'gitlabhq_test'82-- enable_extension("pg_trgm")83 -> 0.0300s84-- enable_extension("plpgsql")85 -> 0.0030s86-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})87 -> 0.0044s88-- create_table("alerts_service_data", {:force=>:cascade})89 -> 0.0062s90-- create_table("allowed_email_domains", {:force=>:cascade})91 -> 0.0044s92-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})93 -> 0.0145s94-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})95 -> 0.0138s96-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})97 -> 0.0078s98-- create_table("analytics_repository_file_commits", {:force=>:cascade})99 -> 0.0065s100-- create_table("analytics_repository_files", {:force=>:cascade})101 -> 0.0049s102-- create_table("appearances", {:id=>:serial, :force=>:cascade})103 -> 0.0036s104-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})105 -> 0.0027s106-- create_table("application_settings", {:id=>:serial, :force=>:cascade})107 -> 0.0962s108-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})109 -> 0.0062s110-- create_table("approval_merge_request_rules", {:force=>:cascade})111 -> 0.0155s112-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})113 -> 0.0063s114-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})115 -> 0.0064s116-- create_table("approval_merge_request_rules_users", {:force=>:cascade})117 -> 0.0064s118-- create_table("approval_project_rules", {:force=>:cascade})119 -> 0.0099s120-- create_table("approval_project_rules_groups", {:force=>:cascade})121 -> 0.0064s122-- create_table("approval_project_rules_users", {:force=>:cascade})123 -> 0.0066s124-- create_table("approvals", {:id=>:serial, :force=>:cascade})125 -> 0.0066s126-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})127 -> 0.0074s128-- create_table("approvers", {:id=>:serial, :force=>:cascade})129 -> 0.0071s130-- create_table("audit_events", {:id=>:serial, :force=>:cascade})131 -> 0.0073s132-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})133 -> 0.0069s134-- create_table("badges", {:id=>:serial, :force=>:cascade})135 -> 0.0071s136-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})137 -> 0.0065s138-- create_table("board_group_recent_visits", {:force=>:cascade})139 -> 0.0107s140-- create_table("board_labels", {:id=>:serial, :force=>:cascade})141 -> 0.0065s142-- create_table("board_project_recent_visits", {:force=>:cascade})143 -> 0.0106s144-- create_table("boards", {:id=>:serial, :force=>:cascade})145 -> 0.0098s146-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})147 -> 0.0052s148-- create_table("chat_names", {:id=>:serial, :force=>:cascade})149 -> 0.0073s150-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})151 -> 0.0047s152-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})153 -> 0.0049s154-- create_table("ci_build_trace_chunks", {:force=>:cascade})155 -> 0.0049s156-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})157 -> 0.0049s158-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})159 -> 0.0087s160-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})161 -> 0.0573s162-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})163 -> 0.0096s164-- create_table("ci_builds_runner_session", {:force=>:cascade})165 -> 0.0048s166-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})167 -> 0.0064s168-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})169 -> 0.0138s170-- create_table("ci_job_variables", {:force=>:cascade})171 -> 0.0075s172-- create_table("ci_pipeline_chat_data", {:force=>:cascade})173 -> 0.0070s174-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})175 -> 0.0057s176-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})177 -> 0.0103s178-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})179 -> 0.0054s180-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})181 -> 0.0314s182-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})183 -> 0.0064s184-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})185 -> 0.0067s186-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})187 -> 0.0179s188-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})189 -> 0.0124s190-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})191 -> 0.0112s192-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})193 -> 0.0072s194-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})195 -> 0.0069s196-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})197 -> 0.0098s198-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})199 -> 0.0067s200-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})201 -> 0.0052s202-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})203 -> 0.0069s204-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})205 -> 0.0088s206-- create_table("clusters", {:id=>:serial, :force=>:cascade})207 -> 0.0124s208-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})209 -> 0.0053s210-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})211 -> 0.0053s212-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})213 -> 0.0054s214-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})215 -> 0.0072s216-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})217 -> 0.0053s218-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})219 -> 0.0052s220-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})221 -> 0.0082s222-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})223 -> 0.0161s224-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})225 -> 0.0073s226-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})227 -> 0.0076s228-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})229 -> 0.0062s230-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})231 -> 0.0053s232-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})233 -> 0.0058s234-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})235 -> 0.0118s236-- create_table("deployments", {:id=>:serial, :force=>:cascade})237 -> 0.0260s238-- create_table("design_management_designs", {:force=>:cascade})239 -> 0.0078s240-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})241 -> 0.0121s242-- create_table("design_management_versions", {:force=>:cascade})243 -> 0.0109s244-- create_table("draft_notes", {:force=>:cascade})245 -> 0.0132s246-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})247 -> 0.0049s248-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})249 -> 0.0044s250-- create_table("emails", {:id=>:serial, :force=>:cascade})251 -> 0.0119s252-- create_table("environments", {:id=>:serial, :force=>:cascade})253 -> 0.0147s254-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})255 -> 0.0079s256-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})257 -> 0.0057s258-- create_table("epics", {:id=>:serial, :force=>:cascade})259 -> 0.0275s260-- create_table("events", {:id=>:serial, :force=>:cascade})261 -> 0.0221s262-- create_table("external_pull_requests", {:force=>:cascade})263 -> 0.0068s264-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})265 -> 0.0064s266-- create_table("features", {:id=>:serial, :force=>:cascade})267 -> 0.0064s268-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})269 -> 0.0103s270-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})271 -> 0.0063s272-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})273 -> 0.0054s274-- create_table("geo_cache_invalidation_events", {:force=>:cascade})275 -> 0.0045s276-- create_table("geo_container_repository_updated_events", {:force=>:cascade})277 -> 0.0052s278-- create_table("geo_event_log", {:force=>:cascade})279 -> 0.0358s280-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})281 -> 0.0061s282-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})283 -> 0.0077s284-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})285 -> 0.0067s286-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})287 -> 0.0063s288-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})289 -> 0.0100s290-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})291 -> 0.0077s292-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})293 -> 0.0150s294-- create_table("geo_repositories_changed_events", {:force=>:cascade})295 -> 0.0053s296-- create_table("geo_repository_created_events", {:force=>:cascade})297 -> 0.0064s298-- create_table("geo_repository_deleted_events", {:force=>:cascade})299 -> 0.0064s300-- create_table("geo_repository_renamed_events", {:force=>:cascade})301 -> 0.0079s302-- create_table("geo_repository_updated_events", {:force=>:cascade})303 -> 0.0100s304-- create_table("geo_reset_checksum_events", {:force=>:cascade})305 -> 0.0053s306-- create_table("geo_upload_deleted_events", {:force=>:cascade})307 -> 0.0063s308-- create_table("gitlab_subscriptions", {:force=>:cascade})309 -> 0.0102s310-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})311 -> 0.0109s312-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})313 -> 0.0105s314-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})315 -> 0.0162s316-- create_table("grafana_integrations", {:force=>:cascade})317 -> 0.0061s318-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})319 -> 0.0092s320-- create_table("historical_data", {:id=>:serial, :force=>:cascade})321 -> 0.0030s322-- create_table("identities", {:id=>:serial, :force=>:cascade})323 -> 0.0122s324-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})325 -> 0.0085s326-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})327 -> 0.0065s328-- create_table("insights", {:id=>:serial, :force=>:cascade})329 -> 0.0085s330-- create_table("internal_ids", {:force=>:cascade})331 -> 0.0150s332-- create_table("ip_restrictions", {:force=>:cascade})333 -> 0.0068s334-- create_table("issue_assignees", {:id=>false, :force=>:cascade})335 -> 0.0070s336-- create_table("issue_links", {:id=>:serial, :force=>:cascade})337 -> 0.0111s338-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})339 -> 0.0087s340-- create_table("issue_tracker_data", {:force=>:cascade})341 -> 0.0075s342-- create_table("issues", {:id=>:serial, :force=>:cascade})343 -> 0.0503s344-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})345 -> 0.0067s346-- create_table("jira_connect_installations", {:force=>:cascade})347 -> 0.0067s348-- create_table("jira_connect_subscriptions", {:force=>:cascade})349 -> 0.0114s350-- create_table("jira_tracker_data", {:force=>:cascade})351 -> 0.0067s352-- create_table("keys", {:id=>:serial, :force=>:cascade})353 -> 0.0123s354-- create_table("label_links", {:id=>:serial, :force=>:cascade})355 -> 0.0084s356-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})357 -> 0.0113s358-- create_table("labels", {:id=>:serial, :force=>:cascade})359 -> 0.0212s360-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})361 -> 0.0042s362-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})363 -> 0.0101s364-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})365 -> 0.0087s366-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})367 -> 0.0080s368-- create_table("licenses", {:id=>:serial, :force=>:cascade})369 -> 0.0033s370-- create_table("list_user_preferences", {:force=>:cascade})371 -> 0.0105s372-- create_table("lists", {:id=>:serial, :force=>:cascade})373 -> 0.0158s374-- create_table("members", {:id=>:serial, :force=>:cascade})375 -> 0.0237s376-- create_table("merge_request_assignees", {:force=>:cascade})377 -> 0.0105s378-- create_table("merge_request_blocks", {:force=>:cascade})379 -> 0.0087s380-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})381 -> 0.0082s382-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})383 -> 0.0056s384-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})385 -> 0.0106s386-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})387 -> 0.0243s388-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})389 -> 0.0622s390-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})391 -> 0.0080s392-- create_table("merge_trains", {:force=>:cascade})393 -> 0.0132s394-- create_table("milestone_releases", {:id=>false, :force=>:cascade})395 -> 0.0061s396-- create_table("milestones", {:id=>:serial, :force=>:cascade})397 -> 0.0193s398-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})399 -> 0.0042s400-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})401 -> 0.0076s402-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})403 -> 0.0062s404-- create_table("namespaces", {:id=>:serial, :force=>:cascade})405 -> 0.0554s406-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})407 -> 0.0073s408-- create_table("notes", {:id=>:serial, :force=>:cascade})409 -> 0.0296s410-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})411 -> 0.0133s412-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})413 -> 0.0066s414-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})415 -> 0.0150s416-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})417 -> 0.0099s418-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})419 -> 0.0057s420-- create_table("operations_feature_flag_scopes", {:force=>:cascade})421 -> 0.0077s422-- create_table("operations_feature_flags", {:force=>:cascade})423 -> 0.0058s424-- create_table("operations_feature_flags_clients", {:force=>:cascade})425 -> 0.0078s426-- create_table("packages_maven_metadata", {:force=>:cascade})427 -> 0.0059s428-- create_table("packages_package_files", {:force=>:cascade})429 -> 0.0061s430-- create_table("packages_package_metadata", {:force=>:cascade})431 -> 0.0058s432-- create_table("packages_package_tags", {:force=>:cascade})433 -> 0.0058s434-- create_table("packages_packages", {:force=>:cascade})435 -> 0.0088s436-- create_table("pages_domain_acme_orders", {:force=>:cascade})437 -> 0.0091s438-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})439 -> 0.0219s440-- create_table("path_locks", {:id=>:serial, :force=>:cascade})441 -> 0.0105s442-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})443 -> 0.0097s444-- create_table("plans", {:id=>:serial, :force=>:cascade})445 -> 0.0063s446-- create_table("pool_repositories", {:force=>:cascade})447 -> 0.0104s448-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})449 -> 0.0058s450-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})451 -> 0.0022s452-- create_table("project_aliases", {:force=>:cascade})453 -> 0.0076s454-- create_table("project_authorizations", {:id=>false, :force=>:cascade})455 -> 0.0058s456-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})457 -> 0.0057s458-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})459 -> 0.0063s460-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})461 -> 0.0087s462-- create_table("project_daily_statistics", {:force=>:cascade})463 -> 0.0056s464-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})465 -> 0.0072s466-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})467 -> 0.0033s468-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})469 -> 0.0092s470-- create_table("project_features", {:id=>:serial, :force=>:cascade})471 -> 0.0082s472-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})473 -> 0.0090s474-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})475 -> 0.0062s476-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})477 -> 0.0041s478-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})479 -> 0.0022s480-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})481 -> 0.0194s482-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})483 -> 0.0073s484-- create_table("project_repositories", {:force=>:cascade})485 -> 0.0114s486-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})487 -> 0.0197s488-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})489 -> 0.0120s490-- create_table("project_tracing_settings", {:force=>:cascade})491 -> 0.0061s492-- create_table("projects", {:id=>:serial, :force=>:cascade})493 -> 0.0890s494-- create_table("prometheus_alert_events", {:force=>:cascade})495 -> 0.0094s496-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})497 -> 0.0112s498-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})499 -> 0.0150s500-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})501 -> 0.0105s502-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})503 -> 0.0101s504-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})505 -> 0.0118s506-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})507 -> 0.0092s508-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})509 -> 0.0107s510-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})511 -> 0.0083s512-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})513 -> 0.0109s514-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})515 -> 0.0081s516-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})517 -> 0.0047s518-- create_table("push_rules", {:id=>:serial, :force=>:cascade})519 -> 0.0249s520-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})521 -> 0.0197s522-- create_table("release_links", {:force=>:cascade})523 -> 0.0207s524-- create_table("releases", {:id=>:serial, :force=>:cascade})525 -> 0.0224s526-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})527 -> 0.0197s528-- create_table("repository_languages", {:id=>false, :force=>:cascade})529 -> 0.0085s530-- create_table("resource_label_events", {:force=>:cascade})531 -> 0.0384s532-- create_table("reviews", {:force=>:cascade})533 -> 0.0176s534-- create_table("routes", {:id=>:serial, :force=>:cascade})535 -> 0.0203s536-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})537 -> 0.0126s538-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})539 -> 0.0121s540-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})541 -> 0.0121s542-- create_table("services", {:id=>:serial, :force=>:cascade})543 -> 0.0258s544-- create_table("shards", {:id=>:serial, :force=>:cascade})545 -> 0.0156s546-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})547 -> 0.0148s548-- create_table("smartcard_identities", {:force=>:cascade})549 -> 0.0135s550-- create_table("snippets", {:id=>:serial, :force=>:cascade})551 -> 0.0313s552-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})553 -> 0.0083s554-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})555 -> 0.0086s556-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})557 -> 0.0049s558-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})559 -> 0.0102s560-- create_table("suggestions", {:force=>:cascade})561 -> 0.0094s562-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})563 -> 0.0068s564-- create_table("taggings", {:id=>:serial, :force=>:cascade})565 -> 0.0138s566-- create_table("tags", {:id=>:serial, :force=>:cascade})567 -> 0.0097s568-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})569 -> 0.0123s570-- create_table("timelogs", {:id=>:serial, :force=>:cascade})571 -> 0.0103s572-- create_table("todos", {:id=>:serial, :force=>:cascade})573 -> 0.0277s574-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})575 -> 0.0064s576-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})577 -> 0.0096s578-- create_table("uploads", {:id=>:serial, :force=>:cascade})579 -> 0.0140s580-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})581 -> 0.0080s582-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})583 -> 0.0087s584-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})585 -> 0.0091s586-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})587 -> 0.0072s588-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})589 -> 0.0098s590-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})591 -> 0.0073s592-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})593 -> 0.0074s594-- create_table("users", {:id=>:serial, :force=>:cascade})595 -> 0.0847s596-- create_table("users_ops_dashboard_projects", {:force=>:cascade})597 -> 0.0082s598-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})599 -> 0.0081s600-- create_table("vulnerabilities", {:force=>:cascade})601 -> 0.0327s602-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})603 -> 0.0188s604-- create_table("vulnerability_identifiers", {:force=>:cascade})605 -> 0.0060s606-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})607 -> 0.0073s608-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})609 -> 0.0073s610-- create_table("vulnerability_occurrences", {:force=>:cascade})611 -> 0.0165s612-- create_table("vulnerability_scanners", {:force=>:cascade})613 -> 0.0063s614-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})615 -> 0.0102s616-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})617 -> 0.0166s618-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})619 -> 0.0030s620-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})621 -> 0.0028s622-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})623 -> 0.0024s624-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})625 -> 0.0018s626-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})627 -> 0.0019s628-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})629 -> 0.0019s630-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})631 -> 0.0017s632-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})633 -> 0.0037s634-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})635 -> 0.0021s636-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})637 -> 0.0022s638-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})639 -> 0.0021s640-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})641 -> 0.0022s642-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})643 -> 0.0022s644-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})645 -> 0.0041s646-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})647 -> 0.0034s648-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})649 -> 0.0041s650-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})651 -> 0.0050s652-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})653 -> 0.0029s654-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})655 -> 0.0024s656-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})657 -> 0.0036s658-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})659 -> 0.0026s660-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})661 -> 0.0027s662-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})663 -> 0.0024s664-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})665 -> 0.0023s666-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})667 -> 0.0021s668-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})669 -> 0.0024s670-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})671 -> 0.0025s672-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})673 -> 0.0021s674-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})675 -> 0.0019s676-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})677 -> 0.0019s678-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})679 -> 0.0029s680-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})681 -> 0.0027s682-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})683 -> 0.0024s684-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})685 -> 0.0024s686-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})687 -> 0.0030s688-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})689 -> 0.0028s690-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})691 -> 0.0026s692-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})693 -> 0.0025s694-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})695 -> 0.0021s696-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})697 -> 0.0028s698-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})699 -> 0.0019s700-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})701 -> 0.0020s702-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})703 -> 0.0020s704-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})705 -> 0.0025s706-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})707 -> 0.0024s708-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})709 -> 0.0019s710-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})711 -> 0.0023s712-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})713 -> 0.0022s714-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})715 -> 0.0037s716-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})717 -> 0.0023s718-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})719 -> 0.0024s720-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})721 -> 0.0018s722-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})723 -> 0.0019s724-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})725 -> 0.0022s726-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})727 -> 0.0028s728-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})729 -> 0.0030s730-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})731 -> 0.0021s732-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})733 -> 0.0023s734-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})735 -> 0.0028s736-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})737 -> 0.0024s738-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})739 -> 0.0024s740-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})741 -> 0.0021s742-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})743 -> 0.0020s744-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})745 -> 0.0022s746-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})747 -> 0.0024s748-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})749 -> 0.0022s750-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})751 -> 0.0021s752-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})753 -> 0.0018s754-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})755 -> 0.0021s756-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})757 -> 0.0025s758-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})759 -> 0.0022s760-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})761 -> 0.0020s762-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})763 -> 0.0019s764-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})765 -> 0.0018s766-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})767 -> 0.0021s768-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})769 -> 0.0025s770-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})771 -> 0.0029s772-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})773 -> 0.0022s774-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})775 -> 0.0023s776-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})777 -> 0.0026s778-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})779 -> 0.0024s780-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})781 -> 0.0019s782-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})783 -> 0.0019s784-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})785 -> 0.0024s786-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})787 -> 0.0024s788-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})789 -> 0.0030s790-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})791 -> 0.0026s792-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})793 -> 0.0021s794-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})795 -> 0.0026s796-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})797 -> 0.0027s798-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})799 -> 0.0028s800-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})801 -> 0.0024s802-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})803 -> 0.0020s804-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})805 -> 0.0019s806-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})807 -> 0.0019s808-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})809 -> 0.0023s810-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})811 -> 0.0019s812-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})813 -> 0.0021s814-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})815 -> 0.0021s816-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})817 -> 0.0018s818-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})819 -> 0.0021s820-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})821 -> 0.0025s822-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})823 -> 0.0021s824-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})825 -> 0.0021s826-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})827 -> 0.0020s828-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})829 -> 0.0018s830-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})831 -> 0.0018s832-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})833 -> 0.0016s834-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})835 -> 0.0020s836-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})837 -> 0.0017s838-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})839 -> 0.0022s840-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})841 -> 0.0024s842-- add_foreign_key("container_repositories", "projects")843 -> 0.0025s844-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})845 -> 0.0022s846-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})847 -> 0.0020s848-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})849 -> 0.0025s850-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})851 -> 0.0024s852-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})853 -> 0.0025s854-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})855 -> 0.0031s856-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})857 -> 0.0025s858-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})859 -> 0.0017s860-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})861 -> 0.0020s862-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})863 -> 0.0021s864-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})865 -> 0.0024s866-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})867 -> 0.0024s868-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})869 -> 0.0023s870-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})871 -> 0.0022s872-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})873 -> 0.0024s874-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})875 -> 0.0024s876-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})877 -> 0.0025s878-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})879 -> 0.0022s880-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})881 -> 0.0020s882-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})883 -> 0.0017s884-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})885 -> 0.0023s886-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})887 -> 0.0019s888-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})889 -> 0.0022s890-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})891 -> 0.0022s892-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})893 -> 0.0021s894-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})895 -> 0.0023s896-- add_foreign_key("events", "projects", {:on_delete=>:cascade})897 -> 0.0025s898-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})899 -> 0.0022s900-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})901 -> 0.0024s902-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})903 -> 0.0021s904-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})905 -> 0.0023s906-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})907 -> 0.0025s908-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})909 -> 0.0021s910-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})911 -> 0.0022s912-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})913 -> 0.0019s914-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})915 -> 0.0027s916-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})917 -> 0.0020s918-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})919 -> 0.0024s920-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})921 -> 0.0020s922-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})923 -> 0.0020s924-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})925 -> 0.0024s926-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})927 -> 0.0022s928-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})929 -> 0.0037s930-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})931 -> 0.0024s932-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})933 -> 0.0024s934-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})935 -> 0.0020s936-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})937 -> 0.0023s938-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})939 -> 0.0028s940-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})941 -> 0.0028s942-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})943 -> 0.0026s944-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})945 -> 0.0027s946-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})947 -> 0.0029s948-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})949 -> 0.0020s950-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})951 -> 0.0025s952-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})953 -> 0.0024s954-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})955 -> 0.0025s956-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})957 -> 0.0026s958-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})959 -> 0.0025s960-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})961 -> 0.0022s962-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})963 -> 0.0023s964-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})965 -> 0.0025s966-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})967 -> 0.0022s968-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})969 -> 0.0019s970-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})971 -> 0.0026s972-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})973 -> 0.0026s974-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})975 -> 0.0024s976-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})977 -> 0.0022s978-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})979 -> 0.0029s980-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})981 -> 0.0027s982-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})983 -> 0.0024s984-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})985 -> 0.0026s986-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})987 -> 0.0026s988-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})989 -> 0.0027s990-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})991 -> 0.0022s992-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})993 -> 0.0021s994-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})995 -> 0.0025s996-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})997 -> 0.0021s998-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})999 -> 0.0017s1000-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1001 -> 0.0021s1002-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1003 -> 0.0019s1004-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1005 -> 0.0020s1006-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1007 -> 0.0019s1008-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1009 -> 0.0020s1010-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1011 -> 0.0026s1012-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1013 -> 0.0024s1014-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1015 -> 0.0024s1016-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1017 -> 0.0025s1018-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1019 -> 0.0023s1020-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1021 -> 0.0025s1022-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1023 -> 0.0025s1024-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1025 -> 0.0021s1026-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1027 -> 0.0019s1028-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1029 -> 0.0020s1030-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1031 -> 0.0019s1032-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1033 -> 0.0031s1034-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1035 -> 0.0025s1036-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1037 -> 0.0028s1038-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1039 -> 0.0030s1040-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1041 -> 0.0027s1042-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1043 -> 0.0027s1044-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1045 -> 0.0030s1046-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1047 -> 0.0021s1048-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1049 -> 0.0020s1050-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1051 -> 0.0021s1052-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1053 -> 0.0026s1054-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1055 -> 0.0028s1056-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1057 -> 0.0024s1058-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1059 -> 0.0027s1060-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1061 -> 0.0026s1062-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1063 -> 0.0028s1064-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1065 -> 0.0026s1066-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1067 -> 0.0023s1068-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1069 -> 0.0024s1070-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1071 -> 0.0027s1072-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1073 -> 0.0024s1074-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1075 -> 0.0026s1076-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1077 -> 0.0026s1078-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1079 -> 0.0024s1080-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1081 -> 0.0029s1082-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1083 -> 0.0022s1084-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1085 -> 0.0030s1086-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1087 -> 0.0030s1088-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1089 -> 0.0028s1090-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1091 -> 0.0031s1092-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1093 -> 0.0031s1094-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1095 -> 0.0030s1096-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1097 -> 0.0032s1098-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1099 -> 0.0032s1100-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1101 -> 0.0027s1102-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1103 -> 0.0030s1104-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1105 -> 0.0029s1106-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1107 -> 0.0027s1108-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1109 -> 0.0022s1110-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1111 -> 0.0021s1112-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1113 -> 0.0026s1114-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1115 -> 0.0028s1116-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1117 -> 0.0024s1118-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1119 -> 0.0023s1120-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1121 -> 0.0021s1122-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1123 -> 0.0024s1124-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1125 -> 0.0024s1126-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1127 -> 0.0030s1128-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1129 -> 0.0027s1130-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1131 -> 0.0028s1132-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1133 -> 0.0024s1134-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1135 -> 0.0030s1136-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1137 -> 0.0020s1138-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1139 -> 0.0032s1140-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1141 -> 0.0029s1142-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1143 -> 0.0033s1144-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1145 -> 0.0022s1146-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1147 -> 0.0020s1148-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1149 -> 0.0021s1150-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1151 -> 0.0021s1152-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1153 -> 0.0032s1154-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1155 -> 0.0027s1156-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1157 -> 0.0035s1158-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1159 -> 0.0030s1160-- add_foreign_key("path_locks", "users")1161 -> 0.0026s1162-- add_foreign_key("personal_access_tokens", "users")1163 -> 0.0029s1164-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1165 -> 0.0031s1166-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1167 -> 0.0022s1168-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1169 -> 0.0029s1170-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1171 -> 0.0030s1172-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1173 -> 0.0028s1174-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1175 -> 0.0026s1176-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1177 -> 0.0026s1178-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1179 -> 0.0025s1180-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1181 -> 0.0029s1182-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1183 -> 0.0027s1184-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1185 -> 0.0022s1186-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1187 -> 0.0027s1188-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1189 -> 0.0025s1190-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1191 -> 0.0027s1192-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1193 -> 0.0024s1194-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1195 -> 0.0024s1196-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1197 -> 0.0024s1198-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1199 -> 0.0025s1200-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1201 -> 0.0025s1202-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1203 -> 0.0030s1204-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1205 -> 0.0031s1206-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1207 -> 0.0030s1208-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1209 -> 0.0020s1210-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1211 -> 0.0038s1212-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1213 -> 0.0029s1214-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1215 -> 0.0026s1216-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1217 -> 0.0028s1218-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1219 -> 0.0025s1220-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1221 -> 0.0022s1222-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1223 -> 0.0019s1224-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1225 -> 0.0031s1226-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1227 -> 0.0022s1228-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1229 -> 0.0027s1230-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1231 -> 0.0024s1232-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1233 -> 0.0028s1234-- add_foreign_key("protected_branch_merge_access_levels", "users")1235 -> 0.0025s1236-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1237 -> 0.0023s1238-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1239 -> 0.0016s1240-- add_foreign_key("protected_branch_push_access_levels", "users")1241 -> 0.0023s1242-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1243 -> 0.0021s1244-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1245 -> 0.0015s1246-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1247 -> 0.0021s1248-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1249 -> 0.0025s1250-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1251 -> 0.0021s1252-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1253 -> 0.0018s1254-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1255 -> 0.0023s1256-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1257 -> 0.0025s1258-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1259 -> 0.0023s1260-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1261 -> 0.0018s1262-- add_foreign_key("protected_tag_create_access_levels", "users")1263 -> 0.0021s1264-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1265 -> 0.0022s1266-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1267 -> 0.0016s1268-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1269 -> 0.0026s1270-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1271 -> 0.0018s1272-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1273 -> 0.0024s1274-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1275 -> 0.0023s1276-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1277 -> 0.0026s1278-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1279 -> 0.0025s1280-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1281 -> 0.0022s1282-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1283 -> 0.0020s1284-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1285 -> 0.0018s1286-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1287 -> 0.0022s1288-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1289 -> 0.0023s1290-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1291 -> 0.0022s1292-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1293 -> 0.0025s1294-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1295 -> 0.0025s1296-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1297 -> 0.0021s1298-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1299 -> 0.0022s1300-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1301 -> 0.0027s1302-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1303 -> 0.0021s1304-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1305 -> 0.0026s1306-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1307 -> 0.0029s1308-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1309 -> 0.0026s1310-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1311 -> 0.0019s1312-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1313 -> 0.0026s1314-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1315 -> 0.0019s1316-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1317 -> 0.0019s1318-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1319 -> 0.0017s1320-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1321 -> 0.0029s1322-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1323 -> 0.0022s1324-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1325 -> 0.0021s1326-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1327 -> 0.0028s1328-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1329 -> 0.0022s1330-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1331 -> 0.0031s1332-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1333 -> 0.0025s1334-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1335 -> 0.0025s1336-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1337 -> 0.0029s1338-- add_foreign_key("u2f_registrations", "users")1339 -> 0.0027s1340-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1341 -> 0.0025s1342-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1343 -> 0.0027s1344-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1345 -> 0.0026s1346-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1347 -> 0.0025s1348-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1349 -> 0.0027s1350-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1351 -> 0.0026s1352-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1353 -> 0.0033s1354-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1355 -> 0.0027s1356-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1357 -> 0.0033s1358-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1359 -> 0.0032s1360-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1361 -> 0.0028s1362-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1363 -> 0.0033s1364-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1365 -> 0.0032s1366-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1367 -> 0.0026s1368-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1369 -> 0.0024s1370-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1371 -> 0.0025s1372-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1373 -> 0.0030s1374-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1375 -> 0.0026s1376-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1377 -> 0.0024s1378-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1379 -> 0.0023s1380-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1381 -> 0.0033s1382-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1383 -> 0.0028s1384-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1385 -> 0.0025s1386-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1387 -> 0.0027s1388-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1389 -> 0.0040s1390-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1391 -> 0.0029s1392-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1393 -> 0.0028s1394-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1395 -> 0.0031s1396-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1397 -> 0.0025s1398-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1399 -> 0.0024s1400-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1401 -> 0.0024s1402-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1403 -> 0.0021s1404-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1405 -> 0.0036s1406-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1407 -> 0.0026s1408-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1409 -> 0.0021s1410-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1411 -> 0.0020s1412-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1413 -> 0.0029s1414-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1415 -> 0.0025s1416-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1417 -> 0.0032s1418$ date1419Tue Oct 15 08:40:21 UTC 20191420$ source scripts/rspec_helpers.sh1421$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1422KNAPSACK_TEST_FILE_PATTERN: spec/{controllers,mailers,requests}{,/**/}*_spec.rb1423Checking gitaly-ruby bundle...1424Warning: 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`.1425The Gemfile's dependencies are satisfied1426Trying to connect to gitaly: ...... OK1427Knapsack report generator started!1428Run options:1429 include {:focus=>true}1430 exclude {:quarantine=>true, :geo=>true}1431All examples were filtered out; ignoring {:focus=>true}1432==> Setting up GitLab Shell...1433 GitLab Shell set up in 0.075940816 seconds...1434==> Setting up Gitaly...1435 Gitaly set up in 0.000115154 seconds...1436API::Projects1437 GET /projects1438 when unauthenticated1439 behaves like projects response1440 returns an array of projects1441 returns the proper security headers1442 behaves like projects response without N + 1 queries1443 avoids N + 1 queries1444 when authenticated as regular user1445 includes the project labels as the tag_list1446 includes open_issues_count1447 does not include projects marked for deletion1448 does not include open_issues_count if issues are disabled1449 does not include statistics by default1450 includes statistics if requested1451 does not include license by default1452 does not include license if requested1453 behaves like projects response1454 returns an array of projects1455 returns the proper security headers1456 behaves like projects response without N + 1 queries1457 avoids N + 1 queries1458 when some projects are in a group1459 behaves like projects response without N + 1 queries1460 avoids N + 1 queries1461 and with_issues_enabled=true1462 only returns projects with issues enabled1463 when external issue tracker is enabled1464 includes open_issues_count1465 does not include open_issues_count if issues are disabled1466 and with simple=true1467 returns a simplified version of all the projects1468 and using archived1469 returns archived projects1470 returns non-archived projects1471 returns every project1472 and using search1473 behaves like projects response1474 returns an array of projects1475 returns the proper security headers1476 and membership=true1477 behaves like projects response1478 returns an array of projects1479 returns the proper security headers1480 and using the visibility filter1481 filters based on private visibility param1482 filters based on internal visibility param1483 filters based on public visibility param1484 and using the programming language filter1485 filters case-insensitively by programming language1486 and using sorting1487 returns the correct order when sorted by id1488 and with owned=true1489 returns an array of projects the user owns1490 and with starred=true1491 returns the starred projects viewable by the user1492 and with all query parameters1493 including owned filter1494 returns only projects that satisfy all query parameters1495 including membership filter1496 returns only projects that satisfy all query parameters1497 and with min_access_level1498 returns an array of projects the user has at least developer access1499 when authenticated as a different user1500 behaves like projects response1501 returns an array of projects1502 returns the proper security headers1503 and with_issues_enabled=true1504 does not return private issue projects1505 when authenticated as admin1506 behaves like projects response1507 returns an array of projects1508 returns the proper security headers1509 POST /projects1510 creates new project without path but with name and returns 2011511 creates new project without name but with path and returns 2011512 creates new project with name and path and returns 2011513 creates last project before reaching project limit1514 does not create new project without name or path and returns 4001515 assigns attributes to project1516 creates a project using a template1517 returns 400 for an invalid template1518 disallows creating a project with an import_url and template1519 sets a project as public1520 sets a project as internal1521 sets a project as private1522 creates a new project initialized with a README.md1523 sets tag list to a project1524 uploads avatar for project a project1525 sets a project as not allowing outdated diff discussions to automatically resolve1526 sets a project as allowing outdated diff discussions to automatically resolve1527 sets a project as allowing merge even if build fails1528 sets a project as allowing merge only if merge_when_pipeline_succeeds1529 sets a project as allowing merge even if discussions are unresolved1530 sets a project as allowing merge if only_allow_merge_if_all_discussions_are_resolved is nil1531 sets a project as allowing merge only if all discussions are resolved1532 sets the merge method of a project to rebase merge1533 rejects invalid values for merge_method1534 ignores import_url when it is nil1535 maximum number of projects reached1536 does not create new project and respond with 4031537 when a visibility level is restricted1538 does not allow a non-admin to use a restricted visibility level1539 allows an admin to override restricted visibility settings1540 GET /users/:user_id/projects/1541 returns error when user not found1542 returns projects filtered by user id1543 returns projects filtered by username1544 returns projects filtered by minimal access level1545 and using the programming language filter1546 filters case-insensitively by programming language1547 GET /users/:user_id/starred_projects/1548 returns error when user not found1549 returns projects filtered by user1550 POST /projects/user/:id1551 creates new project without path but with name and return 2011552 creates new project with name and path and returns 2011553 responds with 400 on failure and not project1554 assigns attributes to project1555 sets a project as public1556 sets a project as internal1557 sets a project as private1558 sets a project as not allowing outdated diff discussions to automatically resolve1559 sets a project as allowing outdated diff discussions to automatically resolve1560 sets a project as allowing merge even if build fails1561 sets a project as allowing merge only if pipeline succeeds1562 sets a project as allowing merge even if discussions are unresolved1563 sets a project as allowing merge only if all discussions are resolved1564 POST /projects/:id/uploads1565 uploads the file and returns its info1566 GET /projects/:id1567 when unauthenticated1568 does not return private projects1569 returns public projects1570 and the project has a private repository1571 hides protected attributes of private repositories if user is not a member1572 exposes protected attributes of private repositories if user is a member1573 when authenticated as an admin1574 returns a project by id1575 when authenticated as a regular user1576 returns a project by id1577 returns a group link with expiration date1578 returns a project by path name1579 returns a 404 error if not found1580 returns a 404 error if user is not a member1581 handles users with dots1582 exposes namespace fields1583 does not include license fields by default1584 includes license fields when requested1585 does not include statistics by default1586 includes statistics if requested1587 includes import_error if user can admin project1588 does not include import_error if user cannot admin project1589 returns 404 when project is marked for deletion1590 and the project has a private repository1591 does not include statistics if user is not a member1592 includes statistics if user is a member1593 includes statistics also when repository is disabled1594 links exposure1595 exposes related resources full URIs1596 filters related URIs when their feature is not enabled1597 permissions1598 all projects1599 contains permission information1600 personal project1601 sets project access and returns 2001602 group project1603 sets the owner and return 2001604 nested group project1605 sets group access and return 2001606 with various access levels across nested groups1607 sets the maximum group access and return 2001608 when project belongs to a group namespace1609 returns group web_url and avatar_url1610 when project belongs to a user namespace1611 returns user web_url and avatar_url1612 GET /projects/:id/users1613 when unauthenticated1614 behaves like project users response1615 returns the project users1616 when authenticated1617 returns a 404 error if not found1618 returns a 404 error if user is not a member1619 filters out users listed in skip_users1620 valid request1621 behaves like project users response1622 returns the project users1623 fork management1624 POST /projects/:id/fork/:forked_from_id1625 refreshes the forks count cache1626 user is a developer1627 denies project to be forked from an existing project1628 user is maintainer1629 allows project to be forked from an existing project1630 denies project to be forked from a private project1631 user is admin1632 allows project to be forked from an existing project1633 allows project to be forked from a private project1634 refreshes the forks count cachce1635 fails if forked_from project which does not exist1636 fails with 409 if already forked1637 DELETE /projects/:id/fork1638 is not visible to users outside group1639 when users belong to project group1640 is forbidden to non-owner users1641 is idempotent if not forked1642 for a forked project1643 makes forked project unforked1644 behaves like 412 response1645 for a modified ressource1646 returns 4121647 for an unmodified ressource1648 returns accepted1649 GET /projects/:id/forks1650 for a forked project1651 for a user that can access the forks1652 returns the forks1653 for a user that cannot access the forks1654 returns an empty array1655 for a non-forked project1656 returns an empty array1657 POST /projects/:id/share1658 shares project with group1659 returns a 400 error when group id is not given1660 returns a 400 error when access level is not given1661 returns a 400 error when sharing is disabled1662 returns a 404 error when user cannot read group1663 returns a 404 error when group does not exist1664 returns a 400 error when wrong params passed1665 returns a 409 error when link is not saved1666 DELETE /projects/:id/share/:group_id1667 returns a 400 when group id is not an integer1668 returns a 404 error when group link does not exist1669 returns a 404 error when project does not exist1670 for a valid group1671 returns 204 when deleting a group share1672 behaves like 412 response1673 for a modified ressource1674 returns 4121675 for an unmodified ressource1676 returns accepted1677 PUT /projects/:id1678 returns 400 when nothing sent1679 when unauthenticated1680 returns authentication error1681 when authenticated as project owner1682 updates name1683 updates visibility_level1684 updates visibility_level from public to private1685 does not update name to existing name1686 updates request_access_enabled1687 updates path & name to existing path & name in different namespace1688 updates jobs_enabled1689 updates builds_access_level1690 updates build_git_strategy1691 rejects to update build_git_strategy when build_git_strategy is invalid1692 updates merge_method1693 rejects to update merge_method when merge_method is invalid1694 updates avatar1695 updates auto_devops_deploy_strategy1696 updates auto_devops_enabled1697 when authenticated as project maintainer1698 updates path1699 updates other attributes1700 does not update path to existing path1701 does not update name1702 does not update visibility_level1703 when authenticated as project developer1704 does not update other attributes1705 POST /projects/:id/archive1706 on an unarchived project1707 archives the project1708 on an archived project1709 remains archived1710 user without archiving rights to the project1711 rejects the action1712 POST /projects/:id/unarchive1713 on an unarchived project1714 remains unarchived1715 on an archived project1716 unarchives the project1717 user without archiving rights to the project1718 rejects the action1719 POST /projects/:id/star1720 on an unstarred project1721 stars the project1722 on a starred project1723 does not modify the star count1724 POST /projects/:id/unstar1725 on a starred project1726 unstars the project1727 on an unstarred project1728 does not modify the star count1729 GET /projects/:id/starrers1730 returns not_found(404) for not existing project1731 public project without user1732 returns only starrers with a public profile1733 behaves like project starrers response1734 returns an array of starrers1735 returns the proper security headers1736 public project with user with private profile1737 returns current user with a private profile1738 behaves like project starrers response1739 returns an array of starrers1740 returns the proper security headers1741 private project1742 with unauthorized user1743 returns not_found for existing but unauthorized project1744 without user1745 returns not_found for existing but unauthorized project1746 GET /projects/:id/languages1747 with an authorized user1748 returns not_found(404) for not existing project1749 behaves like languages and percentages JSON response1750 when the languages haven't been detected yet1751 returns expected language values1752 when the languages were detected before1753 returns the detection from the database1754 with not authorized user1755 returns not_found for existing but unauthorized project1756 without user1757 returns not_found for existing but unauthorized project1758 behaves like languages and percentages JSON response1759 when the languages haven't been detected yet1760 returns expected language values1761 when the languages were detected before1762 returns the detection from the database1763 DELETE /projects/:id1764 when authenticated as user1765 removes project1766 does not remove a project if not an owner1767 does not remove a non existing project1768 does not remove a project not attached to user1769 behaves like 412 response1770 for a modified ressource1771 returns 4121772 for an unmodified ressource1773 returns accepted1774 when authenticated as admin1775 removes any existing project1776 does not remove a non existing project1777 behaves like 412 response1778 for a modified ressource1779 returns 4121780 for an unmodified ressource1781 returns accepted1782 POST /projects/:id/fork1783 when authenticated1784 forks if user has sufficient access to project1785 forks if user is admin1786 fails on missing project access for the project to fork1787 fails if forked project exists in the user namespace1788 fails if project to fork from does not exist1789 forks with explicit own user namespace id1790 forks with explicit own user name as namespace1791 forks to another user when admin1792 fails if trying to fork to another user when not admin1793 fails if trying to fork to non-existent namespace1794 forks to owned group1795 forks to owned subgroup1796 fails to fork to not owned group1797 forks to not owned group when admin1798 accepts a path for the target project1799 fails to fork if path is already taken1800 accepts a name for the target project1801 fails to fork if name is already taken1802 when unauthenticated1803 returns authentication error1804 POST /projects/:id/housekeeping1805 when authenticated as owner1806 starts the housekeeping process1807 when housekeeping lease is taken1808 returns conflict1809 when authenticated as developer1810 returns forbidden error1811 when unauthenticated1812 returns authentication error1813 PUT /projects/:id/transfer1814 when authenticated as owner1815 transfers the project to the new namespace1816 fails when transferring to a non owned namespace1817 fails when transferring to an unknown namespace1818 fails on missing namespace1819 behaves like custom attributes endpoints1820 GET /projects with custom attributes filter1821 with an unauthorized user1822 does not filter by custom attributes1823 with an authorized user1824 filters by custom attributes1825 GET /projects with custom attributes1826 with an unauthorized user1827 does not include custom attributes1828 with an authorized user1829 does not include custom attributes by default1830 includes custom attributes if requested1831 GET /projects/:id with custom attributes1832 with an unauthorized user1833 does not include custom attributes1834 with an authorized user1835 does not include custom attributes by default1836 includes custom attributes if requested1837 GET /projects/:id/custom_attributes1838 with an unauthorized user1839 behaves like an unauthorized API user1840 should eq 4031841 with an authorized user1842 returns all custom attributes1843 GET /projects/:id/custom_attributes/:key1844 with an unauthorized user1845 behaves like an unauthorized API user1846 should eq 4031847 with an authorized user1848 returns a single custom attribute1849 PUT /projects/:id/custom_attributes/:key1850 with an unauthorized user1851 behaves like an unauthorized API user1852 should eq 4031853 with an authorized user1854 creates a new custom attribute1855 updates an existing custom attribute1856 DELETE /projects/:id/custom_attributes/:key1857 with an unauthorized user1858 behaves like an unauthorized API user1859 should eq 4031860 with an authorized user1861 deletes an existing custom attribute1862API::Issues1863 GET /groups/:id/issues1864 when group has subgroups1865 when user is unauthenticated1866 also returns subgroups public projects issues1867 also returns subgroups public projects issues filtered by milestone1868 issues_statistics1869 no state is treated as all state1870 behaves like group issues statistics1871 returns issues statistics1872 statistics when all state is passed1873 behaves like group issues statistics1874 returns issues statistics1875 closed state is treated as all state1876 behaves like group issues statistics1877 returns issues statistics1878 opened state is treated as all state1879 behaves like group issues statistics1880 returns issues statistics1881 when filtering by milestone and no state treated as all state1882 behaves like group issues statistics1883 returns issues statistics1884 when filtering by milestone and all state1885 behaves like group issues statistics1886 returns issues statistics1887 when filtering by milestone and closed state treated as all state1888 behaves like group issues statistics1889 returns issues statistics1890 when filtering by milestone and opened state treated as all state1891 behaves like group issues statistics1892 returns issues statistics1893 when user is a group member1894 also returns subgroups projects issues1895 also returns subgroups public projects issues filtered by milestone1896 issues_statistics1897 no state is treated as all state1898 behaves like group issues statistics1899 returns issues statistics1900 statistics when all state is passed1901 behaves like group issues statistics1902 returns issues statistics1903 closed state is treated as all state1904 behaves like group issues statistics1905 returns issues statistics1906 opened state is treated as all state1907 behaves like group issues statistics1908 returns issues statistics1909 when filtering by milestone and no state treated as all state1910 behaves like group issues statistics1911 returns issues statistics1912 when filtering by milestone and all state1913 behaves like group issues statistics1914 returns issues statistics1915 when filtering by milestone and closed state treated as all state1916 behaves like group issues statistics1917 returns issues statistics1918 when filtering by milestone and opened state treated as all state1919 behaves like group issues statistics1920 returns issues statistics1921 when returns issue merge_requests_count for different access levels1922 behaves like accessible merge requests count1923 returns anonymous accessible merge requests count1924 returns guest accessible merge requests count1925 returns reporter accessible merge requests count1926 returns admin accessible merge requests count1927 when user is unauthenticated1928 lists all issues in public projects1929 also returns subgroups public projects issues filtered by milestone1930 issues_statistics1931 no state is treated as all state1932 behaves like group issues statistics1933 returns issues statistics1934 statistics when all state is passed1935 behaves like group issues statistics1936 returns issues statistics1937 closed state is treated as all state1938 behaves like group issues statistics1939 returns issues statistics1940 opened state is treated as all state1941 behaves like group issues statistics1942 returns issues statistics1943 when filtering by milestone and no state treated as all state1944 behaves like group issues statistics1945 returns issues statistics1946 when filtering by milestone and all state1947 behaves like group issues statistics1948 returns issues statistics1949 when filtering by milestone and closed state treated as all state1950 behaves like group issues statistics1951 returns issues statistics1952 when filtering by milestone and opened state treated as all state1953 behaves like group issues statistics1954 returns issues statistics1955 when user is a group member1956 exposes known attributes1957 returns all group issues (including opened and closed)1958 returns group issues without confidential issues for non project members1959 returns group confidential issues for author1960 returns group confidential issues for assignee1961 returns group issues with confidential issues for project members1962 returns group confidential issues for admin1963 returns only confidential issues1964 returns only public issues1965 returns an array of labeled group issues1966 returns an array of labeled group issues with labels param as array1967 returns an array of labeled group issues where all labels match1968 returns an array of labeled group issues where all labels match with labels param as array1969 returns issues matching given search string for title1970 returns issues matching given search string for description1971 returns an array of issues found by iids1972 returns an empty array if iid does not exist1973 returns an empty array if no group issue matches labels1974 returns an array of group issues with any label1975 returns an array of group issues with any label with labels param as array1976 returns an array of group issues with no label1977 returns an array of group issues with no label with labels param as array1978 returns an empty array if no issue matches milestone1979 returns an empty array if milestone does not exist1980 returns an array of issues in given milestone1981 returns an array of issues matching state in milestone1982 returns an array of issues with no milestone1983 sorts ascending when requested1984 sorts by updated_at descending when requested1985 sorts by updated_at ascending when requested1986 with labeled issues1987 behaves like labeled issues with labels and label_name params1988 array of labeled issues when all labels match1989 behaves like returns label names1990 returns label names1991 array of labeled issues when all labels match with labels param as array1992 behaves like returns label names1993 returns label names1994 negation1995 array of labeled issues when all labels match with negation1996 behaves like returns negated label names1997 returns label names1998 array of labeled issues when all labels match with negation with label params as array1999 behaves like returns negated label names2000 returns label names2001 when with_labels_details provided2002 array of labeled issues when all labels match2003 behaves like returns basic label entity2004 returns basic label entity2005 array of labeled issues when all labels match with labels param as array2006 behaves like returns basic label entity2007 returns basic label entity2008 without sort params2009 sorts by created_at descending by default2010 with 2 issues with same created_at2011 page breaks first page correctly2012 page breaks second page correctly2013 issues_statistics2014 no state is treated as all state2015 behaves like group issues statistics2016 returns issues statistics2017 statistics when all state is passed2018 behaves like group issues statistics2019 returns issues statistics2020 closed state is treated as all state2021 behaves like group issues statistics2022 returns issues statistics2023 opened state is treated as all state2024 behaves like group issues statistics2025 returns issues statistics2026 when filtering by milestone and no state treated as all state2027 behaves like group issues statistics2028 returns issues statistics2029 when filtering by milestone and all state2030 behaves like group issues statistics2031 returns issues statistics2032 when filtering by milestone and closed state treated as all state2033 behaves like group issues statistics2034 returns issues statistics2035 when filtering by milestone and opened state treated as all state2036 behaves like group issues statistics2037 returns issues statistics2038 sort does not affect statistics2039 behaves like group issues statistics2040 returns issues statistics2041 filtering by assignee_username2042 returns issues with by assignee_username2043 returns issues by assignee_username as string2044 returns error when multiple assignees are passed2045 returns error when assignee_username and assignee_id are passed together2046API::Todos2047 GET /todos2048 avoids N+1 queries2049 when unauthenticated2050 returns authentication error2051 when authenticated2052 returns an array of pending todos for current user2053 and using the author filter2054 filters based on author_id param2055 and using the type filter2056 filters based on type param2057 and using the state filter2058 filters based on state param2059 and using the project filter2060 filters based on project_id param2061 and using the group filter2062 filters based on project_id param2063 and using the action filter2064 filters based on action param2065 POST /todos/:id/mark_as_done2066 when unauthenticated2067 returns authentication error2068 when authenticated2069 marks a todo as done2070 updates todos cache2071 returns 404 if the todo does not belong to the current user2072 POST /mark_as_done2073 when unauthenticated2074 returns authentication error2075 when authenticated2076 marks all todos as done2077 updates todos cache2078 POST :id/issuable_type/:issueable_id/todo2079 for an issue2080 behaves like an issuable2081 creates a todo on an issuable2082 returns 304 there already exist a todo on that issuable2083 returns 404 if the issuable is not found2084 returns an error if the issuable is not accessible2085 for a merge request2086 behaves like an issuable2087 creates a todo on an issuable2088 returns 304 there already exist a todo on that issuable2089 returns 404 if the issuable is not found2090 returns an error if the issuable is not accessible2091API::Issues2092 GET /issues2093 when unauthenticated2094 returns an array of all issues2095 returns authentication error without any scope2096 returns authentication error when scope is assigned-to-me2097 returns authentication error when scope is created-by-me2098 returns an array of issues matching state in milestone2099 returns an array of issues matching state in milestone2100 issues_statistics2101 returns authentication error without any scope2102 returns authentication error when scope is assigned_to_me2103 returns authentication error when scope is created_by_me2104 no state is treated as all state2105 behaves like issues statistics2106 returns issues statistics2107 statistics when all state is passed2108 behaves like issues statistics2109 returns issues statistics2110 closed state is treated as all state2111 behaves like issues statistics2112 returns issues statistics2113 opened state is treated as all state2114 behaves like issues statistics2115 returns issues statistics2116 when filtering by milestone and no state treated as all state2117 behaves like issues statistics2118 returns issues statistics2119 when filtering by milestone and all state2120 behaves like issues statistics2121 returns issues statistics2122 when filtering by milestone and closed state treated as all state2123 behaves like issues statistics2124 returns issues statistics2125 when filtering by milestone and opened state treated as all state2126 behaves like issues statistics2127 returns issues statistics2128 sort does not affect statistics2129 behaves like issues statistics2130 returns issues statistics2131 when authenticated2132 returns an array of issues2133 returns an array of closed issues2134 returns an array of opened issues2135 returns an array of all issues2136 returns issues assigned to me2137 returns issues assigned to me (kebab-case)2138 returns issues authored by the given author id2139 returns issues assigned to the given assignee id2140 returns issues authored by the given author id and assigned to the given assignee id2141 returns issues with no assignee2142 returns issues with any assignee2143 returns only confidential issues2144 returns only public issues2145 returns issues reacted by the authenticated user2146 returns issues not reacted by the authenticated user2147 returns issues matching given search string for title2148 returns issues matching given search string for title and scoped in title2149 returns an empty array if no issue matches given search string for title and scoped in description2150 returns issues matching given search string for description2151 returns an array of issues found by iids2152 returns an empty array if iid does not exist2153 sorts ascending when requested2154 sorts by updated_at descending when requested2155 sorts by updated_at ascending when requested2156 matches V4 response schema2157 returns a related merge request count of 0 if there are no related merge requests2158 returns a related merge request count > 0 if there are related merge requests2159 filtering before a specific date2160 returns issues created before a specific date2161 returns issues updated before a specific date2162 filtering after a specific date2163 returns issues created after a specific date2164 returns issues updated after a specific date2165 filter by labels or label_name param2166 returns an array of labeled issues2167 returns an array of labeled issues with labels param as array2168 returns an empty array if no issue matches labels2169 returns an empty array if no issue matches labels with labels param as array2170 returns an array of labeled issues matching given state2171 returns an array of labeled issues matching given state with labels param as array2172 returns an empty array if no issue matches labels and state filters2173 returns an array of issues with any label2174 returns an array of issues with any label with labels param as array2175 returns an array of issues with no label2176 returns an array of issues with no label with labels param as array2177 N+12178 tests N+12179 with labeled issues2180 behaves like labeled issues with labels and label_name params2181 array of labeled issues when all labels match2182 behaves like returns label names2183 returns label names2184 array of labeled issues when all labels match with labels param as array2185 behaves like returns label names2186 returns label names2187 negation2188 array of labeled issues when all labels match with negation2189 behaves like returns negated label names2190 returns label names2191 array of labeled issues when all labels match with negation with label params as array2192 behaves like returns negated label names2193 returns label names2194 when with_labels_details provided2195 array of labeled issues when all labels match2196 behaves like returns basic label entity2197 returns basic label entity2198 array of labeled issues when all labels match with labels param as array2199 behaves like returns basic label entity2200 returns basic label entity2201 filter by milestone2202 returns an empty array if no issue matches milestone2203 returns an empty array if milestone does not exist2204 returns an array of issues in given milestone2205 returns an array of issues in given milestone_title param2206 returns an array of issues matching state in milestone2207 returns an array of issues with no milestone2208 returns an array of issues with no milestone using milestone_title param2209 negated2210 returns all issues if milestone does not exist2211 returns all issues that do not belong to a milestone but have a milestone2212 returns an array of issues with any milestone2213 returns an array of issues matching state not in milestone2214 without sort params2215 sorts by created_at descending by default2216 with 2 issues with same created_at2217 page breaks first page correctly2218 page breaks second page correctly2219 with issues list sort options2220DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "milestones.due_date IS NULL, milestones.id IS NULL, milestones.due_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 block (2 levels) in <module:Issuable> at /builds/gitlab-org/gitlab/app/models/concerns/issuable.rb:114)2221DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "issues.due_date IS NULL, issues.due_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 block in <class:Issue> at /builds/gitlab-org/gitlab/app/models/issue.rb:57)2222DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "milestones.due_date IS NULL, milestones.id IS NULL, milestones.due_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 block (2 levels) in <module:Issuable> at /builds/gitlab-org/gitlab/app/models/concerns/issuable.rb:114)2223DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "COUNT(award_emoji.id) 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 order_votes at /builds/gitlab-org/gitlab/app/models/concerns/awardable.rb:70)2224 accepts only predefined order by params2225 fails to sort with non predefined options2226 issues_statistics2227 no state is treated as all state2228 behaves like issues statistics2229 returns issues statistics2230 statistics when all state is passed2231 behaves like issues statistics2232 returns issues statistics2233 closed state is treated as all state2234 behaves like issues statistics2235 returns issues statistics2236 opened state is treated as all state2237 behaves like issues statistics2238 returns issues statistics2239 when filtering by milestone and no state treated as all state2240 behaves like issues statistics2241 returns issues statistics2242 when filtering by milestone and all state2243 behaves like issues statistics2244 returns issues statistics2245 when filtering by milestone and closed state treated as all state2246 behaves like issues statistics2247 returns issues statistics2248 when filtering by milestone and opened state treated as all state2249 behaves like issues statistics2250 returns issues statistics2251 sort does not affect statistics2252 behaves like issues statistics2253 returns issues statistics2254 filtering by assignee_username2255 returns issues with by assignee_username2256 returns issues by assignee_username as string2257 returns error when multiple assignees are passed2258 returns error when assignee_username and assignee_id are passed together2259 when returns issue merge_requests_count for different access levels2260 behaves like accessible merge requests count2261 returns anonymous accessible merge requests count2262 returns guest accessible merge requests count2263 returns reporter accessible merge requests count2264 returns admin accessible merge requests count2265 DELETE /projects/:id/issues/:issue_iid2266 rejects a non member from deleting an issue2267 rejects a developer from deleting an issue2268 returns 404 when using the issue ID instead of IID2269 when the user is project owner2270 deletes the issue if an admin requests it2271 behaves like 412 response2272 for a modified ressource2273 returns 4122274 for an unmodified ressource2275 returns accepted2276 when issue does not exist2277 returns 404 when trying to move an issue2278 time tracking endpoints2279 POST /projects/:id/issues/:issue_id/time_estimate2280 sets the time estimate for issue2281 with an unauthorized user2282 behaves like an unauthorized API user2283 should eq 4032284 updating the current estimate2285 when duration has a bad format2286 does not modify the original estimate2287 with a valid duration2288 updates the estimate2289 POST /projects/:id/issues/:issue_id/reset_time_estimate2290 resets the time estimate for issue2291 with an unauthorized user2292 behaves like an unauthorized API user2293 should eq 4032294 POST /projects/:id/issues/:issue_id/add_spent_time2295 add spent time for issue2296 with an unauthorized user2297 behaves like an unauthorized API user2298 should eq 4032299 when subtracting time2300 subtracts time of the total spent time2301 when time to subtract is greater than the total spent time2302 does not modify the total time spent2303 POST /projects/:id/issues/:issue_id/reset_spent_time2304 resets spent time for issue2305 with an unauthorized user2306 behaves like an unauthorized API user2307 should eq 4032308 GET /projects/:id/issues/:issue_id/time_stats2309 returns the time stats for issue2310API::Releases2311 GET /projects/:id/releases2312 returns an upcoming_release status for a future release2313 returns an upcoming_release status for a past release2314 when there are two releases2315 returns 200 HTTP status2316 returns releases ordered by released_at2317 matches response schema2318 returns rendered helper paths2319 returns the merge requests and issues links, with correct query2320 when tag does not exist in git repository2321 returns the tag2322 when user is a guest2323 responds 200 OK2324 does not expose tag, commit, source code or helper paths2325 when project is public2326 responds 200 OK2327 exposes tag, commit, source code and helper paths2328 when user is not a project member2329 cannot find the project2330 when project is public2331 allows the request2332 GET /projects/:id/releases/:tag_name2333 when there is a release2334 returns 200 HTTP status2335 returns a release entry2336 matches response schema2337 contains source information as assets2338 when release description contains confidential issue's link2339 does not expose confidential issue's title2340 when release has link asset2341 contains link information as assets2342 when link is internal2343 has external false2344 when user is a guest2345 responds 403 Forbidden2346 when project is public2347 responds 200 OK2348 exposes tag and commit2349 when specified tag is not found in the project2350 cannot find the release entry2351 when user is not a project member2352 cannot find the project2353 when project is public2354 allows the request2355 POST /projects/:id/releases2356 accepts the request2357 creates a new release2358 sets the released_at to the current time if the released_at parameter is not provided2359 sets the released_at to the value in the parameters if specified2360 assumes the utc timezone for released_at if the timezone is not provided2361 allows specifying a released_at with a local time zone2362 matches response schema2363 does not create a new tag2364 when description is empty2365 returns an error as validation failure2366 when user is a reporter2367 forbids the request2368 when user is not a project member2369 forbids the request2370 when project is public2371 forbids the request2372 when create assets altogether2373 when create one asset2374 accepts the request2375 creates an asset with specified parameters2376 matches response schema2377 when create two assets2378 creates two assets with specified parameters2379 when link names are duplicates2380 recognizes as a bad request2381 when tag does not exist in git repository2382 creates a new tag2383 creates a new release2384 when tag name is HEAD2385 returns an error as failure on tag creation2386 when tag name is empty2387 returns an error as failure on tag creation2388 when release already exists2389 returns an error as conflicted request2390 PUT /projects/:id/releases/:tag_name2391 accepts the request2392 updates the description2393 does not change other attributes2394 matches response schema2395 updates released_at2396 when user tries to update sha2397 does not allow the request2398 when params is empty2399 does not allow the request2400 when there are no corresponding releases2401 forbids the request2402 when user is a reporter2403 forbids the request2404 when user is not a project member2405 forbids the request2406 when project is public2407 forbids the request2408 DELETE /projects/:id/releases/:tag_name2409 accepts the request2410 destroys the release2411 does not remove a tag in repository2412 matches response schema2413 when there are no corresponding releases2414 forbids the request2415 when user is a reporter2416 forbids the request2417 when user is not a project member2418 forbids the request2419 when project is public2420 forbids the request2421API::Wikis2422 GET /projects/:id/wikis2423 when wiki is disabled2424 when user is guest2425 returns 404 Project Not Found2426 when user is developer2427 returns 403 Forbidden2428 when user is maintainer2429 returns 403 Forbidden2430 when wiki is available only for team members2431 when user is guest2432 returns 404 Project Not Found2433 when user is developer2434 return the empty list of wiki pages2435 when wiki has pages2436 returns the list of wiki pages without content2437 returns the list of wiki pages with content2438 when user is maintainer2439 return the empty list of wiki pages2440 when wiki has pages2441 returns the list of wiki pages without content2442 returns the list of wiki pages with content2443 when wiki is available for everyone with access2444 when user is guest2445 returns 404 Project Not Found2446 when user is developer2447 return the empty list of wiki pages2448 when wiki has pages2449 returns the list of wiki pages without content2450 returns the list of wiki pages with content2451 when user is maintainer2452 return the empty list of wiki pages2453 when wiki has pages2454 returns the list of wiki pages without content2455 returns the list of wiki pages with content2456 GET /projects/:id/wikis/:slug2457 when wiki is disabled2458 when user is guest2459 returns 404 Project Not Found2460 when user is developer2461 returns 403 Forbidden2462 when user is maintainer2463 returns 403 Forbidden2464 when wiki is available only for team members2465 when user is guest2466 returns 404 Project Not Found2467 when user is developer2468 returns the wiki page2469 when page is not existing2470 returns 404 Wiki Page Not Found2471 when user is maintainer2472 returns the wiki page2473 when page is not existing2474 returns 404 Wiki Page Not Found2475 when wiki is available for everyone with access2476 when user is guest2477 returns 404 Project Not Found2478 when user is developer2479 returns the wiki page2480 when page is not existing2481 returns 404 Wiki Page Not Found2482 when user is maintainer2483 returns the wiki page2484 when page is not existing2485 returns 404 Wiki Page Not Found2486 POST /projects/:id/wikis2487 when wiki is disabled2488 when user is guest2489 returns 404 Project Not Found2490 when user is developer2491 returns 403 Forbidden2492 when user is maintainer2493 returns 403 Forbidden2494 when wiki is available only for team members2495 when user is guest2496 returns 404 Project Not Found2497 when user is developer2498 creates the wiki page2499 responds with validation error on empty title2500 responds with validation error on empty content2501 when user is maintainer2502 creates the wiki page2503 responds with validation error on empty title2504 responds with validation error on empty content2505 when wiki is available for everyone with access2506 when user is guest2507 returns 404 Project Not Found2508 when user is developer2509 creates the wiki page2510 responds with validation error on empty title2511 responds with validation error on empty content2512 when user is maintainer2513 creates the wiki page2514 responds with validation error on empty title2515 responds with validation error on empty content2516 PUT /projects/:id/wikis/:slug2517 when wiki is disabled2518 when user is guest2519 returns 404 Project Not Found2520 when user is developer2521 returns 403 Forbidden2522 when user is maintainer2523 returns 403 Forbidden2524 when wiki is available only for team members2525 when user is guest2526 returns 404 Project Not Found2527 when user is developer2528 updates the wiki page2529 it updates with wiki with missing title2530 it updates with wiki with missing content2531 it updates with wiki with missing format2532 when page is not existing2533 returns 404 Wiki Page Not Found2534 when user is maintainer2535 updates the wiki page2536 it updates with wiki with missing title2537 it updates with wiki with missing content2538 it updates with wiki with missing format2539 when page is not existing2540 returns 404 Wiki Page Not Found2541 when wiki is available for everyone with access2542 when user is guest2543 returns 404 Project Not Found2544 when user is developer2545 updates the wiki page2546 it updates with wiki with missing title2547 it updates with wiki with missing content2548 it updates with wiki with missing format2549 when page is not existing2550 returns 404 Wiki Page Not Found2551 when user is maintainer2552 updates the wiki page2553 it updates with wiki with missing title2554 it updates with wiki with missing content2555 it updates with wiki with missing format2556 when page is not existing2557 returns 404 Wiki Page Not Found2558 when wiki belongs to a group project2559 updates the wiki page2560 it updates with wiki with missing title2561 it updates with wiki with missing content2562 it updates with wiki with missing format2563 DELETE /projects/:id/wikis/:slug2564 when wiki is disabled2565 when user is guest2566 returns 404 Project Not Found2567 when user is developer2568 returns 403 Forbidden2569 when user is maintainer2570 returns 403 Forbidden2571 when wiki is available only for team members2572 when user is guest2573 returns 404 Project Not Found2574 when user is developer2575 returns 403 Forbidden2576 when user is maintainer2577 returns 204 No Content2578 when wiki is available for everyone with access2579 when user is guest2580 returns 404 Project Not Found2581 when user is developer2582 returns 403 Forbidden2583 when user is maintainer2584 returns 204 No Content2585 when page is not existing2586 returns 404 Wiki Page Not Found2587 when wiki belongs to a group project2588 returns 204 No Content2589 POST /projects/:id/wikis/attachments2590 when wiki is disabled2591 when user is guest2592 returns 404 Project Not Found2593 when user is developer2594 returns 403 Forbidden2595 when user is maintainer2596 returns 403 Forbidden2597 when wiki is available only for team members2598 when user is guest2599 returns 404 Project Not Found2600 when user is developer2601 pushes attachment to the wiki repository2602 responds with validation error on empty file2603 responds with validation error on invalid temp file2604 is backward compatible with regular multipart uploads2605 when user is maintainer2606 pushes attachment to the wiki repository2607 responds with validation error on empty file2608 responds with validation error on invalid temp file2609 is backward compatible with regular multipart uploads2610 when wiki is available for everyone with access2611 when user is guest2612 returns 404 Project Not Found2613 when user is developer2614 pushes attachment to the wiki repository2615 responds with validation error on empty file2616 responds with validation error on invalid temp file2617 is backward compatible with regular multipart uploads2618 when user is maintainer2619 pushes attachment to the wiki repository2620 responds with validation error on empty file2621 responds with validation error on invalid temp file2622 is backward compatible with regular multipart uploads2623API::Issues2624 POST /projects/:id/issues2625 creates a new project issue2626 creates a new project issue with labels param as array2627 creates a new confidential project issue2628 creates a new confidential project issue with a different param2629 creates a public issue when confidential param is false2630 creates a public issue when confidential param is invalid2631 returns a 400 bad request if title not given2632 allows special label names2633 allows special label names with labels param as array2634 returns 400 if title is too long2635 support for deprecated assignee_id2636 creates a new project issue2637 creates a new project issue when assignee_id is empty2638 single assignee restrictions2639 creates a new project issue with no more than one assignee2640 user does not have permissions to create issue2641 renders 4032642 an internal ID is provided2643 by an admin2644 sets the internal ID on the new issue2645 by an owner2646 sets the internal ID on the new issue2647 by a group owner2648 sets the internal ID on the new issue2649 by another user2650 ignores the given internal ID2651 resolving discussions2652 resolving all discussions in a merge request2653 behaves like creating an issue resolving discussions through the API2654 creates a new project issue2655 resolves the discussions in a merge request2656 assigns a description to the issue mentioning the merge request2657 resolving a single discussion2658 behaves like creating an issue resolving discussions through the API2659 creates a new project issue2660 resolves the discussions in a merge request2661 assigns a description to the issue mentioning the merge request2662 with due date2663 creates a new project issue2664 setting created_at2665 by an admin2666 sets the creation time on the new issue2667 by a project owner2668 sets the creation time on the new issue2669 by a group owner2670 sets the creation time on the new issue2671 by another user2672 ignores the given creation time2673 the user can only read the issue2674 cannot create new labels2675 cannot create new labels with labels param as array2676 POST /projects/:id/issues with spam filtering2677 when allow_possible_spam feature flag is false2678 does not create a new project issue2679 returns correct status and message2680 creates a new spam log entry2681 when allow_possible_spam feature flag is true2682 does creates a new project issue2683 returns correct status2684 creates a new spam log entry2685 /projects/:id/issues/:issue_iid/move2686 moves an issue2687 moves the issue to another namespace if I am admin2688 when source and target projects are the same2689 returns 400 when trying to move an issue2690 when the user does not have the permission to move issues2691 returns 400 when trying to move an issue2692 when using the issue ID instead of iid2693 returns 404 when trying to move an issue2694 when issue does not exist2695 returns 404 when trying to move an issue2696 when source project does not exist2697 returns 404 when trying to move an issue2698 when target project does not exist2699 returns 404 when trying to move an issue2700 POST :id/issues/:issue_iid/subscribe2701 subscribes to an issue2702 returns 304 if already subscribed2703 returns 404 if the issue is not found2704 returns 404 if the issue ID is used instead of the iid2705 returns 404 if the issue is confidential2706 POST :id/issues/:issue_id/unsubscribe2707 unsubscribes from an issue2708 returns 304 if not subscribed2709 returns 404 if the issue is not found2710 returns 404 if using the issue ID instead of iid2711 returns 404 if the issue is confidential2712Projects::ClustersController2713 GET index2714 functionality2715 when project has one or more clusters2716 lists available clusters2717 when page is specified2718 redirects to the page2719 when project does not have a cluster2720 returns an empty state page2721 security2722 should be allowed for admin. Expected: 200,201,204,302 Got: 2002723 should be allowed for owner. Expected: 200,201,204,302 Got: 2002724 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002725 should be denied for developer. Expected: 401,404 Got: 4042726 should be denied for reporter. Expected: 401,404 Got: 4042727 should be denied for guest. Expected: 401,404 Got: 4042728 should be denied for user. Expected: 401,404 Got: 4042729 should be denied for external. Expected: 401,404 Got: 4042730 GET new2731 functionality for new cluster2732 when omniauth has been configured2733 has authorize_url2734 when create_eks_clusters feature flag is enabled2735 when selected provider is gke and no valid gcp token exists2736 redirects to gcp authorize_url2737 when omniauth has not configured2738 does not have authorize_url2739 when access token is valid2740 has new object2741 when access token is expired2742 should be falsey2743 when access token is not stored in session2744 should be falsey2745 functionality for existing cluster2746 has new object2747 security2748 should be allowed for admin. Expected: 200,201,204,302 Got: 3022749 should be allowed for owner. Expected: 200,201,204,302 Got: 3022750 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022751 should be denied for developer. Expected: 401,404 Got: 4042752 should be denied for reporter. Expected: 401,404 Got: 4042753 should be denied for guest. Expected: 401,404 Got: 4042754 should be denied for user. Expected: 401,404 Got: 4042755 should be denied for external. Expected: 401,404 Got: 4042756 POST create for new cluster2757 functionality2758 when access token is valid2759 creates a new cluster2760 when legacy_abac param is false2761 creates a new cluster with legacy_abac_disabled2762 when access token is expired2763 should be falsey2764 when access token is not stored in session2765 should be falsey2766 security2767 should be allowed for admin. Expected: 200,201,204,302 Got: 3022768 should be allowed for owner. Expected: 200,201,204,302 Got: 3022769 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022770 should be denied for developer. Expected: 401,404 Got: 4042771 should be denied for reporter. Expected: 401,404 Got: 4042772 should be denied for guest. Expected: 401,404 Got: 4042773 should be denied for user. Expected: 401,404 Got: 4042774 should be denied for external. Expected: 401,404 Got: 4042775 POST create for existing cluster2776 functionality2777 when creates a cluster2778 creates a new cluster2779 when creates a RBAC-enabled cluster2780 creates a new cluster2781 when creates a user-managed cluster2782 creates a new user-managed cluster2783 security2784 should be allowed for admin. Expected: 200,201,204,302 Got: 3022785 should be allowed for owner. Expected: 200,201,204,302 Got: 3022786 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022787 should be denied for developer. Expected: 401,404 Got: 4042788 should be denied for reporter. Expected: 401,404 Got: 4042789 should be denied for guest. Expected: 401,404 Got: 4042790 should be denied for user. Expected: 401,404 Got: 4042791 should be denied for external. Expected: 401,404 Got: 4042792 GET cluster_status2793 functionality2794 responds with matching schema2795 invokes schedule_status_update on each application2796 security2797 should be allowed for admin. Expected: 200,201,204,302 Got: 2002798 should be allowed for owner. Expected: 200,201,204,302 Got: 2002799 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002800 should be denied for developer. Expected: 401,404 Got: 4042801 should be denied for reporter. Expected: 401,404 Got: 4042802 should be denied for guest. Expected: 401,404 Got: 4042803 should be denied for user. Expected: 401,404 Got: 4042804 should be denied for external. Expected: 401,404 Got: 4042805 GET show2806 functionality2807 renders view2808 security2809 should be allowed for admin. Expected: 200,201,204,302 Got: 2002810 should be allowed for owner. Expected: 200,201,204,302 Got: 2002811 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002812 should be denied for developer. Expected: 401,404 Got: 4042813 should be denied for reporter. Expected: 401,404 Got: 4042814 should be denied for guest. Expected: 401,404 Got: 4042815 should be denied for user. Expected: 401,404 Got: 4042816 should be denied for external. Expected: 401,404 Got: 4042817 PUT update2818 updates and redirects back to show page2819 when format is json2820 when changing parameters2821 when valid parameters are used2822 updates and redirects back to show page2823 when invalid parameters are used2824 rejects changes2825 security2826 should be allowed for admin. Expected: 200,201,204,302 Got: 3022827 should be allowed for owner. Expected: 200,201,204,302 Got: 3022828 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022829 should be denied for developer. Expected: 401,404 Got: 4042830 should be denied for reporter. Expected: 401,404 Got: 4042831 should be denied for guest. Expected: 401,404 Got: 4042832 should be denied for user. Expected: 401,404 Got: 4042833 should be denied for external. Expected: 401,404 Got: 4042834 DELETE destroy2835 functionality2836 when cluster is provided by GCP2837 when cluster is created2838 destroys and redirects back to clusters list2839 when cluster is being created2840 destroys and redirects back to clusters list2841 when cluster is provided by user2842 destroys and redirects back to clusters list2843 security2844 should be allowed for admin. Expected: 200,201,204,302 Got: 3022845 should be allowed for owner. Expected: 200,201,204,302 Got: 3022846 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022847 should be denied for developer. Expected: 401,404 Got: 4042848 should be denied for reporter. Expected: 401,404 Got: 4042849 should be denied for guest. Expected: 401,404 Got: 4042850 should be denied for user. Expected: 401,404 Got: 4042851 should be denied for external. Expected: 401,404 Got: 4042852 no project_id param2853 does not respond to any action without project_id param2854API::GroupClusters2855 GET /groups/:id/clusters2856 non-authorized user2857 responds with 4032858 authorized user2859 responds with 2002860 includes pagination headers2861 only include authorized clusters2862 GET /groups/:id/clusters/:cluster_id2863 non-authorized user2864 responds with 4032865 authorized user2866 returns specific cluster2867 returns cluster information2868 returns group information2869 returns kubernetes platform information2870 returns user information2871 returns GCP provider information2872 when cluster has no provider2873 does not include GCP provider info2874 with non-existing cluster2875 returns 4042876 POST /groups/:id/clusters/user2877 non-authorized user2878 responds with 4032879 authorized user2880 with valid params2881 responds with 2012882 creates a new Cluster::Cluster2883 when user does not indicate authorization type2884 defaults to RBAC2885 when user sets authorization type as ABAC2886 creates an ABAC cluster2887 with invalid params2888 responds with 4002889 does not create a new Clusters::Cluster2890 returns validation errors2891 when user tries to add multiple clusters2892 responds with 4002893 non-authorized user2894 responds with 4032895 PUT /groups/:id/clusters/:cluster_id2896 non-authorized user2897 responds with 4032898 authorized user2899 with valid params2900 responds with 2002901 updates cluster attributes2902 with invalid params2903 responds with 4002904 does not update cluster attributes2905 returns validation errors2906 with a GCP cluster2907 when user tries to change GCP specific fields2908 responds with 4002909 returns validation error2910 when user tries to change domain2911 responds with 2002912 with an user cluster2913 responds with 2002914 updates platform kubernetes attributes2915 with a cluster that does not belong to user2916 responds with 4042917 DELETE /groups/:id/clusters/:cluster_id2918 non-authorized user2919 responds with 4032920 authorized user2921 responds with 2042922 deletes the cluster2923 with a cluster that does not belong to user2924 responds with 4042925Groups::MilestonesController2926 #index2927 as HTML2928 shows group milestones page2929 searches legacy milestones by title when search_title is given2930 searches group milestones by title when search_title is given2931 when anonymous user2932 shows group milestones page2933 when issues and merge requests are disabled in public project2934 when anonymous user2935 behaves like milestone not accessible2936 does not return milestone2937 when non project or group member user2938 behaves like milestone not accessible2939 does not return milestone2940 when group member user2941 returns the milestone2942 as JSON2943 lists legacy group milestones and group milestones2944 external authorization2945 behaves like disabled when using an external authorization service2946 works when the feature is not enabled2947 renders a 404 with a message when the feature is enabled2948 #show2949 when there is a title parameter2950 searches for a legacy group milestone2951 when there is not a title parameter2952 searches for a group milestone2953 behaves like milestone tabs2954 #merge_requests2955 as html2956 redirects to milestone#show2957 as json2958 renders the merge requests tab template to a string2959 #participants2960 as html2961 redirects to milestone#show2962 as json2963 renders the participants tab template to a string2964 #labels2965 as html2966 redirects to milestone#show2967 as json2968 renders the labels tab template to a string2969 #create2970 creates group milestone with Chinese title2971 #update2972 updates group milestone2973 legacy group milestones2974 updates only group milestones state2975 #destroy2976 removes milestone2977 #ensure_canonical_path2978 for a GET request2979 when requesting the canonical path2980 non-show path2981 with exactly matching casing2982 does not redirect2983 with different casing2984 redirects to the correct casing2985 show path2986 with exactly matching casing2987 does not redirect2988 with different casing2989 redirects to the correct casing2990 when requesting a redirected path2991 redirects to the canonical path2992 when the old group path is a substring of the scheme or host2993 does not modify the requested host2994 when the old group path is substring of groups2995 does not modify the /groups part of the path2996 when the old group path is substring of groups plus the new path2997 does not modify the /groups part of the path2998 for a non-GET request2999 when requesting the canonical path with different casing3000 does not 4043001 does not redirect to the correct casing3002 when requesting a redirected path3003 returns not found3004Projects::BlobController3005 GET show3006 with file path3007 valid branch, valid file3008 should respond with 2003009 valid branch, invalid file3010 should respond with 4043011 invalid branch, valid file3012 should respond with 4043013 binary file3014 should respond with 2003015 Markdown file3016 should respond with 2003017 with file path and JSON format3018 valid branch, valid file3019 should have key "raw_path"3020 with viewer=none3021 should have key "raw_path"3022 with tree path3023 redirect to tree3024 redirects3025 GET diff3026 when essential params are missing3027 renders nothing3028 when essential params are present3029 when rendering for commit3030 renders the diff content3031 when rendering for merge request3032 renders diff context lines Gitlab::Diff::Line array3033 handles full being true3034 GET edit3035 anonymous3036 redirects to sign in and returns3037 as guest3038 redirects to blob show3039 as developer3040 redirects to blob show3041 as maintainer3042 redirects to blob show3043 PUT update3044 redirects to blob3045 ?from_merge_request_iid3046 redirects to MR diff3047 when user doesn't have access3048 redirects to blob3049 when user has forked project3050 when editing on the fork3051 redirects to blob3052 when editing on the original repository3053 redirects to forked project new merge request3054 DELETE destroy3055 for a file in a subdirectory3056 redirects to the sub directory3057 if deleted file is the last one in a subdirectory3058 redirects to the project root3059 when deleting a file in a branch other than master3060 redirects to the project root of the branch3061API::GroupMilestones3062 behaves like group and project milestones3063 GET /groups/:id/milestones3064 returns milestones list3065 returns a 401 error if user not authenticated3066 returns an array of active milestones3067 returns an array of closed milestones3068 returns an array of milestones specified by iids3069 does not return any milestone if none found3070 returns a milestone by iids array3071 returns a milestone by title3072 returns a milestone by searching for title3073 returns a milestones by searching for description3074 GET /groups/:id/milestones/:milestone_id3075 returns a milestone by id3076 returns 401 error if user not authenticated3077 returns a 404 error if milestone id not found3078 POST /groups/:id/milestones3079 creates a new milestone3080 creates a new milestone with description and dates3081 returns a 400 error if title is missing3082 returns a 400 error if params are invalid (duplicate title)3083 creates a new milestone with reserved html characters3084 PUT /groups/:id/milestones/:milestone_id3085 updates a milestone3086 removes a due date if nil is passed3087 returns a 404 error if milestone id not found3088 closes milestone3089 updates milestone with only start date3090 DELETE /groups/:id/milestones/:milestone_id3091 rejects a member with reporter access from deleting a milestone3092 deletes the milestone when the user has developer access to the project3093 GET /groups/:id/milestones/:milestone_id/issues3094 returns issues for a particular milestone3095 returns issues sorted by label priority3096 matches V4 response schema for a list of issues3097 returns a 401 error if user not authenticated3098 confidential issues3099 returns confidential issues to team members3100 does not return confidential issues to team members with guest role3101 does not return confidential issues to regular users3102 returns issues ordered by label priority3103 GET /groups/:id/milestones/:milestone_id/merge_requests3104 returns merge_requests for a particular milestone3105 returns merge_requests sorted by label priority3106 returns a 404 error if milestone id not found3107 returns a 404 if the user has no access to the milestone3108 returns a 401 error if user not authenticated3109 returns merge_requests ordered by position asc3110Projects::DiscussionsController3111 GET show3112 when user is not authorized to read the MR3113 returns 4043114 when user is authorized to read the MR3115 returns status 2003116 returns status 404 if MR does not exists3117 when user is authorized but note is LegacyDiffNote3118 returns status 2003119 POST resolve3120 when the user is not authorized to resolve the discussion3121 returns status 4043122 when the user is authorized to resolve the discussion3123 when the discussion is not resolvable3124 returns status 4043125 when the discussion is resolvable3126 resolves the discussion3127 sends notifications if all discussions are resolved3128 returns the name of the resolving user3129 returns status 2003130 renders discussion with serializer3131 diff discussion3132 returns truncated diff lines3133 DELETE unresolve3134 when the user is not authorized to resolve the discussion3135 returns status 4043136 when the user is authorized to resolve the discussion3137 when the discussion is not resolvable3138 returns status 4043139 when the discussion is resolvable3140 unresolves the discussion3141 returns status 2003142 when vue_mr_discussions cookie is present3143 renders discussion with serializer3144Projects::CompareController3145 GET index3146 returns successfully3147 GET show3148 when the refs exist3149 when we set the white space param3150 shows some diffs with ignore whitespace change option3151 when we do not set the white space param3152 sets the diffs and commits ivars3153 when the source ref does not exist3154 sets empty diff and commit ivars3155 when the target ref does not exist3156 sets empty diff and commit ivars3157 when the target ref is invalid3158 shows a flash message and redirects3159 when the source ref is invalid3160 shows a flash message and redirects3161 GET diff_for_path3162 when the source and target refs exist3163 when the user has access target the project3164 when the path exists in the diff3165 disables diff notes3166 only renders the diffs for the path given3167 when the path does not exist in the diff3168 returns a 4043169 when the user does not have access target the project3170 returns a 4043171 when the source ref does not exist3172 returns a 4043173 when the target ref does not exist3174 returns a 4043175 POST create3176 when sending valid params3177 redirects back to show3178 when sending invalid params3179 when the source ref is empty and target ref is set3180 redirects back to index and preserves the target ref3181 when the target ref is empty and source ref is set3182 redirects back to index and preserves source ref3183 when the target and source ref are empty3184 redirects back to index3185 GET signatures3186 when the source and target refs exist3187 when the user has access to the project3188 returns only the commit with a signature3189 when the user does not have access to the project3190 returns a 4043191 when the source ref does not exist3192 returns no signatures3193 when the target ref does not exist3194 returns no signatures3195Request Profiler3196 when user is logged-in3197 creates a profile of the request3198 creates a profile of the request3199 creates a profile of the request3200 when user is not logged-in3201 creates a profile of the request3202 creates a profile of the request3203 creates a profile of the request3204Public Project Pages Access3205 Project should be public3206 #public?3207 should be truthy3208 GET /projects/:id/pages_access3209 access depends on the level3210 pages_access_level: 0, with_user: "admin", expected_result: 4033211 correct return value3212 pages_access_level: 0, with_user: "owner", expected_result: 4033213 correct return value3214 pages_access_level: 0, with_user: "master", expected_result: 4033215 correct return value3216 pages_access_level: 0, with_user: "developer", expected_result: 4033217 correct return value3218 pages_access_level: 0, with_user: "reporter", expected_result: 4033219 correct return value3220 pages_access_level: 0, with_user: "guest", expected_result: 4033221 correct return value3222 pages_access_level: 0, with_user: "user", expected_result: 4033223 correct return value3224 pages_access_level: 0, with_user: nil, expected_result: 4033225 correct return value3226 pages_access_level: 30, with_user: "admin", expected_result: 2003227 correct return value3228 pages_access_level: 30, with_user: "owner", expected_result: 2003229 correct return value3230 pages_access_level: 30, with_user: "master", expected_result: 2003231 correct return value3232 pages_access_level: 30, with_user: "developer", expected_result: 2003233 correct return value3234 pages_access_level: 30, with_user: "reporter", expected_result: 2003235 correct return value3236 pages_access_level: 30, with_user: "guest", expected_result: 2003237 correct return value3238 pages_access_level: 30, with_user: "user", expected_result: 2003239 correct return value3240 pages_access_level: 30, with_user: nil, expected_result: 2003241 correct return value3242 pages_access_level: 20, with_user: "admin", expected_result: 2003243 correct return value3244 pages_access_level: 20, with_user: "owner", expected_result: 2003245 correct return value3246 pages_access_level: 20, with_user: "master", expected_result: 2003247 correct return value3248 pages_access_level: 20, with_user: "developer", expected_result: 2003249 correct return value3250 pages_access_level: 20, with_user: "reporter", expected_result: 2003251 correct return value3252 pages_access_level: 20, with_user: "guest", expected_result: 2003253 correct return value3254 pages_access_level: 20, with_user: "user", expected_result: 2003255 correct return value3256 pages_access_level: 20, with_user: nil, expected_result: 2003257 correct return value3258 pages_access_level: 10, with_user: "admin", expected_result: 2003259 correct return value3260 pages_access_level: 10, with_user: "owner", expected_result: 2003261 correct return value3262 pages_access_level: 10, with_user: "master", expected_result: 2003263 correct return value3264 pages_access_level: 10, with_user: "developer", expected_result: 2003265 correct return value3266 pages_access_level: 10, with_user: "reporter", expected_result: 2003267 correct return value3268 pages_access_level: 10, with_user: "guest", expected_result: 2003269 correct return value3270 pages_access_level: 10, with_user: "user", expected_result: 4033271 correct return value3272 pages_access_level: 10, with_user: nil, expected_result: 4033273 correct return value3274Rack Attack global throttles3275 unauthenticated requests3276 when the throttle is enabled3277 rejects requests over the rate limit3278 allows requests after throttling and then waiting for the next period3279 counts requests from different IPs separately3280 logs RackAttack info into structured logs3281 when the request is to the api internal endpoints3282 allows requests over the rate limit3283 when the throttle is disabled3284 allows requests over the rate limit3285 API requests authenticated with personal access token3286 with the token in the query string3287 behaves like rate-limited token-authenticated requests3288 when the throttle is enabled3289 rejects requests over the rate limit3290 allows requests after throttling and then waiting for the next period3291 counts requests from different users separately, even from the same IP3292 counts all requests from the same user, even via different IPs3293 logs RackAttack info into structured logs3294 when the throttle is disabled3295 allows requests over the rate limit3296 with the token in the headers3297 behaves like rate-limited token-authenticated requests3298 when the throttle is enabled3299 rejects requests over the rate limit3300 allows requests after throttling and then waiting for the next period3301 counts requests from different users separately, even from the same IP3302 counts all requests from the same user, even via different IPs3303 logs RackAttack info into structured logs3304 when the throttle is disabled3305 allows requests over the rate limit3306 API requests authenticated with OAuth token3307 with the token in the query string3308 behaves like rate-limited token-authenticated requests3309 when the throttle is enabled3310 rejects requests over the rate limit3311 allows requests after throttling and then waiting for the next period3312 counts requests from different users separately, even from the same IP3313 counts all requests from the same user, even via different IPs3314 logs RackAttack info into structured logs3315 when the throttle is disabled3316 allows requests over the rate limit3317 with the token in the headers3318 behaves like rate-limited token-authenticated requests3319 when the throttle is enabled3320 rejects requests over the rate limit3321 allows requests after throttling and then waiting for the next period3322 counts requests from different users separately, even from the same IP3323 counts all requests from the same user, even via different IPs3324 logs RackAttack info into structured logs3325 when the throttle is disabled3326 allows requests over the rate limit3327 "web" (non-API) requests authenticated with RSS token3328 with the token in the query string3329 behaves like rate-limited token-authenticated requests3330 when the throttle is enabled3331 rejects requests over the rate limit3332 allows requests after throttling and then waiting for the next period3333 counts requests from different users separately, even from the same IP3334 counts all requests from the same user, even via different IPs3335 logs RackAttack info into structured logs3336 when the throttle is disabled3337 allows requests over the rate limit3338 web requests authenticated with regular login3339 behaves like rate-limited web authenticated requests3340 when the throttle is enabled3341 rejects requests over the rate limit3342 allows requests after throttling and then waiting for the next period3343 counts requests from different users separately, even from the same IP3344 counts all requests from the same user, even via different IPs3345 logs RackAttack info into structured logs3346 when the throttle is disabled3347 allows requests over the rate limit3348 protected paths3349 unauthenticated requests3350 when protected paths throttle is disabled3351 allows requests over the rate limit3352 when protected paths throttle is enabled3353 rejects requests over the rate limit3354 when Omnibus throttle is present3355 allows requests over the rate limit3356 API requests authenticated with personal access token3357 with the token in the query string3358 behaves like rate-limited token-authenticated requests3359 when the throttle is enabled3360 rejects requests over the rate limit3361 allows requests after throttling and then waiting for the next period3362 counts requests from different users separately, even from the same IP3363 counts all requests from the same user, even via different IPs3364 logs RackAttack info into structured logs3365 when the throttle is disabled3366 allows requests over the rate limit3367 with the token in the headers3368 behaves like rate-limited token-authenticated requests3369 when the throttle is enabled3370 rejects requests over the rate limit3371 allows requests after throttling and then waiting for the next period3372 counts requests from different users separately, even from the same IP3373 counts all requests from the same user, even via different IPs3374 logs RackAttack info into structured logs3375 when the throttle is disabled3376 allows requests over the rate limit3377 when Omnibus throttle is present3378 allows requests over the rate limit3379 web requests authenticated with regular login3380 behaves like rate-limited web authenticated requests3381 when the throttle is enabled3382 rejects requests over the rate limit3383 allows requests after throttling and then waiting for the next period3384 counts requests from different users separately, even from the same IP3385 counts all requests from the same user, even via different IPs3386 logs RackAttack info into structured logs3387 when the throttle is disabled3388 allows requests over the rate limit3389 when Omnibus throttle is present3390 allows requests over the rate limit3391API::DeployKeys3392 GET /deploy_keys3393 when unauthenticated3394 returns authentication error3395 when authenticated as non-admin user3396 returns a 403 error3397 when authenticated as admin3398 returns all deploy keys3399 GET /projects/:id/deploy_keys3400 returns array of ssh keys3401 GET /projects/:id/deploy_keys/:key_id3402 returns a single key3403 returns 404 Not Found with invalid ID3404 POST /projects/:id/deploy_keys3405 does not create an invalid ssh key3406 does not create a key without title3407 creates new ssh key3408 returns an existing ssh key when attempting to add a duplicate3409 joins an existing ssh key to a new project3410 accepts can_push parameter3411 PUT /projects/:id/deploy_keys/:key_id3412 updates a public deploy key as admin3413 does not update a public deploy key as non admin3414 does not update a private key with invalid title3415 updates a private ssh key with correct attributes3416 DELETE /projects/:id/deploy_keys/:key_id3417 removes existing key from project3418 returns 404 Not Found with invalid ID3419 when the deploy key is public3420 does not delete the deploy key3421 when the deploy key is not public3422 when the deploy key is only used by this project3423 deletes the deploy key3424 when the deploy key is used by other projects3425 does not delete the deploy key3426 behaves like 412 response3427 for a modified ressource3428 returns 4123429 for an unmodified ressource3430 returns accepted3431 POST /projects/:id/deploy_keys/:key_id/enable3432 when the user can admin the project3433 enables the key3434 when authenticated as non-admin user3435 returns a 404 error3436Dashboard::TodosController3437 GET #index3438 project authorization3439 renders 404 when user does not have read access on given project3440 renders 404 when given project does not exists3441 renders 200 when filtering for "any project" todos3442 renders 200 when user has access on given project3443 with render_views3444 avoids N+1 queries3445 group authorization3446 renders 404 when user does not have read access on given group3447 behaves like paginated collection3448 renders a page number that is not ouf of range3449 redirects to last_page if page number is larger than number of pages3450 does not redirect to external sites when provided a host field3451 when providing no filters3452 does not perform a query to get the page count, but gets that from the user3453 when providing filters3454 performs a query to get the correct page count3455 external authorization3456 behaves like disabled when using an external authorization service3457 works when the feature is not enabled3458 renders a 404 with a message when the feature is enabled3459 PATCH #restore3460 restores the todo to pending state3461 PATCH #bulk_restore3462 restores the todos to pending state3463Projects::ArtifactsController3464 GET index3465 when feature flag is on3466 sets the artifacts variable3467 sets the total size variable3468 pagination3469 paginates artifacts3470 when feature flag is off3471 renders no content3472 does not set the artifacts variable3473 does not set the total size variable3474 DELETE destroy3475 deletes the artifact3476 redirects to artifacts index page3477 sets the notice3478 when artifact deletion fails3479 redirects to artifacts index page3480 sets the notice3481 when user is not authorized3482 does not delete the artifact3483 GET download3484 when no file type is supplied3485 sends the artifacts file3486 when a file type is supplied3487 when an invalid file type is supplied3488 returns 4043489 when codequality file type is supplied3490 when file is stored locally3491 sends the codequality report3492 when file is stored remotely3493 sends the codequality report3494 when proxied3495 sends the codequality report3496 GET browse3497 when the directory exists3498 renders the browse view3499 when the directory does not exist3500 responds Not Found3501 GET file3502 when the file is served by GitLab Pages3503 when the file exists3504 renders the file view3505 when the file does not exist3506 responds Not Found3507 when the file is served through Rails3508 when the file exists3509 renders the file view3510 when the file does not exist3511 responds Not Found3512 when the project is private3513 does not redirect the request3514 when the project is private and pages access control is enabled3515 renders the file view3516 GET raw3517 when the file exists3518 when using local file storage3519 behaves like a valid file3520 serves the file using workhorse3521 when using remote file storage3522 behaves like a valid file3523 serves the file using workhorse3524 GET latest_succeeded3525 cannot find the job3526 has no such ref3527 behaves like not found3528 should respond with numeric status code not_found3529 has no such job3530 behaves like not found3531 should respond with numeric status code not_found3532 has no path3533 behaves like not found3534 should respond with numeric status code not_found3535 found the job and redirect3536 with regular branch3537 behaves like redirect to the job3538 redirects3539 with branch name containing slash3540 behaves like redirect to the job3541 redirects3542 with branch name and path containing slashes3543 redirects3544API::ProtectedTags3545 GET /projects/:id/protected_tags3546 when authenticated as a maintainer3547 behaves like protected tags3548 returns the protected tags3549 when authenticated as a guest3550 behaves like 403 response3551 returns 4033552 GET /projects/:id/protected_tags/:tag3553 when authenticated as a maintainer3554 behaves like protected tag3555 returns the protected tag3556 when protected tag does not exist3557 behaves like 404 response3558 returns 4043559 when protected tag contains a wildcard3560 behaves like protected tag3561 returns the protected tag3562 when protected tag does not exist3563 behaves like 404 response3564 returns 4043565 when authenticated as a guest3566 behaves like 403 response3567 returns 4033568 POST /projects/:id/protected_tags3569 when authenticated as a maintainer3570 protects a single tag with maintainers can create tags3571 protects a single tag with developers can create tags3572 protects a single tag with no one can create tags3573 returns a 422 error if the same tag is protected twice3574 returns 201 if the same tag is proteted on different projects3575 when tag has a wildcard in its name3576 protects multiple tags with a wildcard in the name3577 when authenticated as a guest3578 returns a 403 error if guest3579 DELETE /projects/:id/protected_tags/unprotect/:tag3580 unprotects a single tag3581 returns 404 if tag does not exist3582 behaves like 412 response3583 for a modified ressource3584 returns 4123585 for an unmodified ressource3586 returns accepted3587 when tag has a wildcard in its name3588 unprotects a wildcard tag3589SearchController3590 GET #show3591 finds issue comments3592 behaves like when the user cannot read cross project3593 blocks access without a project_id3594 allows access with a project_id3595 still allows accessing the search page3596 behaves like with external authorization service enabled3597 renders a 403 when no project is given3598 renders a 200 when a project was set3599 uses the right partials depending on scope3600 partial: "_blob", scope: :blobs3601 should render template search/results/_blob3602 partial: "_wiki_blob", scope: :wiki_blobs3603 should render template search/results/_wiki_blob3604 partial: "_commit", scope: :commits3605 should render template search/results/_commit3606 global search3607 omits pipeline status from load3608 on restricted projects3609 doesn't expose comments on merge_requests3610 doesn't expose comments on snippets3611 when signed out3612 doesn't expose comments on issues3613 GET #count3614 returns the result count for the given term and scope3615 raises an error if search term is missing3616 raises an error if search scope is missing3617 behaves like when the user cannot read cross project3618 blocks access without a project_id3619 allows access with a project_id3620 behaves like with external authorization service enabled3621 renders a 403 when no project is given3622 renders a 200 when a project was set3623 GET #autocomplete3624 behaves like when the user cannot read cross project3625 blocks access without a project_id3626 allows access with a project_id3627 behaves like with external authorization service enabled3628 renders a 403 when no project is given3629 renders a 200 when a project was set3630API::ProjectImport3631 POST /projects/import3632 schedules an import using a namespace3633 schedules an import using the namespace path3634 schedules an import at the user namespace level3635 does not schedule an import for a namespace that does not exist3636 does not schedule an import if the user has no permission to the namespace3637 does not schedule an import if the user uploads no valid file3638 stores params that can be overridden3639 does not store params that are not allowed3640 correctly overrides params during the import3641 when a name is explicitly set3642 schedules an import using a namespace and a different name3643 schedules an import using the namespace path and a different name3644 sets name correctly3645 sets name correctly with an overwrite3646 schedules an import using the path and name explicitly set to nil3647 when target path already exists in namespace3648 does not schedule an import3649 when param overwrite is true3650 schedules an import3651 GET /projects/:id/import3652 returns the import status3653 returns the import status and the error if failed3654Projects::BoardsController3655 GET index3656 creates a new project board when project does not have one3657 sets boards_endpoint instance variable to a boards path3658 when format is HTML3659 renders template3660 with unauthorized user3661 returns a not found 404 response3662 when user is signed out3663 renders template3664 when format is JSON3665 returns a list of project boards3666 with unauthorized user3667 returns a not found 404 response3668 issues are disabled3669 returns a not found 404 response3670 behaves like unauthorized when external service denies access3671 allows access when the authorization service allows it3672 allows access when the authorization service denies it3673 GET show3674 sets boards_endpoint instance variable to a boards path3675 when format is HTML3676 renders template3677 with unauthorized user3678 returns a not found 404 response3679 when user is signed out3680 does not save visit3681 when format is JSON3682 returns project board3683 with unauthorized user3684 returns a not found 404 response3685 when board does not belong to project3686 returns a not found 404 response3687Admin::ApplicationSettingsController3688 GET #usage_data with no access3689 returns 4043690 GET #usage_data3691unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.3692unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.3693 returns HTML data3694 returns JSON data3695 PUT #update3696 updates the password_authentication_enabled_for_git setting3697 updates the default_project_visibility for string value3698 update the restricted levels for string values3699 updates the restricted_visibility_levels when empty array is passed3700 updates the receive_max_input_size setting3701 updates the default_project_creation for string value3702 external policy classification settings3703 updates settings when the feature is available3704 verify panel actions3705 behaves like renders correct panels3706 renders correct action on error3707 redirects to same panel on success3708 behaves like renders correct panels3709 renders correct action on error3710 redirects to same panel on success3711 behaves like renders correct panels3712 renders correct action on error3713 redirects to same panel on success3714 behaves like renders correct panels3715 renders correct action on error3716 redirects to same panel on success3717 behaves like renders correct panels3718 renders correct action on error3719 redirects to same panel on success3720 behaves like renders correct panels3721 renders correct action on error3722 redirects to same panel on success3723 behaves like renders correct panels3724 renders correct action on error3725 redirects to same panel on success3726 behaves like renders correct panels3727 renders correct action on error3728 redirects to same panel on success3729 PUT #reset_registration_token3730 resets runner registration token3731 redirects the user to admin runners page3732 GET #lets_encrypt_terms_of_service3733 redirects the user to the terms of service page3734Projects::DeployKeysController3735 GET index3736 when html requested3737 redirects to project settings with the correct anchor3738 when json requested3739 returns json in a correct format3740 POST create3741 creates a new deploy key for the project3742 redirects to project settings with the correct anchor3743 when the deploy key is invalid3744 shows an alert with the validations errors3745 /enable/:id3746 with anonymous user3747 redirects to login3748 with user with no permission3749 returns 4043750 with user with permission3751 returns 3023752 returns 4043753 with admin3754 returns 3023755 /disable/:id3756 with anonymous user3757 redirects to login3758 with user with no permission3759 returns 4043760 with user with permission3761 returns 3023762 returns 4043763 with admin3764 returns 3023765task completion status response3766 task list completion status for issues3767 behaves like taskable completion status provider3768 with a description of ""3769 should respond with numeric status code 2003770 returns the expected results3771 with a description of "Lorem ipsum"3772 should respond with numeric status code 2003773 returns the expected results3774 with a description of "- [ ] task 1\n - [x] task 2 "3775 should respond with numeric status code 2003776 returns the expected results3777 with a description of "- [ ] task 1\n - [ ] task 2 "3778 should respond with numeric status code 2003779 returns the expected results3780 with a description of "- [x] task 1\n - [x] task 2 "3781 should respond with numeric status code 2003782 returns the expected results3783 with a description of "- [ ] task 1"3784 should respond with numeric status code 2003785 returns the expected results3786 with a description of "- [x] task 1"3787 should respond with numeric status code 2003788 returns the expected results3789 task list completion status for merge_requests3790 behaves like taskable completion status provider3791 with a description of ""3792 should respond with numeric status code 2003793 returns the expected results3794 with a description of "Lorem ipsum"3795 should respond with numeric status code 2003796 returns the expected results3797 with a description of "- [ ] task 1\n - [x] task 2 "3798 should respond with numeric status code 2003799 returns the expected results3800 with a description of "- [ ] task 1\n - [ ] task 2 "3801 should respond with numeric status code 2003802 returns the expected results3803 with a description of "- [x] task 1\n - [x] task 2 "3804 should respond with numeric status code 2003805 returns the expected results3806 with a description of "- [ ] task 1"3807 should respond with numeric status code 2003808 returns the expected results3809 with a description of "- [x] task 1"3810 should respond with numeric status code 2003811 returns the expected results3812Projects::BadgesController3813 #pipeline3814 behaves like a badge resource3815 when pipelines are public3816 when project is public3817 returns the pipeline badge to unauthenticated users3818 when project is restricted3819 returns the pipeline badge to guest users3820 format3821 renders the `flat` badge layout by default3822 when style param is set to `flat`3823 renders the `flat` badge layout3824 when style param is set to an invalid type3825 renders the `flat` (default) badge layout3826 when style param is set to `flat-square`3827 renders the `flat-square` badge layout3828 when pipelines are not public3829 when project is public3830 returns 404 to unauthenticated users3831 when project is restricted to the user3832 defaults to project permissions3833 #coverage3834 behaves like a badge resource3835 when pipelines are public3836 when project is public3837 returns the coverage badge to unauthenticated users3838 when project is restricted3839 returns the coverage badge to guest users3840 format3841 renders the `flat` badge layout by default3842 when style param is set to `flat`3843 renders the `flat` badge layout3844 when style param is set to an invalid type3845 renders the `flat` (default) badge layout3846 when style param is set to `flat-square`3847 renders the `flat-square` badge layout3848 when pipelines are not public3849 when project is public3850 returns 404 to unauthenticated users3851 when project is restricted to the user3852 defaults to project permissions3853Projects::Registry::RepositoriesController3854 when user has access to registry3855 GET index3856 when root container repository exists3857 does not create root container repository3858 when root container repository is not created3859 when there are tags for this repository3860 successfully renders container repositories3861 tracks the event3862 creates a root container repository3863 json has a list of projects3864 when there are no tags for this repository3865 successfully renders container repositories3866 does not ensure root container repository3867 responds with json if asked3868 DELETE destroy3869 when root container repository exists3870 schedules a job to delete a repository3871 tracks the event3872 when user does not have access to registry3873 GET index3874 responds with 4043875 does not ensure root container repository3876Projects::RepositoriesController3877 GET archive3878 as a guest3879 responds with redirect in correct format3880 as a user3881 uses Gitlab::Workhorse3882 responds with redirect to the short name archive if fully qualified3883 handles legacy queries with no ref3884 handles legacy queries with the ref specified as ref in params3885 handles legacy queries with the ref specified as id in params3886 prioritizes the id param over the ref param when both are specified3887 when the service raises an error3888 renders Not Found3889 caching3890 sets appropriate caching headers3891 when project is public3892 sets appropriate caching headers3893 when ref is a commit SHA3894 max-age is set to 3600 in Cache-Control header3895 when If-None-Modified header is set3896 returns a 304 status3897 as a sessionless user3898 when no token is provided3899 redirects to sign in page3900 when a token param is present3901 when token is correct3902 calls the action normally3903 when token is incorrect3904 redirects to sign in page3905 when a token header is present3906 when token is correct3907 calls the action normally3908 when token is incorrect3909 redirects to sign in page3910Adding an AwardEmoji3911 when the user does not have permission3912 behaves like a mutation that does not create an AwardEmoji3913 should not change `AwardEmoji.count`3914 behaves like a mutation that returns top-level errors3915 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]3916 when the user has permission3917 when the given awardable is not an Awardable3918 behaves like a mutation that does not create an AwardEmoji3919 should not change `AwardEmoji.count`3920 behaves like a mutation that returns top-level errors3921 should eq ["Cannot award emoji to this resource"]3922 when the given awardable is an Awardable but still cannot be awarded an emoji3923 behaves like a mutation that does not create an AwardEmoji3924 should not change `AwardEmoji.count`3925 behaves like a mutation that returns top-level errors3926 should eq ["Cannot award emoji to this resource"]3927 when the given awardable an Awardable3928 creates an emoji3929 returns the emoji3930 marking Todos as done3931 type: :issue, expectation: true3932 should eq true3933 type: :merge_request, expectation: true3934 should eq true3935 type: :project_snippet, expectation: false3936 should eq false3937 for notes3938 regular Notes3939 marks the Todo as done3940 PersonalSnippet Notes3941 does not mark the Todo as done3942 when there were active record validation errors3943 returns an empty awardEmoji3944 behaves like a mutation that does not create an AwardEmoji3945 should not change `AwardEmoji.count`3946 behaves like a mutation that returns errors in the response3947 should eq ["Error 1", "Error 2"]3948Groups::UploadsController3949 behaves like handle uploads3950 behaves like handle uploads authorize3951 POST #authorize3952 when a user is not authorized to upload a file3953 returns 404 status3954 when a user can upload a file3955 and the request bypassed workhorse3956 raises an exception3957 and request is sent by gitlab-workhorse to authorize the request3958 when using local storage3959 behaves like a local file3960 behaves like a valid response3961 responds with status 2003962 uses the gitlab-workhorse content type3963 responds with status 200, location of uploads store and object details3964 when using remote storage3965 when direct upload is enabled3966 behaves like a valid response3967 responds with status 2003968 uses the gitlab-workhorse content type3969 responds with status 200, location of uploads remote store and object details3970 when direct upload is disabled3971 behaves like a local file3972 behaves like a valid response3973 responds with status 2003974 uses the gitlab-workhorse content type3975 responds with status 200, location of uploads store and object details3976 POST #create3977 when a user is not authorized to upload a file3978 returns 404 status3979 when a user can upload a file3980 without params['file']3981 returns an error3982 with valid image3983 returns a content with original filename, new link, and correct type.3984 creates a corresponding Upload record3985 with valid non-image file3986 returns a content with original filename, new link, and correct type.3987 GET #show3988 when accessing a specific upload via different model3989 responds with status 4043990 when the model is public3991 when not signed in3992 when the file exists3993 responds with status 2003994 when neither the uploader nor the model exists3995 responds with status 4043996 when the file doesn't exist3997 responds with status 4043998 when signed in3999 when the file exists4000 responds with status 2004001 when the file doesn't exist4002 responds with status 4044003 when the model is private4004 when not signed in4005 when the file exists4006 when the file is an image4007 responds with status 2004008 when the file is not an image4009 redirects to the sign in page4010 when the file doesn't exist4011 redirects to the sign in page4012 when signed in4013 when the user has access to the project4014 when the file exists4015 responds with status 2004016 when the file doesn't exist4017 responds with status 4044018 when the user doesn't have access to the model4019 when the file exists4020 when the file is an image4021 responds with status 2004022 when the file is not an image4023 responds with status 4044024 when the file doesn't exist4025 responds with status 4044026Updating a Note4027 when the user does not have permission4028 does not update the Note4029 behaves like a mutation that returns top-level errors4030 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]4031 when the user has permission4032 updates the Note4033 returns the updated Note4034 behaves like a Note mutation when the given resource id is not for a Note4035 behaves like a mutation that returns top-level errors4036 should eq ["Resource is not a note"]4037 when there are ActiveRecord validation errors4038 does not update the Note4039 returns the Note with its original body4040 behaves like a mutation that returns errors in the response4041 should eq ["Note can't be blank"]4042Projects::Settings::CiCdController4043 GET show4044 renders show with 200 status code4045 with group runners4046 sets assignable project runners only4047 #reset_cache4048 calls reset project cache service4049 when service returns successfully4050 returns a success header4051 when service does not return successfully4052 returns an error header4053 PUT #reset_registration_token4054 resets runner registration token4055 redirects the user to admin runners page4056 PATCH update4057 redirects to the settings page4058 when updating the auto_devops settings4059 following the instance default4060 allows enabled to be set to nil4061 when run_auto_devops_pipeline is true4062 when the project repository is empty4063 sets a warning flash4064 does not queue a CreatePipelineWorker4065 when the project repository is not empty4066 sets a success flash4067 queues a CreatePipelineWorker4068 when run_auto_devops_pipeline is not true4069 does not queue a CreatePipelineWorker4070 when updating general settings4071 when build_timeout_human_readable is not specified4072 set default timeout4073 when build_timeout_human_readable is specified4074 set specified timeout4075 when build_timeout_human_readable is invalid4076 set specified timeout4077 when default_git_depth is not specified4078 set specified git depth4079 when max_artifacts_size is specified4080 and user is not an admin4081 does not set max_artifacts_size4082 and user is an admin4083 sets max_artifacts_size4084Projects::Ci::LintsController4085 GET #show4086 with enough privileges4087 should be successful4088 renders show page4089 retrieves project4090 without enough privileges4091 responds with 4044092 POST #create4093 with a valid gitlab-ci.yml4094 should be successful4095 render show page4096 retrieves project4097 with an invalid gitlab-ci.yml4098 assigns errors4099 without enough privileges4100 responds with 4044101GitlabSchema configurations4102 regular queries4103 behaves like imposing query limits4104 #max_complexity4105 when complexity is too high4106 shows an error4107 #max_depth4108 when query depth is too high4109 shows error4110 when query depth is within range4111 has no error4112 multiplexed queries4113 does not authenticate all queries4114 behaves like imposing query limits4115 fails all queries when only one of the queries is too complex4116 #max_complexity4117 when complexity is too high4118 shows an error4119 #max_depth4120 when query depth is too high4121 shows error4122 when query depth is within range4123 has no error4124 authentication4125 authenticates all queries4126 when IntrospectionQuery4127 is not too complex4128 logging4129 logs the query complexity and depth4130 logs using `format_message`4131 global id's4132 uses GlobalID to expose ids4133Groups::RunnersController4134 #show4135 when user is owner4136 renders show with 200 status code4137 when user is not owner4138 renders a 4044139 #edit4140 when user is owner4141 renders show with 200 status code4142 when user is not owner4143 renders a 4044144 #update4145 when user is an owner4146 updates the runner, ticks the queue, and redirects4147 when user is not an owner4148 rejects the update and responds 4044149 #destroy4150 when user is an owner4151 destroys the runner and redirects4152 when user is not an owner4153 responds 404 and does not destroy the runner4154 #resume4155 when user is an owner4156 marks the runner as active, ticks the queue, and redirects4157 when user is not an owner4158 responds 404 and does not activate the runner4159 #pause4160 when user is an owner4161 marks the runner as inactive, ticks the queue, and redirects4162 when user is not an owner4163 responds 404 and does not update the runner or queue4164Projects::Tags::ReleasesController4165 GET #edit4166 initializes a new release4167 retrieves an existing release4168 PUT #update4169 updates release note description4170 creates a release if one does not exist4171 sets the release name, sha, and author for a new release4172 deletes release when description is empty4173 does nothing when description is empty and the tag does not have a release4174API::Suggestions4175 PUT /suggestions/:id/apply4176 when successfully applies patch4177 returns 200 with json content4178 when not able to apply patch4179 returns 400 with json content4180 when unauthorized4181 returns 403 with json content4182Groups::Settings::CiCdController4183 GET #show4184 when user is owner4185 renders show with 200 status code4186 when user is not owner4187 renders a 4044188 external authorization4189 renders show with 200 status code4190 PUT #reset_registration_token4191 when user is owner4192 resets runner registration token4193 redirects the user to admin runners page4194 when user is not owner4195 renders a 4044196 PATCH #update_auto_devops4197 when user does not have enough permission4198 should respond with numeric status code 4044199 when user has enough privileges4200 should redirect to "/groups/group392/-/settings/ci_cd"4201 when service execution went wrong4202 returns a flash alert4203 when service execution was successful4204 returns a flash notice4205 when changing auto devops value4206 when explicitly enabling auto devops4207 updates group attribute4208 when explicitly disabling auto devops4209 updates group attribute4210 PATCH #update4211 when user is not an admin4212 should respond with numeric status code 4044213 when user is an admin4214 should redirect to "/groups/group398/-/settings/ci_cd"4215 when service execution went wrong4216 returns a flash alert4217 when service execution was successful4218 returns a flash notice4219RegistrationsController4220 #create4221 logs a 'User Created' message4222 handles when params are new_user4223 email confirmation4224 when send_user_confirmation_email is false4225 signs the user in4226 when send_user_confirmation_email is true4227 when soft email confirmation is not enabled4228 does not authenticate the user and sends a confirmation email4229 when soft email confirmation is enabled4230 authenticates the user and sends a confirmation email4231 when signup_enabled? is false4232 redirects to sign_in4233 when reCAPTCHA is enabled4234 displays an error when the reCAPTCHA is not solved4235 redirects to the dashboard when the recaptcha is solved4236 does not require reCAPTCHA if disabled by feature flag4237 when invisible captcha is enabled4238 the honeypot has not been filled and the signup form has not been submitted too quickly4239 creates an account4240 honeypot spam detection4241 logs the request, refuses to create an account and renders an empty body4242 timestamp spam detection4243 the sign up form has been submitted without the invisible_captcha_timestamp parameter4244 logs the request, refuses to create an account and displays a flash alert4245 the sign up form has been submitted too quickly4246 logs the request, refuses to create an account and displays a flash alert4247 when terms are enforced4248 redirects back with a notice when the checkbox was not checked4249 creates the user with agreement when terms are accepted4250 #destroy4251 user requires password confirmation4252 fails if password confirmation is not provided4253 fails if password confirmation is wrong4254 succeeds if password is confirmed4255 user does not require password confirmation4256 fails if username confirmation is not provided4257 fails if username confirmation is wrong4258 succeeds if username is confirmed4259API::Settings Settings4260 GET /application/settings4261 returns application settings4262 PUT /application/settings4263 supports legacy performance_bar_allowed_group_id4264 supports legacy performance_bar_enabled4265 supports legacy allow_local_requests_from_hooks_and_services4266 custom repository storage type set in the config4267 updates application settings4268 external policy classification settings4269 includes the attributes in the API4270 allows updating the settings4271 snowplow tracking settings4272 includes the attributes in the API4273 allows updating the settings4274 missing snowplow_collector_hostname value when snowplow_enabled is true4275 returns a blank parameter error message4276 handles validation errors4277 missing plantuml_url value when plantuml_enabled is true4278 returns a blank parameter error message4279 asset_proxy settings4280 updates application settings4281 allows a string for asset_proxy_whitelist4282 domain_blacklist settings4283 rejects domain_blacklist_enabled when domain_blacklist is empty4284 allows array for domain_blacklist4285 allows a string for domain_blacklist4286Boards::ListsController4287 #index4288 does not have N+1 queries4289Projects::StagesController4290 POST #play_manual.json4291 when user does not have access4292 returns not authorized4293 when user has access4294 when the stage does not exists4295 fails to play all manual4296 when the stage exists4297 starts all manual jobs4298Projects::GraphsController4299 GET languages4300 redirects_to action charts4301 GET commits4302 redirects_to action charts4303 charts4304 with an anonymous user4305 renders charts with 200 status code4306 when languages were previously detected4307 sets the languages properly4308EnforcesAdminAuthentication4309 feature flag :user_mode_in_session is enabled4310 authenticate_admin!4311 as an admin4312 renders redirect for re-authentication and does not set admin mode4313 when admin mode is active4314 renders ok4315 as a user4316 renders a 4044317 does not set admin mode4318 feature flag :user_mode_in_session is disabled4319 authenticate_admin!4320 as an admin4321 allows direct access to page4322 does not set admin mode4323 as a user4324 renders a 4044325 does not set admin mode4326API::SystemHooks4327 GET /hooks4328 when no user4329 returns authentication error4330 when not an admin4331 returns forbidden error4332 when authenticated as admin4333 returns an array of hooks4334 POST /hooks4335 creates new hook4336 responds with 400 if url not given4337 responds with 400 if url is invalid4338 does not create new hook without url4339 sets default values for events4340 sets explicit values for events4341 GET /hooks/:id4342 returns hook by id4343 returns 404 on failure4344 DELETE /hooks/:id4345 deletes a hook4346 returns 404 if the system hook does not exist4347 behaves like 412 response4348 for a modified ressource4349 returns 4124350 for an unmodified ressource4351 returns accepted4352Groups::SharedProjectsController4353 GET #index4354 returns only projects shared with the group4355 allows filtering shared projects4356 allows sorting projects4357 does not include archived projects4358API::Features4359 GET /features4360 returns a 401 for anonymous users4361 returns a 403 for users4362 returns the feature list for admins4363 POST /feature4364 when the feature does not exist4365 returns a 401 for anonymous users4366 returns a 403 for users4367 creates a feature with the given percentage if passed an integer4368 when passed value=true4369 creates an enabled feature4370 creates an enabled feature for the given Flipper group when passed feature_group=perf_team4371 creates an enabled feature for the given user when passed user=username4372 creates an enabled feature for the given user and feature group when passed user=username and feature_group=perf_team4373 when enabling for a project by path4374 when the project exists4375 sets the feature gate4376 when the project does not exist4377 sets no new values4378 when enabling for a group by path4379 when the group exists4380 sets the feature gate4381 when the group does not exist4382 sets no new values and keeps the feature disabled4383 when the feature exists4384 when passed value=true4385 enables the feature4386 enables the feature for the given Flipper group when passed feature_group=perf_team4387 enables the feature for the given user when passed user=username4388 when feature is enabled and value=false is passed4389 disables the feature4390 disables the feature for the given Flipper group when passed feature_group=perf_team4391 disables the feature for the given user when passed user=username4392 with a pre-existing percentage value4393 updates the percentage of time if passed an integer4394 DELETE /feature/:name4395 when the user has no access4396 returns a 401 for anonymous users4397 returns a 403 for users4398 when the user has access4399 returns 204 when the value is not set4400 when the gate value was set4401 deletes an enabled feature4402Projects::Settings::RepositoryController4403 GET show4404 renders show with 200 status code4405 PUT cleanup4406 enqueues a RepositoryCleanupWorker4407 POST create_deploy_token4408 creates deploy token4409Projects::Environments::PrometheusApiController4410 GET #proxy4411 with valid requests4412 with success result4413 returns prometheus response4414 with format string4415 replaces variables with values4416 with nil query4417 does not raise error4418 with nil result4419 returns 204 no_content4420 with 404 result4421 returns body4422 with error result4423 with http_status4424 sets the http response status code4425 without http_status4426 returns bad_request4427 with inappropriate requests4428 with anonymous user4429 redirects to signin page4430 without correct permissions4431 returns 4044432 with invalid environment id4433 returns 4044434API::Markdown4435 POST /markdown4436 when arguments are invalid4437 when text is missing4438 responses with 400 Bad Request4439 when project is not found4440 behaves like 404 Project Not Found4441 responses with 404 Not Found4442 when arguments are valid4443 when not using gfm4444 without project4445 behaves like rendered markdown text without GFM4446 renders markdown text4447 with project4448 when not authorized4449 behaves like 404 Project Not Found4450 responses with 404 Not Found4451 when authorized4452 behaves like rendered markdown text without GFM4453 renders markdown text4454 when using gfm4455 without project4456 renders markdown text4457 with project4458 renders markdown text4459 with a public project and confidential issue4460 when not logged in4461 behaves like user without proper access4462 does not render the title or link4463 when logged in as user without access4464 behaves like user without proper access4465 does not render the title or link4466 when logged in as author4467 renders the title or link4468rendering namespace statistics4469 behaves like a working namespace with storage statistics query4470 includes the packages size if the user can read the statistics4471 behaves like a working graphql query4472 returns a successful response4473 when the namespace is a group4474 behaves like a working namespace with storage statistics query4475 includes the packages size if the user can read the statistics4476 behaves like a working graphql query4477 returns a successful response4478 when the namespace is public4479 hides statistics for unauthenticated requests4480InvitesController4481 GET #accept4482 accepts user4483 GET #decline4484 declines user4485getting task completion status information4486 with description - [ ] task 1\n- [ ] task 24487 when type is issue4488 behaves like graphql task completion status provider4489 returns the expected task completion status4490 when type is merge request4491 behaves like graphql task completion status provider4492 returns the expected task completion status4493 with description - [x] task 1\n- [ ] task 24494 when type is issue4495 behaves like graphql task completion status provider4496 returns the expected task completion status4497 when type is merge request4498 behaves like graphql task completion status provider4499 returns the expected task completion status4500 with description - [x] task 1\n- [x] task 24501 when type is issue4502 behaves like graphql task completion status provider4503 returns the expected task completion status4504 when type is merge request4505 behaves like graphql task completion status provider4506 returns the expected task completion status4507Profiles::NotificationsController4508 GET show4509 renders4510 POST update4511 updates only permitted attributes4512 shows an error message if the params are invalid4513Import::PhabricatorController4514 GET #new4515 when the import source is not available4516 should respond with numeric status code 4044517 when the feature is disabled4518 should respond with numeric status code 4044519 when the import is available4520 should respond with numeric status code 2004521 POST #create4522 with valid params4523 creates a project to import4524 when an import param is missing4525 does not create the project4526 when a project param is missing4527 does not create the project4528MetricsDashboard4529 GET #metrics_dashboard4530 when no parameters are provided4531 returns an error json_response4532 when params are provided4533 returns the specified dashboard4534 when parameters are provided and the list of all dashboards is required4535 returns a dashboard in addition to the list of dashboards4536Oauth::ApplicationsController4537 project members4538 GET #index4539 shows list of applications4540 redirects back to profile page if OAuth applications are disabled4541 POST #create4542 creates an application4543 redirects back to profile page if OAuth applications are disabled4544 redirect_uri4545 shows an error for a forbidden URI4546Import::GoogleCodeController4547 POST callback4548 stores Google Takeout dump list in session4549 GET status4550 assigns variables4551 does not show already added project4552 does not show any invalid projects4553API::Avatar4554 GET /avatar4555 avatar uploaded to GitLab4556 user with matching public email address4557 returns the avatar url4558 no user with matching public email address4559 returns the avatar url from Gravatar4560 avatar uploaded to Gravatar4561 user with matching public email address4562 returns the avatar url from Gravatar4563 no user with matching public email address4564 returns the avatar url from Gravatar4565 public visibility level restricted4566 when authenticated4567 returns the avatar url4568 when unauthenticated4569 behaves like 403 response4570 returns 4034571ContinueParams4572 returns an empty hash if params are not present4573 cleans up any params that are not allowed4574 does not allow cross host redirection4575 allows redirecting to a path with querystring4576InstanceStatistics::CohortsController4577 renders a 404 when the usage ping is disabled4578 behaves like instance statistics availability4579 GET #index4580DEPRECATION 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/app/services/cohorts_service.rb:91)4581 is available when the feature is available publicly4582 renders a 404 when the feature is not available publicly4583 for admins4584DEPRECATION 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/app/services/cohorts_service.rb:91)4585 allows access when the feature is not available publicly4586Groups::AvatarsController4587 removes avatar from DB calling destroy4588 works when external authorization service is enabled4589GoogleApi::AuthorizationsController4590 GET|POST #callback4591 session key is present4592 session key matches state param4593 sets token and expires_at in session4594 redirects to the URL stored in state param4595 session key does not match state param4596 behaves like access denied4597 returns a 4044598 state param is blank4599 behaves like access denied4600 returns a 4044601 state param is present, but session key is blank4602 behaves like access denied4603 returns a 4044604Dashboard::SnippetsController4605 GET #index4606 behaves like paginated collection4607 renders a page number that is not ouf of range4608 redirects to last_page if page number is larger than number of pages4609 does not redirect to external sites when provided a host field4610BoardsResponses4611 #serialize_as_json4612 serializes properly4613SendFileUpload4614 #send_upload4615 when local file is used4616 sends a file4617 with inline image4618 sends a file with inline disposition4619 with attachment4620 sends a file with content-type of text/plain4621 with non-ASCII encoded filename4622 sends content-disposition for non-ASCII encoded filenames4623 with a proxied file in object storage4624 sends a file with a custom type4625 when remote file is used4626 and proxying is enabled4627 behaves like proxied file4628 sends a file4629 and proxying is disabled4630 sends a file4631 with proxy requested4632 behaves like proxied file4633 sends a file4634Projects::PipelinesSettingsController4635 GET show4636 redirects with 302 status code4637Admin::HooksController4638 POST #create4639 sets all parameters4640IssuableActions4641 #discussions4642 instantiates and calls NotesFinder as expected4643Knapsack report was generated. Preview:4644{4645 "spec/requests/api/projects_spec.rb": 175.9963002204895,4646 "spec/requests/api/issues/get_group_issues_spec.rb": 64.68674325942993,4647 "spec/requests/api/todos_spec.rb": 48.235294580459595,4648 "spec/requests/api/issues/issues_spec.rb": 45.76734137535095,4649 "spec/requests/api/releases_spec.rb": 43.88848352432251,4650 "spec/requests/api/wikis_spec.rb": 37.02986931800842,4651 "spec/requests/api/issues/post_projects_issues_spec.rb": 32.88431763648987,4652 "spec/controllers/projects/clusters_controller_spec.rb": 29.356470346450806,4653 "spec/requests/api/group_clusters_spec.rb": 22.946731328964233,4654 "spec/controllers/groups/milestones_controller_spec.rb": 22.707746267318726,4655 "spec/controllers/projects/blob_controller_spec.rb": 14.485799312591553,4656 "spec/requests/api/group_milestones_spec.rb": 20.530786514282227,4657 "spec/controllers/projects/discussions_controller_spec.rb": 11.315016269683838,4658 "spec/controllers/projects/compare_controller_spec.rb": 10.67200779914856,4659 "spec/requests/request_profiler_spec.rb": 13.764548540115356,4660 "spec/requests/api/pages/public_access_spec.rb": 16.237919569015503,4661 "spec/requests/rack_attack_global_spec.rb": 14.305271625518799,4662 "spec/requests/api/deploy_keys_spec.rb": 10.494837284088135,4663 "spec/controllers/dashboard/todos_controller_spec.rb": 10.046143531799316,4664 "spec/controllers/projects/artifacts_controller_spec.rb": 8.593372344970703,4665 "spec/requests/api/protected_tags_spec.rb": 8.396876335144043,4666 "spec/controllers/search_controller_spec.rb": 8.08822250366211,4667 "spec/requests/api/project_import_spec.rb": 10.03966474533081,4668 "spec/controllers/projects/boards_controller_spec.rb": 7.086614370346069,4669 "spec/controllers/admin/application_settings_controller_spec.rb": 8.04806137084961,4670 "spec/controllers/projects/deploy_keys_controller_spec.rb": 7.611405372619629,4671 "spec/requests/api/task_completion_status_spec.rb": 5.4899516105651855,4672 "spec/controllers/projects/badges_controller_spec.rb": 6.362333297729492,4673 "spec/controllers/projects/registry/repositories_controller_spec.rb": 5.3150410652160645,4674 "spec/controllers/projects/repositories_controller_spec.rb": 7.30096697807312,4675 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 5.009242534637451,4676 "spec/controllers/groups/uploads_controller_spec.rb": 5.380974054336548,4677 "spec/requests/api/graphql/mutations/notes/update_spec.rb": 3.499953508377075,4678 "spec/controllers/projects/settings/ci_cd_controller_spec.rb": 4.948713779449463,4679 "spec/controllers/projects/ci/lints_controller_spec.rb": 3.4705896377563477,4680 "spec/requests/api/graphql/gitlab_schema_spec.rb": 3.3436684608459473,4681 "spec/controllers/groups/runners_controller_spec.rb": 2.811974287033081,4682 "spec/controllers/projects/tags/releases_controller_spec.rb": 3.094494104385376,4683 "spec/requests/api/suggestions_spec.rb": 2.5835111141204834,4684 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 3.5706732273101807,4685 "spec/controllers/registrations_controller_spec.rb": 2.2711501121520996,4686 "spec/requests/api/settings_spec.rb": 1.7648954391479492,4687 "spec/requests/boards/lists_controller_spec.rb": 1.9289436340332031,4688 "spec/controllers/projects/stages_controller_spec.rb": 1.8564233779907227,4689 "spec/controllers/projects/graphs_controller_spec.rb": 1.8892486095428467,4690 "spec/controllers/concerns/enforces_admin_authentication_spec.rb": 1.5233445167541504,4691 "spec/requests/api/system_hooks_spec.rb": 2.2677769660949707,4692 "spec/controllers/groups/shared_projects_controller_spec.rb": 1.1859452724456787,4693 "spec/requests/api/features_spec.rb": 1.8231043815612793,4694 "spec/controllers/projects/settings/repository_controller_spec.rb": 1.7575035095214844,4695 "spec/controllers/projects/environments/prometheus_api_controller_spec.rb": 1.3027257919311523,4696 "spec/requests/api/markdown_spec.rb": 1.2445456981658936,4697 "spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb": 0.7494983673095703,4698 "spec/controllers/invites_controller_spec.rb": 1.2007226943969727,4699 "spec/requests/api/graphql/tasks/task_completion_status_spec.rb": 1.1519250869750977,4700 "spec/controllers/profiles/notifications_controller_spec.rb": 0.5789196491241455,4701 "spec/controllers/import/phabricator_controller_spec.rb": 0.7332170009613037,4702 "spec/controllers/concerns/metrics_dashboard_spec.rb": 0.6695346832275391,4703 "spec/controllers/oauth/applications_controller_spec.rb": 0.5916755199432373,4704 "spec/controllers/import/google_code_controller_spec.rb": 0.8107883930206299,4705 "spec/requests/api/avatar_spec.rb": 0.45613956451416016,4706 "spec/controllers/concerns/continue_params_spec.rb": 0.4086151123046875,4707 "spec/controllers/instance_statistics/cohorts_controller_spec.rb": 0.40619611740112305,4708 "spec/controllers/groups/avatars_controller_spec.rb": 0.4164876937866211,4709 "spec/controllers/google_api/authorizations_controller_spec.rb": 0.44083595275878906,4710 "spec/controllers/dashboard/snippets_controller_spec.rb": 0.6062073707580566,4711 "spec/controllers/concerns/boards_responses_spec.rb": 0.2090747356414795,4712 "spec/controllers/concerns/send_file_upload_spec.rb": 0.16068601608276367,4713 "spec/controllers/projects/pipelines_settings_controller_spec.rb": 0.1178579330444336,4714 "spec/controllers/admin/hooks_controller_spec.rb": 0.09215021133422852,4715 "spec/controllers/concerns/issuable_actions_spec.rb": 0.0049197673797607424716}4717Knapsack global time execution for tests: 13m 16s4718Finished in 13 minutes 53 seconds (files took 35.7 seconds to load)47191683 examples, 0 failures4720Tue Oct 15 08:55:02 UTC 20194722$ date4723Tue Oct 15 08:55:06 UTC 20194726coverage/: found 5 matching files 4727knapsack/: found 6 matching files 4728rspec_flaky/: found 4 matching files 4729rspec_profiling/: found 1 matching files 4730WARNING: tmp/capybara/: no matching files 4731tmp/memory_test/: found 2 matching files 4732Uploading artifacts to coordinator... ok id=321109385 responseStatus=201 Created token=JeEx5zFA4733Uploading artifacts...4734junit_rspec.xml: found 1 matching files 4735Uploading artifacts to coordinator... ok id=321109385 responseStatus=201 Created token=JeEx5zFA4736Job succeeded