rspec integration pg10 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-10-graphicsmagick-1.3.33 ...
00:26
4Starting service postgres:10.9 ...5Pulling docker image postgres:10.9 ...6Using docker image sha256:897b33033d6498ba789d2ad5b305209106c8b45622b37ad135440a584ec885d3 for postgres:10.9 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256: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-10-graphicsmagick-1.3.33 ...13Using docker image sha256:dcf4786fd50b15f740bae46bb29ced066a62c830344c3b677eb145af82e758ae 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-10-graphicsmagick-1.3.33 ... 14 Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1571120274-d26bebb2...
00:02
16Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/18 * [new ref] refs/pipelines/88859459 -> refs/pipelines/8885945919 d51133ad7..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/test_json.log42Removing node_modules/43Removing public/assets/44Removing rspec_flaky/45Removing rspec_profiling/46Removing shared/packages/47Removing tmp/cache/48Removing tmp/memory_test/49Removing tmp/prometheus_multiproc_dir/counter_process_113-0.db50Removing tmp/prometheus_multiproc_dir/histogram_process_113-0.db51Removing tmp/tests/52Removing vendor/gitaly-ruby/53Removing vendor/ruby/54Skipping Git submodules setup56Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-12.x-2 57Successfully extracted cache59Downloading artifacts from coordinator... ok id=321109103 responseStatus=200 OK token=XMSy3Ehb60Downloading artifacts for setup-test-env (321109105)...61Downloading artifacts from coordinator... ok id=321109105 responseStatus=200 OK token=wfkozyzh62WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 63Downloading artifacts for retrieve-tests-metadata (321109113)...64Downloading artifacts from coordinator... ok id=321109113 responseStatus=200 OK token=rMBaZ9wv66$ date67Tue Oct 15 08:39:42 UTC 201968$ export GOPATH=$CI_PROJECT_DIR/.go69$ mkdir -p $GOPATH70$ source scripts/utils.sh71$ source scripts/prepare_build.sh72Bundler version 1.17.273Warning: 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`.74The Gemfile's dependencies are satisfied75Successfully installed knapsack-1.18.0761 gem installed77CREATE ROLE78GRANT79Dropped database 'gitlabhq_test'80Created database 'gitlabhq_test'81-- enable_extension("pg_trgm")82 -> 0.0350s83-- enable_extension("plpgsql")84 -> 0.0032s85-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})86 -> 0.0052s87-- create_table("alerts_service_data", {:force=>:cascade})88 -> 0.0067s89-- create_table("allowed_email_domains", {:force=>:cascade})90 -> 0.0045s91-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})92 -> 0.0158s93-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})94 -> 0.0145s95-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})96 -> 0.0080s97-- create_table("analytics_repository_file_commits", {:force=>:cascade})98 -> 0.0066s99-- create_table("analytics_repository_files", {:force=>:cascade})100 -> 0.0053s101-- create_table("appearances", {:id=>:serial, :force=>:cascade})102 -> 0.0040s103-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})104 -> 0.0029s105-- create_table("application_settings", {:id=>:serial, :force=>:cascade})106 -> 0.1028s107-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})108 -> 0.0070s109-- create_table("approval_merge_request_rules", {:force=>:cascade})110 -> 0.0180s111-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})112 -> 0.0070s113-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})114 -> 0.0068s115-- create_table("approval_merge_request_rules_users", {:force=>:cascade})116 -> 0.0067s117-- create_table("approval_project_rules", {:force=>:cascade})118 -> 0.0102s119-- create_table("approval_project_rules_groups", {:force=>:cascade})120 -> 0.0066s121-- create_table("approval_project_rules_users", {:force=>:cascade})122 -> 0.0068s123-- create_table("approvals", {:id=>:serial, :force=>:cascade})124 -> 0.0066s125-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})126 -> 0.0072s127-- create_table("approvers", {:id=>:serial, :force=>:cascade})128 -> 0.0080s129-- create_table("audit_events", {:id=>:serial, :force=>:cascade})130 -> 0.0082s131-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})132 -> 0.0074s133-- create_table("badges", {:id=>:serial, :force=>:cascade})134 -> 0.0074s135-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})136 -> 0.0070s137-- create_table("board_group_recent_visits", {:force=>:cascade})138 -> 0.0121s139-- create_table("board_labels", {:id=>:serial, :force=>:cascade})140 -> 0.0068s141-- create_table("board_project_recent_visits", {:force=>:cascade})142 -> 0.0112s143-- create_table("boards", {:id=>:serial, :force=>:cascade})144 -> 0.0103s145-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})146 -> 0.0054s147-- create_table("chat_names", {:id=>:serial, :force=>:cascade})148 -> 0.0074s149-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})150 -> 0.0049s151-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})152 -> 0.0051s153-- create_table("ci_build_trace_chunks", {:force=>:cascade})154 -> 0.0050s155-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})156 -> 0.0052s157-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})158 -> 0.0093s159-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})160 -> 0.0578s161-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})162 -> 0.0104s163-- create_table("ci_builds_runner_session", {:force=>:cascade})164 -> 0.0051s165-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})166 -> 0.0072s167-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})168 -> 0.0162s169-- create_table("ci_job_variables", {:force=>:cascade})170 -> 0.0077s171-- create_table("ci_pipeline_chat_data", {:force=>:cascade})172 -> 0.0068s173-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})174 -> 0.0055s175-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})176 -> 0.0098s177-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})178 -> 0.0053s179-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})180 -> 0.0321s181-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})182 -> 0.0063s183-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})184 -> 0.0063s185-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})186 -> 0.0180s187-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})188 -> 0.0129s189-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})190 -> 0.0115s191-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})192 -> 0.0069s193-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})194 -> 0.0067s195-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})196 -> 0.0067s197-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})198 -> 0.0065s199-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})200 -> 0.0050s201-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})202 -> 0.0062s203-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})204 -> 0.0080s205-- create_table("clusters", {:id=>:serial, :force=>:cascade})206 -> 0.0111s207-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})208 -> 0.0051s209-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})210 -> 0.0048s211-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})212 -> 0.0052s213-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})214 -> 0.0071s215-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})216 -> 0.0048s217-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})218 -> 0.0049s219-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})220 -> 0.0073s221-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})222 -> 0.0151s223-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})224 -> 0.0069s225-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})226 -> 0.0073s227-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})228 -> 0.0051s229-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})230 -> 0.0046s231-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})232 -> 0.0046s233-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})234 -> 0.0101s235-- create_table("deployments", {:id=>:serial, :force=>:cascade})236 -> 0.0237s237-- create_table("design_management_designs", {:force=>:cascade})238 -> 0.0066s239-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})240 -> 0.0100s241-- create_table("design_management_versions", {:force=>:cascade})242 -> 0.0088s243-- create_table("draft_notes", {:force=>:cascade})244 -> 0.0096s245-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})246 -> 0.0033s247-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})248 -> 0.0031s249-- create_table("emails", {:id=>:serial, :force=>:cascade})250 -> 0.0091s251-- create_table("environments", {:id=>:serial, :force=>:cascade})252 -> 0.0116s253-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})254 -> 0.0064s255-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})256 -> 0.0042s257-- create_table("epics", {:id=>:serial, :force=>:cascade})258 -> 0.0223s259-- create_table("events", {:id=>:serial, :force=>:cascade})260 -> 0.0182s261-- create_table("external_pull_requests", {:force=>:cascade})262 -> 0.0051s263-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})264 -> 0.0048s265-- create_table("features", {:id=>:serial, :force=>:cascade})266 -> 0.0045s267-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})268 -> 0.0083s269-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})270 -> 0.0046s271-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})272 -> 0.0043s273-- create_table("geo_cache_invalidation_events", {:force=>:cascade})274 -> 0.0033s275-- create_table("geo_container_repository_updated_events", {:force=>:cascade})276 -> 0.0044s277-- create_table("geo_event_log", {:force=>:cascade})278 -> 0.0297s279-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})280 -> 0.0048s281-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})282 -> 0.0055s283-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})284 -> 0.0045s285-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})286 -> 0.0046s287-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})288 -> 0.0085s289-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})290 -> 0.0062s291-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})292 -> 0.0124s293-- create_table("geo_repositories_changed_events", {:force=>:cascade})294 -> 0.0041s295-- create_table("geo_repository_created_events", {:force=>:cascade})296 -> 0.0047s297-- create_table("geo_repository_deleted_events", {:force=>:cascade})298 -> 0.0047s299-- create_table("geo_repository_renamed_events", {:force=>:cascade})300 -> 0.0048s301-- create_table("geo_repository_updated_events", {:force=>:cascade})302 -> 0.0077s303-- create_table("geo_reset_checksum_events", {:force=>:cascade})304 -> 0.0041s305-- create_table("geo_upload_deleted_events", {:force=>:cascade})306 -> 0.0049s307-- create_table("gitlab_subscriptions", {:force=>:cascade})308 -> 0.0081s309-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})310 -> 0.0088s311-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})312 -> 0.0093s313-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})314 -> 0.0136s315-- create_table("grafana_integrations", {:force=>:cascade})316 -> 0.0051s317-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})318 -> 0.0069s319-- create_table("historical_data", {:id=>:serial, :force=>:cascade})320 -> 0.0021s321-- create_table("identities", {:id=>:serial, :force=>:cascade})322 -> 0.0091s323-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})324 -> 0.0071s325-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})326 -> 0.0052s327-- create_table("insights", {:id=>:serial, :force=>:cascade})328 -> 0.0063s329-- create_table("internal_ids", {:force=>:cascade})330 -> 0.0107s331-- create_table("ip_restrictions", {:force=>:cascade})332 -> 0.0047s333-- create_table("issue_assignees", {:id=>false, :force=>:cascade})334 -> 0.0054s335-- create_table("issue_links", {:id=>:serial, :force=>:cascade})336 -> 0.0085s337-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})338 -> 0.0068s339-- create_table("issue_tracker_data", {:force=>:cascade})340 -> 0.0050s341-- create_table("issues", {:id=>:serial, :force=>:cascade})342 -> 0.0400s343-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})344 -> 0.0057s345-- create_table("jira_connect_installations", {:force=>:cascade})346 -> 0.0052s347-- create_table("jira_connect_subscriptions", {:force=>:cascade})348 -> 0.0086s349-- create_table("jira_tracker_data", {:force=>:cascade})350 -> 0.0052s351-- create_table("keys", {:id=>:serial, :force=>:cascade})352 -> 0.0098s353-- create_table("label_links", {:id=>:serial, :force=>:cascade})354 -> 0.0071s355-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})356 -> 0.0085s357-- create_table("labels", {:id=>:serial, :force=>:cascade})358 -> 0.0139s359-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})360 -> 0.0027s361-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})362 -> 0.0069s363-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})364 -> 0.0068s365-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})366 -> 0.0065s367-- create_table("licenses", {:id=>:serial, :force=>:cascade})368 -> 0.0028s369-- create_table("list_user_preferences", {:force=>:cascade})370 -> 0.0089s371-- create_table("lists", {:id=>:serial, :force=>:cascade})372 -> 0.0137s373-- create_table("members", {:id=>:serial, :force=>:cascade})374 -> 0.0197s375-- create_table("merge_request_assignees", {:force=>:cascade})376 -> 0.0087s377-- create_table("merge_request_blocks", {:force=>:cascade})378 -> 0.0072s379-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})380 -> 0.0066s381-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})382 -> 0.0043s383-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})384 -> 0.0075s385-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})386 -> 0.0206s387-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})388 -> 0.0522s389-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})390 -> 0.0065s391-- create_table("merge_trains", {:force=>:cascade})392 -> 0.0116s393-- create_table("milestone_releases", {:id=>false, :force=>:cascade})394 -> 0.0058s395-- create_table("milestones", {:id=>:serial, :force=>:cascade})396 -> 0.0285s397-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})398 -> 0.0057s399-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})400 -> 0.0116s401-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})402 -> 0.0138s403-- create_table("namespaces", {:id=>:serial, :force=>:cascade})404 -> 0.0870s405-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})406 -> 0.0095s407-- create_table("notes", {:id=>:serial, :force=>:cascade})408 -> 0.0444s409-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})410 -> 0.0210s411-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})412 -> 0.0128s413-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})414 -> 0.0225s415-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})416 -> 0.0192s417-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})418 -> 0.0078s419-- create_table("operations_feature_flag_scopes", {:force=>:cascade})420 -> 0.0103s421-- create_table("operations_feature_flags", {:force=>:cascade})422 -> 0.0083s423-- create_table("operations_feature_flags_clients", {:force=>:cascade})424 -> 0.0109s425-- create_table("packages_maven_metadata", {:force=>:cascade})426 -> 0.0083s427-- create_table("packages_package_files", {:force=>:cascade})428 -> 0.0082s429-- create_table("packages_package_metadata", {:force=>:cascade})430 -> 0.0066s431-- create_table("packages_package_tags", {:force=>:cascade})432 -> 0.0047s433-- create_table("packages_packages", {:force=>:cascade})434 -> 0.0086s435-- create_table("pages_domain_acme_orders", {:force=>:cascade})436 -> 0.0087s437-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})438 -> 0.0210s439-- create_table("path_locks", {:id=>:serial, :force=>:cascade})440 -> 0.0101s441-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})442 -> 0.0095s443-- create_table("plans", {:id=>:serial, :force=>:cascade})444 -> 0.0060s445-- create_table("pool_repositories", {:force=>:cascade})446 -> 0.0107s447-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})448 -> 0.0055s449-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})450 -> 0.0023s451-- create_table("project_aliases", {:force=>:cascade})452 -> 0.0075s453-- create_table("project_authorizations", {:id=>false, :force=>:cascade})454 -> 0.0057s455-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})456 -> 0.0051s457-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})458 -> 0.0054s459-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})460 -> 0.0078s461-- create_table("project_daily_statistics", {:force=>:cascade})462 -> 0.0052s463-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})464 -> 0.0071s465-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})466 -> 0.0028s467-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})468 -> 0.0083s469-- create_table("project_features", {:id=>:serial, :force=>:cascade})470 -> 0.0071s471-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})472 -> 0.0077s473-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})474 -> 0.0058s475-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})476 -> 0.0036s477-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})478 -> 0.0021s479-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})480 -> 0.0173s481-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})482 -> 0.0063s483-- create_table("project_repositories", {:force=>:cascade})484 -> 0.0096s485-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})486 -> 0.0169s487-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})488 -> 0.0110s489-- create_table("project_tracing_settings", {:force=>:cascade})490 -> 0.0055s491-- create_table("projects", {:id=>:serial, :force=>:cascade})492 -> 0.0769s493-- create_table("prometheus_alert_events", {:force=>:cascade})494 -> 0.0079s495-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})496 -> 0.0094s497-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})498 -> 0.0124s499-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})500 -> 0.0093s501-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})502 -> 0.0097s503-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})504 -> 0.0099s505-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})506 -> 0.0080s507-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})508 -> 0.0096s509-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})510 -> 0.0078s511-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})512 -> 0.0102s513-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})514 -> 0.0074s515-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})516 -> 0.0044s517-- create_table("push_rules", {:id=>:serial, :force=>:cascade})518 -> 0.0107s519-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})520 -> 0.0102s521-- create_table("release_links", {:force=>:cascade})522 -> 0.0081s523-- create_table("releases", {:id=>:serial, :force=>:cascade})524 -> 0.0078s525-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})526 -> 0.0091s527-- create_table("repository_languages", {:id=>false, :force=>:cascade})528 -> 0.0037s529-- create_table("resource_label_events", {:force=>:cascade})530 -> 0.0137s531-- create_table("reviews", {:force=>:cascade})532 -> 0.0089s533-- create_table("routes", {:id=>:serial, :force=>:cascade})534 -> 0.0101s535-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})536 -> 0.0065s537-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})538 -> 0.0055s539-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})540 -> 0.0051s541-- create_table("services", {:id=>:serial, :force=>:cascade})542 -> 0.0172s543-- create_table("shards", {:id=>:serial, :force=>:cascade})544 -> 0.0052s545-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})546 -> 0.0075s547-- create_table("smartcard_identities", {:force=>:cascade})548 -> 0.0076s549-- create_table("snippets", {:id=>:serial, :force=>:cascade})550 -> 0.0203s551-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})552 -> 0.0075s553-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})554 -> 0.0075s555-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})556 -> 0.0042s557-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})558 -> 0.0087s559-- create_table("suggestions", {:force=>:cascade})560 -> 0.0083s561-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})562 -> 0.0055s563-- create_table("taggings", {:id=>:serial, :force=>:cascade})564 -> 0.0129s565-- create_table("tags", {:id=>:serial, :force=>:cascade})566 -> 0.0078s567-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})568 -> 0.0095s569-- create_table("timelogs", {:id=>:serial, :force=>:cascade})570 -> 0.0096s571-- create_table("todos", {:id=>:serial, :force=>:cascade})572 -> 0.0249s573-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})574 -> 0.0044s575-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})576 -> 0.0071s577-- create_table("uploads", {:id=>:serial, :force=>:cascade})578 -> 0.0114s579-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})580 -> 0.0063s581-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})582 -> 0.0066s583-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})584 -> 0.0070s585-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})586 -> 0.0052s587-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})588 -> 0.0070s589-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})590 -> 0.0052s591-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})592 -> 0.0062s593-- create_table("users", {:id=>:serial, :force=>:cascade})594 -> 0.0715s595-- create_table("users_ops_dashboard_projects", {:force=>:cascade})596 -> 0.0065s597-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})598 -> 0.0065s599-- create_table("vulnerabilities", {:force=>:cascade})600 -> 0.0236s601-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})602 -> 0.0154s603-- create_table("vulnerability_identifiers", {:force=>:cascade})604 -> 0.0051s605-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})606 -> 0.0064s607-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})608 -> 0.0065s609-- create_table("vulnerability_occurrences", {:force=>:cascade})610 -> 0.0137s611-- create_table("vulnerability_scanners", {:force=>:cascade})612 -> 0.0053s613-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})614 -> 0.0073s615-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})616 -> 0.0131s617-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})618 -> 0.0025s619-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})620 -> 0.0023s621-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})622 -> 0.0020s623-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})624 -> 0.0013s625-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})626 -> 0.0014s627-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})628 -> 0.0015s629-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})630 -> 0.0013s631-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})632 -> 0.0027s633-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})634 -> 0.0015s635-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})636 -> 0.0016s637-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})638 -> 0.0015s639-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})640 -> 0.0016s641-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})642 -> 0.0015s643-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})644 -> 0.0031s645-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})646 -> 0.0025s647-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})648 -> 0.0029s649-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})650 -> 0.0033s651-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})652 -> 0.0018s653-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})654 -> 0.0015s655-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})656 -> 0.0023s657-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})658 -> 0.0015s659-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})660 -> 0.0016s661-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})662 -> 0.0014s663-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})664 -> 0.0014s665-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})666 -> 0.0014s667-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})668 -> 0.0016s669-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})670 -> 0.0018s671-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})672 -> 0.0014s673-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})674 -> 0.0014s675-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})676 -> 0.0013s677-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})678 -> 0.0016s679-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})680 -> 0.0016s681-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})682 -> 0.0015s683-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})684 -> 0.0015s685-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})686 -> 0.0016s687-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})688 -> 0.0015s689-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})690 -> 0.0015s691-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})692 -> 0.0014s693-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})694 -> 0.0014s695-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})696 -> 0.0018s697-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})698 -> 0.0014s699-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})700 -> 0.0013s701-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})702 -> 0.0014s703-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})704 -> 0.0017s705-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})706 -> 0.0017s707-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})708 -> 0.0014s709-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})710 -> 0.0017s711-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})712 -> 0.0015s713-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})714 -> 0.0026s715-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})716 -> 0.0016s717-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})718 -> 0.0018s719-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})720 -> 0.0013s721-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})722 -> 0.0015s723-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})724 -> 0.0017s725-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})726 -> 0.0022s727-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})728 -> 0.0015s729-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})730 -> 0.0015s731-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})732 -> 0.0016s733-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})734 -> 0.0020s735-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})736 -> 0.0015s737-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})738 -> 0.0016s739-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})740 -> 0.0015s741-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})742 -> 0.0015s743-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})744 -> 0.0017s745-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})746 -> 0.0018s747-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})748 -> 0.0016s749-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})750 -> 0.0015s751-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})752 -> 0.0013s753-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})754 -> 0.0015s755-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})756 -> 0.0018s757-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})758 -> 0.0016s759-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})760 -> 0.0014s761-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})762 -> 0.0013s763-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})764 -> 0.0013s765-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})766 -> 0.0015s767-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})768 -> 0.0016s769-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})770 -> 0.0018s771-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})772 -> 0.0016s773-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})774 -> 0.0016s775-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})776 -> 0.0018s777-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})778 -> 0.0018s779-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})780 -> 0.0021s781-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})782 -> 0.0015s783-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})784 -> 0.0018s785-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})786 -> 0.0019s787-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})788 -> 0.0021s789-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})790 -> 0.0018s791-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})792 -> 0.0014s793-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})794 -> 0.0017s795-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})796 -> 0.0018s797-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})798 -> 0.0019s799-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})800 -> 0.0017s801-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})802 -> 0.0015s803-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})804 -> 0.0015s805-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})806 -> 0.0014s807-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})808 -> 0.0017s809-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})810 -> 0.0014s811-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})812 -> 0.0016s813-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})814 -> 0.0017s815-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})816 -> 0.0014s817-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})818 -> 0.0014s819-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})820 -> 0.0017s821-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})822 -> 0.0015s823-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})824 -> 0.0015s825-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})826 -> 0.0015s827-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})828 -> 0.0014s829-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})830 -> 0.0014s831-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})832 -> 0.0013s833-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})834 -> 0.0016s835-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})836 -> 0.0013s837-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})838 -> 0.0016s839-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})840 -> 0.0018s841-- add_foreign_key("container_repositories", "projects")842 -> 0.0018s843-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})844 -> 0.0016s845-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})846 -> 0.0016s847-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})848 -> 0.0017s849-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})850 -> 0.0018s851-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})852 -> 0.0019s853-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})854 -> 0.0021s855-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})856 -> 0.0017s857-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})858 -> 0.0013s859-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})860 -> 0.0015s861-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})862 -> 0.0015s863-- add_foreign_key("design_management_versions", "users", {:name=>"fk_ee16b939e5", :on_delete=>:nullify})864 -> 0.0019s865-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})866 -> 0.0017s867-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})868 -> 0.0017s869-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})870 -> 0.0016s871-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})872 -> 0.0017s873-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})874 -> 0.0018s875-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})876 -> 0.0018s877-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})878 -> 0.0015s879-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})880 -> 0.0014s881-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})882 -> 0.0013s883-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})884 -> 0.0023s885-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})886 -> 0.0016s887-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})888 -> 0.0017s889-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})890 -> 0.0016s891-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})892 -> 0.0016s893-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})894 -> 0.0017s895-- add_foreign_key("events", "projects", {:on_delete=>:cascade})896 -> 0.0019s897-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})898 -> 0.0016s899-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})900 -> 0.0018s901-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})902 -> 0.0015s903-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})904 -> 0.0017s905-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})906 -> 0.0017s907-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})908 -> 0.0016s909-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})910 -> 0.0016s911-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})912 -> 0.0014s913-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})914 -> 0.0018s915-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})916 -> 0.0012s917-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})918 -> 0.0014s919-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})920 -> 0.0014s921-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})922 -> 0.0013s923-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})924 -> 0.0016s925-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})926 -> 0.0014s927-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})928 -> 0.0023s929-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})930 -> 0.0014s931-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})932 -> 0.0015s933-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})934 -> 0.0013s935-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})936 -> 0.0013s937-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})938 -> 0.0020s939-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})940 -> 0.0019s941-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})942 -> 0.0017s943-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})944 -> 0.0016s945-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})946 -> 0.0017s947-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})948 -> 0.0013s949-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})950 -> 0.0018s951-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})952 -> 0.0017s953-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})954 -> 0.0017s955-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})956 -> 0.0017s957-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})958 -> 0.0018s959-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})960 -> 0.0013s961-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})962 -> 0.0015s963-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})964 -> 0.0017s965-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})966 -> 0.0015s967-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})968 -> 0.0012s969-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})970 -> 0.0018s971-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})972 -> 0.0018s973-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})974 -> 0.0016s975-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})976 -> 0.0015s977-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})978 -> 0.0019s979-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})980 -> 0.0019s981-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})982 -> 0.0017s983-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})984 -> 0.0017s985-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})986 -> 0.0017s987-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})988 -> 0.0019s989-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})990 -> 0.0015s991-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})992 -> 0.0015s993-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})994 -> 0.0017s995-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})996 -> 0.0016s997-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})998 -> 0.0013s999-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1000 -> 0.0016s1001-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1002 -> 0.0014s1003-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1004 -> 0.0015s1005-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1006 -> 0.0014s1007-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1008 -> 0.0014s1009-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1010 -> 0.0019s1011-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1012 -> 0.0017s1013-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1014 -> 0.0018s1015-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1016 -> 0.0016s1017-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1018 -> 0.0016s1019-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1020 -> 0.0015s1021-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1022 -> 0.0014s1023-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1024 -> 0.0015s1025-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1026 -> 0.0014s1027-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1028 -> 0.0014s1029-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1030 -> 0.0015s1031-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1032 -> 0.0018s1033-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1034 -> 0.0016s1035-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1036 -> 0.0017s1037-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1038 -> 0.0018s1039-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1040 -> 0.0016s1041-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1042 -> 0.0017s1043-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1044 -> 0.0016s1045-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1046 -> 0.0013s1047-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1048 -> 0.0013s1049-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1050 -> 0.0014s1051-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1052 -> 0.0017s1053-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1054 -> 0.0020s1055-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1056 -> 0.0017s1057-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1058 -> 0.0018s1059-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1060 -> 0.0015s1061-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1062 -> 0.0014s1063-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1064 -> 0.0015s1065-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1066 -> 0.0013s1067-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1068 -> 0.0015s1069-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1070 -> 0.0019s1071-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1072 -> 0.0016s1073-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1074 -> 0.0017s1075-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1076 -> 0.0017s1077-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1078 -> 0.0018s1079-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1080 -> 0.0024s1081-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1082 -> 0.0016s1083-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1084 -> 0.0021s1085-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1086 -> 0.0022s1087-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1088 -> 0.0019s1089-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1090 -> 0.0019s1091-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1092 -> 0.0018s1093-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1094 -> 0.0019s1095-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1096 -> 0.0018s1097-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1098 -> 0.0016s1099-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1100 -> 0.0017s1101-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1102 -> 0.0016s1103-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1104 -> 0.0018s1105-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1106 -> 0.0019s1107-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1108 -> 0.0014s1109-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1110 -> 0.0014s1111-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1112 -> 0.0016s1113-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1114 -> 0.0019s1115-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1116 -> 0.0017s1117-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1118 -> 0.0016s1119-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1120 -> 0.0015s1121-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1122 -> 0.0015s1123-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1124 -> 0.0015s1125-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1126 -> 0.0021s1127-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1128 -> 0.0018s1129-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1130 -> 0.0020s1131-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1132 -> 0.0016s1133-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1134 -> 0.0020s1135-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1136 -> 0.0013s1137-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1138 -> 0.0015s1139-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1140 -> 0.0018s1141-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1142 -> 0.0019s1143-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1144 -> 0.0014s1145-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1146 -> 0.0012s1147-- add_foreign_key("packages_package_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1148 -> 0.0013s1149-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1150 -> 0.0013s1151-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1152 -> 0.0018s1153-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1154 -> 0.0019s1155-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1156 -> 0.0018s1157-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1158 -> 0.0020s1159-- add_foreign_key("path_locks", "users")1160 -> 0.0018s1161-- add_foreign_key("personal_access_tokens", "users")1162 -> 0.0018s1163-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1164 -> 0.0019s1165-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1166 -> 0.0014s1167-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1168 -> 0.0018s1169-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1170 -> 0.0019s1171-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1172 -> 0.0018s1173-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1174 -> 0.0017s1175-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1176 -> 0.0018s1177-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1178 -> 0.0018s1179-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1180 -> 0.0018s1181-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1182 -> 0.0017s1183-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1184 -> 0.0017s1185-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1186 -> 0.0018s1187-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1188 -> 0.0018s1189-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1190 -> 0.0019s1191-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1192 -> 0.0019s1193-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1194 -> 0.0018s1195-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1196 -> 0.0018s1197-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1198 -> 0.0018s1199-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1200 -> 0.0017s1201-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1202 -> 0.0020s1203-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1204 -> 0.0018s1205-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1206 -> 0.0019s1207-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1208 -> 0.0013s1209-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1210 -> 0.0023s1211-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1212 -> 0.0019s1213-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1214 -> 0.0018s1215-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1216 -> 0.0019s1217-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1218 -> 0.0017s1219-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1220 -> 0.0015s1221-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1222 -> 0.0013s1223-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1224 -> 0.0019s1225-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1226 -> 0.0015s1227-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1228 -> 0.0018s1229-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1230 -> 0.0017s1231-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1232 -> 0.0024s1233-- add_foreign_key("protected_branch_merge_access_levels", "users")1234 -> 0.0018s1235-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1236 -> 0.0017s1237-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1238 -> 0.0012s1239-- add_foreign_key("protected_branch_push_access_levels", "users")1240 -> 0.0017s1241-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1242 -> 0.0016s1243-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1244 -> 0.0013s1245-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1246 -> 0.0017s1247-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1248 -> 0.0019s1249-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1250 -> 0.0017s1251-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1252 -> 0.0014s1253-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1254 -> 0.0017s1255-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1256 -> 0.0018s1257-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1258 -> 0.0016s1259-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1260 -> 0.0015s1261-- add_foreign_key("protected_tag_create_access_levels", "users")1262 -> 0.0020s1263-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1264 -> 0.0018s1265-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1266 -> 0.0015s1267-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1268 -> 0.0022s1269-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1270 -> 0.0014s1271-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1272 -> 0.0021s1273-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1274 -> 0.0020s1275-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1276 -> 0.0022s1277-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1278 -> 0.0018s1279-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1280 -> 0.0017s1281-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1282 -> 0.0015s1283-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1284 -> 0.0014s1285-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1286 -> 0.0015s1287-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1288 -> 0.0018s1289-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1290 -> 0.0016s1291-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1292 -> 0.0019s1293-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1294 -> 0.0018s1295-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1296 -> 0.0015s1297-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1298 -> 0.0016s1299-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1300 -> 0.0020s1301-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1302 -> 0.0017s1303-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1304 -> 0.0020s1305-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1306 -> 0.0022s1307-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1308 -> 0.0020s1309-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1310 -> 0.0015s1311-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1312 -> 0.0020s1313-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1314 -> 0.0015s1315-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1316 -> 0.0014s1317-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1318 -> 0.0014s1319-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1320 -> 0.0018s1321-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1322 -> 0.0016s1323-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1324 -> 0.0015s1325-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1326 -> 0.0019s1327-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1328 -> 0.0014s1329-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1330 -> 0.0020s1331-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1332 -> 0.0018s1333-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1334 -> 0.0018s1335-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1336 -> 0.0029s1337-- add_foreign_key("u2f_registrations", "users")1338 -> 0.0019s1339-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1340 -> 0.0018s1341-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1342 -> 0.0019s1343-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1344 -> 0.0020s1345-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1346 -> 0.0017s1347-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1348 -> 0.0019s1349-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1350 -> 0.0017s1351-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1352 -> 0.0019s1353-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1354 -> 0.0018s1355-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1356 -> 0.0021s1357-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1358 -> 0.0025s1359-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1360 -> 0.0019s1361-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1362 -> 0.0020s1363-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1364 -> 0.0019s1365-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1366 -> 0.0013s1367-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1368 -> 0.0014s1369-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1370 -> 0.0015s1371-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1372 -> 0.0021s1373-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1374 -> 0.0019s1375-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1376 -> 0.0018s1377-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1378 -> 0.0018s1379-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1380 -> 0.0028s1381-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1382 -> 0.0019s1383-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1384 -> 0.0016s1385-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1386 -> 0.0016s1387-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1388 -> 0.0019s1389-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1390 -> 0.0017s1391-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1392 -> 0.0016s1393-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1394 -> 0.0020s1395-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1396 -> 0.0013s1397-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1398 -> 0.0016s1399-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1400 -> 0.0017s1401-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1402 -> 0.0012s1403-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1404 -> 0.0021s1405-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1406 -> 0.0015s1407-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1408 -> 0.0013s1409-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1410 -> 0.0013s1411-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1412 -> 0.0020s1413-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1414 -> 0.0017s1415-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1416 -> 0.0020s1417Dropped database 'gitlabhq_geo_test'1418Created database 'gitlabhq_geo_test'1419-- enable_extension("plpgsql")1420 -> 0.0179s1421-- create_table("container_repository_registry", {:id=>:serial, :force=>:cascade})1422 -> 0.0144s1423-- create_table("design_registry", {:id=>:serial, :force=>:cascade})1424 -> 0.0100s1425-- create_table("event_log_states", {:primary_key=>"event_id", :force=>:cascade})1426 -> 0.0020s1427-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1428 -> 0.0129s1429-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1430 -> 0.0102s1431-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1432 -> 0.0463s1433$ date1434Tue Oct 15 08:40:29 UTC 20191435$ source scripts/rspec_helpers.sh1436$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1437KNAPSACK_TEST_FILE_PATTERN: spec/{controllers,mailers,requests}{,/**/}*_spec.rb1438Checking gitaly-ruby bundle...1439Warning: 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`.1440The Gemfile's dependencies are satisfied1441Trying to connect to gitaly: ...... OK1442Knapsack report generator started!1443Run options:1444 include {:focus=>true}1445 exclude {:quarantine=>true, :geo=>true}1446All examples were filtered out; ignoring {:focus=>true}1447==> Setting up GitLab Shell...1448 GitLab Shell set up in 0.783582343 seconds...1449==> Setting up Gitaly...1450 Gitaly set up in 0.000208471 seconds...1451==> Setting up GitLab Elasticsearch Indexer...1452 GitLab Elasticsearch Indexer set up in 0.000955234 seconds...1453API::Projects1454 GET /projects1455 when unauthenticated1456 behaves like projects response1457 returns an array of projects1458 returns the proper security headers1459 behaves like projects response without N + 1 queries1460 avoids N + 1 queries1461 when authenticated as regular user1462 includes the project labels as the tag_list1463 includes open_issues_count1464 does not include projects marked for deletion1465 does not include open_issues_count if issues are disabled1466 does not include statistics by default1467 includes statistics if requested1468 does not include license by default1469 does not include license if requested1470 behaves like projects response1471 returns an array of projects1472 returns the proper security headers1473 behaves like projects response without N + 1 queries1474 avoids N + 1 queries1475 when some projects are in a group1476 behaves like projects response without N + 1 queries1477 avoids N + 1 queries1478 and with_issues_enabled=true1479 only returns projects with issues enabled1480 when external issue tracker is enabled1481 includes open_issues_count1482 does not include open_issues_count if issues are disabled1483 and with simple=true1484 returns a simplified version of all the projects1485 and using archived1486 returns archived projects1487 returns non-archived projects1488 returns every project1489 and using search1490 behaves like projects response1491 returns an array of projects1492 returns the proper security headers1493 and membership=true1494 behaves like projects response1495 returns an array of projects1496 returns the proper security headers1497 and using the visibility filter1498 filters based on private visibility param1499 filters based on internal visibility param1500 filters based on public visibility param1501 and using the programming language filter1502 filters case-insensitively by programming language1503 and using sorting1504 returns the correct order when sorted by id1505 and with owned=true1506 returns an array of projects the user owns1507 and with starred=true1508 returns the starred projects viewable by the user1509 and with all query parameters1510 including owned filter1511 returns only projects that satisfy all query parameters1512 including membership filter1513 returns only projects that satisfy all query parameters1514 and with min_access_level1515 returns an array of projects the user has at least developer access1516 when authenticated as a different user1517 behaves like projects response1518 returns an array of projects1519 returns the proper security headers1520 and with_issues_enabled=true1521 does not return private issue projects1522 when authenticated as admin1523 behaves like projects response1524 returns an array of projects1525 returns the proper security headers1526 POST /projects1527 creates new project without path but with name and returns 2011528 creates new project without name but with path and returns 2011529 creates new project with name and path and returns 2011530 creates last project before reaching project limit1531 does not create new project without name or path and returns 4001532 assigns attributes to project1533 creates a project using a template1534 returns 400 for an invalid template1535 disallows creating a project with an import_url and template1536 sets a project as public1537 sets a project as internal1538 sets a project as private1539 creates a new project initialized with a README.md1540 sets tag list to a project1541 uploads avatar for project a project1542 sets a project as not allowing outdated diff discussions to automatically resolve1543 sets a project as allowing outdated diff discussions to automatically resolve1544 sets a project as allowing merge even if build fails1545 sets a project as allowing merge only if merge_when_pipeline_succeeds1546 sets a project as allowing merge even if discussions are unresolved1547 sets a project as allowing merge if only_allow_merge_if_all_discussions_are_resolved is nil1548 sets a project as allowing merge only if all discussions are resolved1549 sets the merge method of a project to rebase merge1550 rejects invalid values for merge_method1551 ignores import_url when it is nil1552 maximum number of projects reached1553 does not create new project and respond with 4031554 when a visibility level is restricted1555 does not allow a non-admin to use a restricted visibility level1556 allows an admin to override restricted visibility settings1557 GET /users/:user_id/projects/1558 returns error when user not found1559 returns projects filtered by user id1560 returns projects filtered by username1561 returns projects filtered by minimal access level1562 and using the programming language filter1563 filters case-insensitively by programming language1564 GET /users/:user_id/starred_projects/1565 returns error when user not found1566 returns projects filtered by user1567 POST /projects/user/:id1568 creates new project without path but with name and return 2011569 creates new project with name and path and returns 2011570 responds with 400 on failure and not project1571 assigns attributes to project1572 sets a project as public1573 sets a project as internal1574 sets a project as private1575 sets a project as not allowing outdated diff discussions to automatically resolve1576 sets a project as allowing outdated diff discussions to automatically resolve1577 sets a project as allowing merge even if build fails1578 sets a project as allowing merge only if pipeline succeeds1579 sets a project as allowing merge even if discussions are unresolved1580 sets a project as allowing merge only if all discussions are resolved1581 POST /projects/:id/uploads1582 uploads the file and returns its info1583 GET /projects/:id1584 when unauthenticated1585 does not return private projects1586 returns public projects1587 and the project has a private repository1588 hides protected attributes of private repositories if user is not a member1589 exposes protected attributes of private repositories if user is a member1590 when authenticated as an admin1591 returns a project by id1592 when authenticated as a regular user1593 returns a project by id1594 returns a group link with expiration date1595 returns a project by path name1596 returns a 404 error if not found1597 returns a 404 error if user is not a member1598 handles users with dots1599 exposes namespace fields1600 does not include license fields by default1601 includes license fields when requested1602 does not include statistics by default1603 includes statistics if requested1604 includes import_error if user can admin project1605 does not include import_error if user cannot admin project1606 returns 404 when project is marked for deletion1607 and the project has a private repository1608 does not include statistics if user is not a member1609 includes statistics if user is a member1610 includes statistics also when repository is disabled1611 links exposure1612 exposes related resources full URIs1613 filters related URIs when their feature is not enabled1614 permissions1615 all projects1616 contains permission information1617 personal project1618 sets project access and returns 2001619 group project1620 sets the owner and return 2001621 nested group project1622 sets group access and return 2001623 with various access levels across nested groups1624 sets the maximum group access and return 2001625 when project belongs to a group namespace1626 returns group web_url and avatar_url1627 when project belongs to a user namespace1628 returns user web_url and avatar_url1629 GET /projects/:id/users1630 when unauthenticated1631 behaves like project users response1632 returns the project users1633 when authenticated1634 returns a 404 error if not found1635 returns a 404 error if user is not a member1636 filters out users listed in skip_users1637 valid request1638 behaves like project users response1639 returns the project users1640 fork management1641 POST /projects/:id/fork/:forked_from_id1642 refreshes the forks count cache1643 user is a developer1644 denies project to be forked from an existing project1645 user is maintainer1646 allows project to be forked from an existing project1647 denies project to be forked from a private project1648 user is admin1649 allows project to be forked from an existing project1650 allows project to be forked from a private project1651 refreshes the forks count cachce1652 fails if forked_from project which does not exist1653 fails with 409 if already forked1654 DELETE /projects/:id/fork1655 is not visible to users outside group1656 when users belong to project group1657 is forbidden to non-owner users1658 is idempotent if not forked1659 for a forked project1660 makes forked project unforked1661 behaves like 412 response1662 for a modified ressource1663 returns 4121664 for an unmodified ressource1665 returns accepted1666 GET /projects/:id/forks1667 for a forked project1668 for a user that can access the forks1669 returns the forks1670 for a user that cannot access the forks1671 returns an empty array1672 for a non-forked project1673 returns an empty array1674 POST /projects/:id/share1675 shares project with group1676 returns a 400 error when group id is not given1677 returns a 400 error when access level is not given1678 returns a 400 error when sharing is disabled1679 returns a 404 error when user cannot read group1680 returns a 404 error when group does not exist1681 returns a 400 error when wrong params passed1682 returns a 409 error when link is not saved1683 DELETE /projects/:id/share/:group_id1684 returns a 400 when group id is not an integer1685 returns a 404 error when group link does not exist1686 returns a 404 error when project does not exist1687 for a valid group1688 returns 204 when deleting a group share1689 behaves like 412 response1690 for a modified ressource1691 returns 4121692 for an unmodified ressource1693 returns accepted1694 PUT /projects/:id1695 returns 400 when nothing sent1696 when unauthenticated1697 returns authentication error1698 when authenticated as project owner1699 updates name1700 updates visibility_level1701 updates visibility_level from public to private1702 does not update name to existing name1703 updates request_access_enabled1704 updates path & name to existing path & name in different namespace1705 updates jobs_enabled1706 updates builds_access_level1707 updates build_git_strategy1708 rejects to update build_git_strategy when build_git_strategy is invalid1709 updates merge_method1710 rejects to update merge_method when merge_method is invalid1711 updates avatar1712 updates auto_devops_deploy_strategy1713 updates auto_devops_enabled1714 when authenticated as project maintainer1715 updates path1716 updates other attributes1717 does not update path to existing path1718 does not update name1719 does not update visibility_level1720 when authenticated as project developer1721 does not update other attributes1722 POST /projects/:id/archive1723 on an unarchived project1724 archives the project1725 on an archived project1726 remains archived1727 user without archiving rights to the project1728 rejects the action1729 POST /projects/:id/unarchive1730 on an unarchived project1731 remains unarchived1732 on an archived project1733 unarchives the project1734 user without archiving rights to the project1735 rejects the action1736 POST /projects/:id/star1737 on an unstarred project1738 stars the project1739 on a starred project1740 does not modify the star count1741 POST /projects/:id/unstar1742 on a starred project1743 unstars the project1744 on an unstarred project1745 does not modify the star count1746 GET /projects/:id/starrers1747 returns not_found(404) for not existing project1748 public project without user1749 returns only starrers with a public profile1750 behaves like project starrers response1751 returns an array of starrers1752 returns the proper security headers1753 public project with user with private profile1754 returns current user with a private profile1755 behaves like project starrers response1756 returns an array of starrers1757 returns the proper security headers1758 private project1759 with unauthorized user1760 returns not_found for existing but unauthorized project1761 without user1762 returns not_found for existing but unauthorized project1763 GET /projects/:id/languages1764 with an authorized user1765 returns not_found(404) for not existing project1766 behaves like languages and percentages JSON response1767 when the languages haven't been detected yet1768 returns expected language values1769 when the languages were detected before1770 returns the detection from the database1771 with not authorized user1772 returns not_found for existing but unauthorized project1773 without user1774 returns not_found for existing but unauthorized project1775 behaves like languages and percentages JSON response1776 when the languages haven't been detected yet1777 returns expected language values1778 when the languages were detected before1779 returns the detection from the database1780 DELETE /projects/:id1781 when authenticated as user1782 removes project1783 does not remove a project if not an owner1784 does not remove a non existing project1785 does not remove a project not attached to user1786 behaves like 412 response1787 for a modified ressource1788 returns 4121789 for an unmodified ressource1790 returns accepted1791 when authenticated as admin1792 removes any existing project1793 does not remove a non existing project1794 behaves like 412 response1795 for a modified ressource1796 returns 4121797 for an unmodified ressource1798 returns accepted1799 POST /projects/:id/fork1800 when authenticated1801 forks if user has sufficient access to project1802 forks if user is admin1803 fails on missing project access for the project to fork1804 fails if forked project exists in the user namespace1805 fails if project to fork from does not exist1806 forks with explicit own user namespace id1807 forks with explicit own user name as namespace1808 forks to another user when admin1809 fails if trying to fork to another user when not admin1810 fails if trying to fork to non-existent namespace1811 forks to owned group1812 forks to owned subgroup1813 fails to fork to not owned group1814 forks to not owned group when admin1815 accepts a path for the target project1816 fails to fork if path is already taken1817 accepts a name for the target project1818 fails to fork if name is already taken1819 when unauthenticated1820 returns authentication error1821 POST /projects/:id/housekeeping1822 when authenticated as owner1823 starts the housekeeping process1824 when housekeeping lease is taken1825 returns conflict1826 when authenticated as developer1827 returns forbidden error1828 when unauthenticated1829 returns authentication error1830 PUT /projects/:id/transfer1831 when authenticated as owner1832 transfers the project to the new namespace1833 fails when transferring to a non owned namespace1834 fails when transferring to an unknown namespace1835 fails on missing namespace1836 behaves like custom attributes endpoints1837 GET /projects with custom attributes filter1838 with an unauthorized user1839 does not filter by custom attributes1840 with an authorized user1841 filters by custom attributes1842 GET /projects with custom attributes1843 with an unauthorized user1844 does not include custom attributes1845 with an authorized user1846 does not include custom attributes by default1847 includes custom attributes if requested1848 GET /projects/:id with custom attributes1849 with an unauthorized user1850 does not include custom attributes1851 with an authorized user1852 does not include custom attributes by default1853 includes custom attributes if requested1854 GET /projects/:id/custom_attributes1855 with an unauthorized user1856 behaves like an unauthorized API user1857 should eq 4031858 with an authorized user1859 returns all custom attributes1860 GET /projects/:id/custom_attributes/:key1861 with an unauthorized user1862 behaves like an unauthorized API user1863 should eq 4031864 with an authorized user1865 returns a single custom attribute1866 PUT /projects/:id/custom_attributes/:key1867 with an unauthorized user1868 behaves like an unauthorized API user1869 should eq 4031870 with an authorized user1871 creates a new custom attribute1872 updates an existing custom attribute1873 DELETE /projects/:id/custom_attributes/:key1874 with an unauthorized user1875 behaves like an unauthorized API user1876 should eq 4031877 with an authorized user1878 deletes an existing custom attribute1879API::Issues1880 GET /groups/:id/issues1881 when group has subgroups1882 when user is unauthenticated1883 also returns subgroups public projects issues1884 also returns subgroups public projects issues filtered by milestone1885 issues_statistics1886 no state is treated as all state1887 behaves like group issues statistics1888 returns issues statistics1889 statistics when all state is passed1890 behaves like group issues statistics1891 returns issues statistics1892 closed state is treated as all state1893 behaves like group issues statistics1894 returns issues statistics1895 opened state is treated as all state1896 behaves like group issues statistics1897 returns issues statistics1898 when filtering by milestone and no state treated as all state1899 behaves like group issues statistics1900 returns issues statistics1901 when filtering by milestone and all state1902 behaves like group issues statistics1903 returns issues statistics1904 when filtering by milestone and closed state treated as all state1905 behaves like group issues statistics1906 returns issues statistics1907 when filtering by milestone and opened state treated as all state1908 behaves like group issues statistics1909 returns issues statistics1910 when user is a group member1911 also returns subgroups projects issues1912 also returns subgroups public projects issues filtered by milestone1913 issues_statistics1914 no state is treated as all state1915 behaves like group issues statistics1916 returns issues statistics1917 statistics when all state is passed1918 behaves like group issues statistics1919 returns issues statistics1920 closed state is treated as all state1921 behaves like group issues statistics1922 returns issues statistics1923 opened state is treated as all state1924 behaves like group issues statistics1925 returns issues statistics1926 when filtering by milestone and no state treated as all state1927 behaves like group issues statistics1928 returns issues statistics1929 when filtering by milestone and all state1930 behaves like group issues statistics1931 returns issues statistics1932 when filtering by milestone and closed state treated as all state1933 behaves like group issues statistics1934 returns issues statistics1935 when filtering by milestone and opened state treated as all state1936 behaves like group issues statistics1937 returns issues statistics1938 when returns issue merge_requests_count for different access levels1939 behaves like accessible merge requests count1940 returns anonymous accessible merge requests count1941 returns guest accessible merge requests count1942 returns reporter accessible merge requests count1943 returns admin accessible merge requests count1944 when user is unauthenticated1945 lists all issues in public projects1946 also returns subgroups public projects issues filtered by milestone1947 issues_statistics1948 no state is treated as all state1949 behaves like group issues statistics1950 returns issues statistics1951 statistics when all state is passed1952 behaves like group issues statistics1953 returns issues statistics1954 closed state is treated as all state1955 behaves like group issues statistics1956 returns issues statistics1957 opened state is treated as all state1958 behaves like group issues statistics1959 returns issues statistics1960 when filtering by milestone and no state treated as all state1961 behaves like group issues statistics1962 returns issues statistics1963 when filtering by milestone and all state1964 behaves like group issues statistics1965 returns issues statistics1966 when filtering by milestone and closed state treated as all state1967 behaves like group issues statistics1968 returns issues statistics1969 when filtering by milestone and opened state treated as all state1970 behaves like group issues statistics1971 returns issues statistics1972 when user is a group member1973 exposes known attributes1974 returns all group issues (including opened and closed)1975 returns group issues without confidential issues for non project members1976 returns group confidential issues for author1977 returns group confidential issues for assignee1978 returns group issues with confidential issues for project members1979 returns group confidential issues for admin1980 returns only confidential issues1981 returns only public issues1982 returns an array of labeled group issues1983 returns an array of labeled group issues with labels param as array1984 returns an array of labeled group issues where all labels match1985 returns an array of labeled group issues where all labels match with labels param as array1986 returns issues matching given search string for title1987 returns issues matching given search string for description1988 returns an array of issues found by iids1989 returns an empty array if iid does not exist1990 returns an empty array if no group issue matches labels1991 returns an array of group issues with any label1992 returns an array of group issues with any label with labels param as array1993 returns an array of group issues with no label1994 returns an array of group issues with no label with labels param as array1995 returns an empty array if no issue matches milestone1996 returns an empty array if milestone does not exist1997 returns an array of issues in given milestone1998 returns an array of issues matching state in milestone1999 returns an array of issues with no milestone2000 sorts ascending when requested2001 sorts by updated_at descending when requested2002 sorts by updated_at ascending when requested2003 with labeled issues2004 behaves like labeled issues with labels and label_name params2005 array of labeled issues when all labels match2006 behaves like returns label names2007 returns label names2008 array of labeled issues when all labels match with labels param as array2009 behaves like returns label names2010 returns label names2011 negation2012 array of labeled issues when all labels match with negation2013 behaves like returns negated label names2014 returns label names2015 array of labeled issues when all labels match with negation with label params as array2016 behaves like returns negated label names2017 returns label names2018 when with_labels_details provided2019 array of labeled issues when all labels match2020 behaves like returns basic label entity2021 returns basic label entity2022 array of labeled issues when all labels match with labels param as array2023 behaves like returns basic label entity2024 returns basic label entity2025 without sort params2026 sorts by created_at descending by default2027 with 2 issues with same created_at2028 page breaks first page correctly2029 page breaks second page correctly2030 issues_statistics2031 no state is treated as all state2032 behaves like group issues statistics2033 returns issues statistics2034 statistics when all state is passed2035 behaves like group issues statistics2036 returns issues statistics2037 closed state is treated as all state2038 behaves like group issues statistics2039 returns issues statistics2040 opened state is treated as all state2041 behaves like group issues statistics2042 returns issues statistics2043 when filtering by milestone and no state treated as all state2044 behaves like group issues statistics2045 returns issues statistics2046 when filtering by milestone and all state2047 behaves like group issues statistics2048 returns issues statistics2049 when filtering by milestone and closed state treated as all state2050 behaves like group issues statistics2051 returns issues statistics2052 when filtering by milestone and opened state treated as all state2053 behaves like group issues statistics2054 returns issues statistics2055 sort does not affect statistics2056 behaves like group issues statistics2057 returns issues statistics2058 filtering by assignee_username2059 returns issues with by assignee_username2060 returns issues by assignee_username as string2061 returns error when multiple assignees are passed2062 returns error when assignee_username and assignee_id are passed together2063API::Todos2064 GET /todos2065 avoids N+1 queries2066 when unauthenticated2067 returns authentication error2068 when authenticated2069 returns an array of pending todos for current user2070 and using the author filter2071 filters based on author_id param2072 and using the type filter2073 filters based on type param2074 and using the state filter2075 filters based on state param2076 and using the project filter2077 filters based on project_id param2078 and using the group filter2079 filters based on project_id param2080 and using the action filter2081 filters based on action param2082 POST /todos/:id/mark_as_done2083 when unauthenticated2084 returns authentication error2085 when authenticated2086 marks a todo as done2087 updates todos cache2088 returns 404 if the todo does not belong to the current user2089 POST /mark_as_done2090 when unauthenticated2091 returns authentication error2092 when authenticated2093 marks all todos as done2094 updates todos cache2095 POST :id/issuable_type/:issueable_id/todo2096 for an issue2097 behaves like an issuable2098 creates a todo on an issuable2099 returns 304 there already exist a todo on that issuable2100 returns 404 if the issuable is not found2101 returns an error if the issuable is not accessible2102 for a merge request2103 behaves like an issuable2104 creates a todo on an issuable2105 returns 304 there already exist a todo on that issuable2106 returns 404 if the issuable is not found2107 returns an error if the issuable is not accessible2108API::Issues2109 GET /issues2110 when unauthenticated2111 returns an array of all issues2112 returns authentication error without any scope2113 returns authentication error when scope is assigned-to-me2114 returns authentication error when scope is created-by-me2115 returns an array of issues matching state in milestone2116 returns an array of issues matching state in milestone2117 issues_statistics2118 returns authentication error without any scope2119 returns authentication error when scope is assigned_to_me2120 returns authentication error when scope is created_by_me2121 no state is treated as all state2122 behaves like issues statistics2123 returns issues statistics2124 statistics when all state is passed2125 behaves like issues statistics2126 returns issues statistics2127 closed state is treated as all state2128 behaves like issues statistics2129 returns issues statistics2130 opened state is treated as all state2131 behaves like issues statistics2132 returns issues statistics2133 when filtering by milestone and no state treated as all state2134 behaves like issues statistics2135 returns issues statistics2136 when filtering by milestone and all state2137 behaves like issues statistics2138 returns issues statistics2139 when filtering by milestone and closed state treated as all state2140 behaves like issues statistics2141 returns issues statistics2142 when filtering by milestone and opened state treated as all state2143 behaves like issues statistics2144 returns issues statistics2145 sort does not affect statistics2146 behaves like issues statistics2147 returns issues statistics2148 when authenticated2149 returns an array of issues2150 returns an array of closed issues2151 returns an array of opened issues2152 returns an array of all issues2153 returns issues assigned to me2154 returns issues assigned to me (kebab-case)2155 returns issues authored by the given author id2156 returns issues assigned to the given assignee id2157 returns issues authored by the given author id and assigned to the given assignee id2158 returns issues with no assignee2159 returns issues with any assignee2160 returns only confidential issues2161 returns only public issues2162 returns issues reacted by the authenticated user2163 returns issues not reacted by the authenticated user2164 returns issues matching given search string for title2165 returns issues matching given search string for title and scoped in title2166 returns an empty array if no issue matches given search string for title and scoped in description2167 returns issues matching given search string for description2168 returns an array of issues found by iids2169 returns an empty array if iid does not exist2170 sorts ascending when requested2171 sorts by updated_at descending when requested2172 sorts by updated_at ascending when requested2173 matches V4 response schema2174 returns a related merge request count of 0 if there are no related merge requests2175 returns a related merge request count > 0 if there are related merge requests2176 filtering before a specific date2177 returns issues created before a specific date2178 returns issues updated before a specific date2179 filtering after a specific date2180 returns issues created after a specific date2181 returns issues updated after a specific date2182 filter by labels or label_name param2183 returns an array of labeled issues2184 returns an array of labeled issues with labels param as array2185 returns an empty array if no issue matches labels2186 returns an empty array if no issue matches labels with labels param as array2187 returns an array of labeled issues matching given state2188 returns an array of labeled issues matching given state with labels param as array2189 returns an empty array if no issue matches labels and state filters2190 returns an array of issues with any label2191 returns an array of issues with any label with labels param as array2192 returns an array of issues with no label2193 returns an array of issues with no label with labels param as array2194 N+12195 tests N+12196 with labeled issues2197 behaves like labeled issues with labels and label_name params2198 array of labeled issues when all labels match2199 behaves like returns label names2200 returns label names2201 array of labeled issues when all labels match with labels param as array2202 behaves like returns label names2203 returns label names2204 negation2205 array of labeled issues when all labels match with negation2206 behaves like returns negated label names2207 returns label names2208 array of labeled issues when all labels match with negation with label params as array2209 behaves like returns negated label names2210 returns label names2211 when with_labels_details provided2212 array of labeled issues when all labels match2213 behaves like returns basic label entity2214 returns basic label entity2215 array of labeled issues when all labels match with labels param as array2216 behaves like returns basic label entity2217 returns basic label entity2218 filter by milestone2219 returns an empty array if no issue matches milestone2220 returns an empty array if milestone does not exist2221 returns an array of issues in given milestone2222 returns an array of issues in given milestone_title param2223 returns an array of issues matching state in milestone2224 returns an array of issues with no milestone2225 returns an array of issues with no milestone using milestone_title param2226 negated2227 returns all issues if milestone does not exist2228 returns all issues that do not belong to a milestone but have a milestone2229 returns an array of issues with any milestone2230 returns an array of issues matching state not in milestone2231 without sort params2232 sorts by created_at descending by default2233 with 2 issues with same created_at2234 page breaks first page correctly2235 page breaks second page correctly2236 with issues list sort options2237DEPRECATION 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)2238DEPRECATION 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)2239DEPRECATION 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)2240DEPRECATION 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)2241 accepts only predefined order by params2242 fails to sort with non predefined options2243 issues_statistics2244 no state is treated as all state2245 behaves like issues statistics2246 returns issues statistics2247 statistics when all state is passed2248 behaves like issues statistics2249 returns issues statistics2250 closed state is treated as all state2251 behaves like issues statistics2252 returns issues statistics2253 opened state is treated as all state2254 behaves like issues statistics2255 returns issues statistics2256 when filtering by milestone and no state treated as all state2257 behaves like issues statistics2258 returns issues statistics2259 when filtering by milestone and all state2260 behaves like issues statistics2261 returns issues statistics2262 when filtering by milestone and closed state treated as all state2263 behaves like issues statistics2264 returns issues statistics2265 when filtering by milestone and opened state treated as all state2266 behaves like issues statistics2267 returns issues statistics2268 sort does not affect statistics2269 behaves like issues statistics2270 returns issues statistics2271 filtering by assignee_username2272 returns issues with by assignee_username2273 returns issues by assignee_username as string2274 returns error when multiple assignees are passed2275 returns error when assignee_username and assignee_id are passed together2276 when returns issue merge_requests_count for different access levels2277 behaves like accessible merge requests count2278 returns anonymous accessible merge requests count2279 returns guest accessible merge requests count2280 returns reporter accessible merge requests count2281 returns admin accessible merge requests count2282 DELETE /projects/:id/issues/:issue_iid2283 rejects a non member from deleting an issue2284 rejects a developer from deleting an issue2285 returns 404 when using the issue ID instead of IID2286 when the user is project owner2287 deletes the issue if an admin requests it2288 behaves like 412 response2289 for a modified ressource2290 returns 4122291 for an unmodified ressource2292 returns accepted2293 when issue does not exist2294 returns 404 when trying to move an issue2295 time tracking endpoints2296 POST /projects/:id/issues/:issue_id/time_estimate2297 sets the time estimate for issue2298 with an unauthorized user2299 behaves like an unauthorized API user2300 should eq 4032301 updating the current estimate2302 when duration has a bad format2303 does not modify the original estimate2304 with a valid duration2305 updates the estimate2306 POST /projects/:id/issues/:issue_id/reset_time_estimate2307 resets the time estimate for issue2308 with an unauthorized user2309 behaves like an unauthorized API user2310 should eq 4032311 POST /projects/:id/issues/:issue_id/add_spent_time2312 add spent time for issue2313 with an unauthorized user2314 behaves like an unauthorized API user2315 should eq 4032316 when subtracting time2317 subtracts time of the total spent time2318 when time to subtract is greater than the total spent time2319 does not modify the total time spent2320 POST /projects/:id/issues/:issue_id/reset_spent_time2321 resets spent time for issue2322 with an unauthorized user2323 behaves like an unauthorized API user2324 should eq 4032325 GET /projects/:id/issues/:issue_id/time_stats2326 returns the time stats for issue2327API::Releases2328 GET /projects/:id/releases2329 returns an upcoming_release status for a future release2330 returns an upcoming_release status for a past release2331 when there are two releases2332 returns 200 HTTP status2333 returns releases ordered by released_at2334 matches response schema2335 returns rendered helper paths2336 returns the merge requests and issues links, with correct query2337 when tag does not exist in git repository2338 returns the tag2339 when user is a guest2340 responds 200 OK2341 does not expose tag, commit, source code or helper paths2342 when project is public2343 responds 200 OK2344 exposes tag, commit, source code and helper paths2345 when user is not a project member2346 cannot find the project2347 when project is public2348 allows the request2349 GET /projects/:id/releases/:tag_name2350 when there is a release2351 returns 200 HTTP status2352 returns a release entry2353 matches response schema2354 contains source information as assets2355 when release description contains confidential issue's link2356 does not expose confidential issue's title2357 when release has link asset2358 contains link information as assets2359 when link is internal2360 has external false2361 when user is a guest2362 responds 403 Forbidden2363 when project is public2364 responds 200 OK2365 exposes tag and commit2366 when specified tag is not found in the project2367 cannot find the release entry2368 when user is not a project member2369 cannot find the project2370 when project is public2371 allows the request2372 POST /projects/:id/releases2373 accepts the request2374 creates a new release2375 sets the released_at to the current time if the released_at parameter is not provided2376 sets the released_at to the value in the parameters if specified2377 assumes the utc timezone for released_at if the timezone is not provided2378 allows specifying a released_at with a local time zone2379 matches response schema2380 does not create a new tag2381 when description is empty2382 returns an error as validation failure2383 when user is a reporter2384 forbids the request2385 when user is not a project member2386 forbids the request2387 when project is public2388 forbids the request2389 when create assets altogether2390 when create one asset2391 accepts the request2392 creates an asset with specified parameters2393 matches response schema2394 when create two assets2395 creates two assets with specified parameters2396 when link names are duplicates2397 recognizes as a bad request2398 when tag does not exist in git repository2399 creates a new tag2400 creates a new release2401 when tag name is HEAD2402 returns an error as failure on tag creation2403 when tag name is empty2404 returns an error as failure on tag creation2405 when release already exists2406 returns an error as conflicted request2407 PUT /projects/:id/releases/:tag_name2408 accepts the request2409 updates the description2410 does not change other attributes2411 matches response schema2412 updates released_at2413 when user tries to update sha2414 does not allow the request2415 when params is empty2416 does not allow the request2417 when there are no corresponding releases2418 forbids the request2419 when user is a reporter2420 forbids the request2421 when user is not a project member2422 forbids the request2423 when project is public2424 forbids the request2425 DELETE /projects/:id/releases/:tag_name2426 accepts the request2427 destroys the release2428 does not remove a tag in repository2429 matches response schema2430 when there are no corresponding releases2431 forbids the request2432 when user is a reporter2433 forbids the request2434 when user is not a project member2435 forbids the request2436 when project is public2437 forbids the request2438API::Wikis2439 GET /projects/:id/wikis2440 when wiki is disabled2441 when user is guest2442 returns 404 Project Not Found2443 when user is developer2444 returns 403 Forbidden2445 when user is maintainer2446 returns 403 Forbidden2447 when wiki is available only for team members2448 when user is guest2449 returns 404 Project Not Found2450 when user is developer2451 return the empty list of wiki pages2452 when wiki has pages2453 returns the list of wiki pages without content2454 returns the list of wiki pages with content2455 when user is maintainer2456 return the empty list of wiki pages2457 when wiki has pages2458 returns the list of wiki pages without content2459 returns the list of wiki pages with content2460 when wiki is available for everyone with access2461 when user is guest2462 returns 404 Project Not Found2463 when user is developer2464 return the empty list of wiki pages2465 when wiki has pages2466 returns the list of wiki pages without content2467 returns the list of wiki pages with content2468 when user is maintainer2469 return the empty list of wiki pages2470 when wiki has pages2471 returns the list of wiki pages without content2472 returns the list of wiki pages with content2473 GET /projects/:id/wikis/:slug2474 when wiki is disabled2475 when user is guest2476 returns 404 Project Not Found2477 when user is developer2478 returns 403 Forbidden2479 when user is maintainer2480 returns 403 Forbidden2481 when wiki is available only for team members2482 when user is guest2483 returns 404 Project Not Found2484 when user is developer2485 returns the wiki page2486 when page is not existing2487 returns 404 Wiki Page Not Found2488 when user is maintainer2489 returns the wiki page2490 when page is not existing2491 returns 404 Wiki Page Not Found2492 when wiki is available for everyone with access2493 when user is guest2494 returns 404 Project Not Found2495 when user is developer2496 returns the wiki page2497 when page is not existing2498 returns 404 Wiki Page Not Found2499 when user is maintainer2500 returns the wiki page2501 when page is not existing2502 returns 404 Wiki Page Not Found2503 POST /projects/:id/wikis2504 when wiki is disabled2505 when user is guest2506 returns 404 Project Not Found2507 when user is developer2508 returns 403 Forbidden2509 when user is maintainer2510 returns 403 Forbidden2511 when wiki is available only for team members2512 when user is guest2513 returns 404 Project Not Found2514 when user is developer2515 creates the wiki page2516 responds with validation error on empty title2517 responds with validation error on empty content2518 when user is maintainer2519 creates the wiki page2520 responds with validation error on empty title2521 responds with validation error on empty content2522 when wiki is available for everyone with access2523 when user is guest2524 returns 404 Project Not Found2525 when user is developer2526 creates the wiki page2527 responds with validation error on empty title2528 responds with validation error on empty content2529 when user is maintainer2530 creates the wiki page2531 responds with validation error on empty title2532 responds with validation error on empty content2533 PUT /projects/:id/wikis/:slug2534 when wiki is disabled2535 when user is guest2536 returns 404 Project Not Found2537 when user is developer2538 returns 403 Forbidden2539 when user is maintainer2540 returns 403 Forbidden2541 when wiki is available only for team members2542 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 is available for everyone with access2559 when user is guest2560 returns 404 Project Not Found2561 when user is developer2562 updates the wiki page2563 it updates with wiki with missing title2564 it updates with wiki with missing content2565 it updates with wiki with missing format2566 when page is not existing2567 returns 404 Wiki Page Not Found2568 when user is maintainer2569 updates the wiki page2570 it updates with wiki with missing title2571 it updates with wiki with missing content2572 it updates with wiki with missing format2573 when page is not existing2574 returns 404 Wiki Page Not Found2575 when wiki belongs to a group project2576 updates the wiki page2577 it updates with wiki with missing title2578 it updates with wiki with missing content2579 it updates with wiki with missing format2580 DELETE /projects/:id/wikis/:slug2581 when wiki is disabled2582 when user is guest2583 returns 404 Project Not Found2584 when user is developer2585 returns 403 Forbidden2586 when user is maintainer2587 returns 403 Forbidden2588 when wiki is available only for team members2589 when user is guest2590 returns 404 Project Not Found2591 when user is developer2592 returns 403 Forbidden2593 when user is maintainer2594 returns 204 No Content2595 when wiki is available for everyone with access2596 when user is guest2597 returns 404 Project Not Found2598 when user is developer2599 returns 403 Forbidden2600 when user is maintainer2601 returns 204 No Content2602 when page is not existing2603 returns 404 Wiki Page Not Found2604 when wiki belongs to a group project2605 returns 204 No Content2606 POST /projects/:id/wikis/attachments2607 when wiki is disabled2608 when user is guest2609 returns 404 Project Not Found2610 when user is developer2611 returns 403 Forbidden2612 when user is maintainer2613 returns 403 Forbidden2614 when wiki is available only for team members2615 when user is guest2616 returns 404 Project Not Found2617 when user is developer2618 pushes attachment to the wiki repository2619 responds with validation error on empty file2620 responds with validation error on invalid temp file2621 is backward compatible with regular multipart uploads2622 when user is maintainer2623 pushes attachment to the wiki repository2624 responds with validation error on empty file2625 responds with validation error on invalid temp file2626 is backward compatible with regular multipart uploads2627 when wiki is available for everyone with access2628 when user is guest2629 returns 404 Project Not Found2630 when user is developer2631 pushes attachment to the wiki repository2632 responds with validation error on empty file2633 responds with validation error on invalid temp file2634 is backward compatible with regular multipart uploads2635 when user is maintainer2636 pushes attachment to the wiki repository2637 responds with validation error on empty file2638 responds with validation error on invalid temp file2639 is backward compatible with regular multipart uploads2640API::Issues2641 POST /projects/:id/issues2642 creates a new project issue2643 creates a new project issue with labels param as array2644 creates a new confidential project issue2645 creates a new confidential project issue with a different param2646 creates a public issue when confidential param is false2647 creates a public issue when confidential param is invalid2648 returns a 400 bad request if title not given2649 allows special label names2650 allows special label names with labels param as array2651 returns 400 if title is too long2652 support for deprecated assignee_id2653 creates a new project issue2654 creates a new project issue when assignee_id is empty2655 single assignee restrictions2656 creates a new project issue with no more than one assignee2657 user does not have permissions to create issue2658 renders 4032659 an internal ID is provided2660 by an admin2661 sets the internal ID on the new issue2662 by an owner2663 sets the internal ID on the new issue2664 by a group owner2665 sets the internal ID on the new issue2666 by another user2667 ignores the given internal ID2668 resolving discussions2669 resolving all discussions in a merge request2670 behaves like creating an issue resolving discussions through the API2671 creates a new project issue2672 resolves the discussions in a merge request2673 assigns a description to the issue mentioning the merge request2674 resolving a single discussion2675 behaves like creating an issue resolving discussions through the API2676 creates a new project issue2677 resolves the discussions in a merge request2678 assigns a description to the issue mentioning the merge request2679 with due date2680 creates a new project issue2681 setting created_at2682 by an admin2683 sets the creation time on the new issue2684 by a project owner2685 sets the creation time on the new issue2686 by a group owner2687 sets the creation time on the new issue2688 by another user2689 ignores the given creation time2690 the user can only read the issue2691 cannot create new labels2692 cannot create new labels with labels param as array2693 POST /projects/:id/issues with spam filtering2694 when allow_possible_spam feature flag is false2695 does not create a new project issue2696 returns correct status and message2697 creates a new spam log entry2698 when allow_possible_spam feature flag is true2699 does creates a new project issue2700 returns correct status2701 creates a new spam log entry2702 /projects/:id/issues/:issue_iid/move2703 moves an issue2704 moves the issue to another namespace if I am admin2705 when source and target projects are the same2706 returns 400 when trying to move an issue2707 when the user does not have the permission to move issues2708 returns 400 when trying to move an issue2709 when using the issue ID instead of iid2710 returns 404 when trying to move an issue2711 when issue does not exist2712 returns 404 when trying to move an issue2713 when source project does not exist2714 returns 404 when trying to move an issue2715 when target project does not exist2716 returns 404 when trying to move an issue2717 POST :id/issues/:issue_iid/subscribe2718 subscribes to an issue2719 returns 304 if already subscribed2720 returns 404 if the issue is not found2721 returns 404 if the issue ID is used instead of the iid2722 returns 404 if the issue is confidential2723 POST :id/issues/:issue_id/unsubscribe2724 unsubscribes from an issue2725 returns 304 if not subscribed2726 returns 404 if the issue is not found2727 returns 404 if using the issue ID instead of iid2728 returns 404 if the issue is confidential2729Projects::ClustersController2730 GET index2731 functionality2732 when project has one or more clusters2733 lists available clusters2734 when page is specified2735 redirects to the page2736 when project does not have a cluster2737 returns an empty state page2738 security2739 should be allowed for admin. Expected: 200,201,204,302 Got: 2002740 should be allowed for owner. Expected: 200,201,204,302 Got: 2002741 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002742 should be denied for developer. Expected: 401,404 Got: 4042743 should be denied for reporter. Expected: 401,404 Got: 4042744 should be denied for guest. Expected: 401,404 Got: 4042745 should be denied for user. Expected: 401,404 Got: 4042746 should be denied for external. Expected: 401,404 Got: 4042747 GET new2748 functionality for new cluster2749 when omniauth has been configured2750 has authorize_url2751 when create_eks_clusters feature flag is enabled2752 when selected provider is gke and no valid gcp token exists2753 redirects to gcp authorize_url2754 when omniauth has not configured2755 does not have authorize_url2756 when access token is valid2757 has new object2758 when access token is expired2759 should be falsey2760 when access token is not stored in session2761 should be falsey2762 functionality for existing cluster2763 has new object2764 security2765 should be allowed for admin. Expected: 200,201,204,302 Got: 3022766 should be allowed for owner. Expected: 200,201,204,302 Got: 3022767 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022768 should be denied for developer. Expected: 401,404 Got: 4042769 should be denied for reporter. Expected: 401,404 Got: 4042770 should be denied for guest. Expected: 401,404 Got: 4042771 should be denied for user. Expected: 401,404 Got: 4042772 should be denied for external. Expected: 401,404 Got: 4042773 POST create for new cluster2774 functionality2775 when access token is valid2776 creates a new cluster2777 when legacy_abac param is false2778 creates a new cluster with legacy_abac_disabled2779 when access token is expired2780 should be falsey2781 when access token is not stored in session2782 should be falsey2783 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 POST create for existing cluster2793 functionality2794 when creates a cluster2795 creates a new cluster2796 when creates a RBAC-enabled cluster2797 creates a new cluster2798 when creates a user-managed cluster2799 creates a new user-managed cluster2800 security2801 should be allowed for admin. Expected: 200,201,204,302 Got: 3022802 should be allowed for owner. Expected: 200,201,204,302 Got: 3022803 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022804 should be denied for developer. Expected: 401,404 Got: 4042805 should be denied for reporter. Expected: 401,404 Got: 4042806 should be denied for guest. Expected: 401,404 Got: 4042807 should be denied for user. Expected: 401,404 Got: 4042808 should be denied for external. Expected: 401,404 Got: 4042809 GET cluster_status2810 functionality2811 responds with matching schema2812 invokes schedule_status_update on each application2813 security2814 should be allowed for admin. Expected: 200,201,204,302 Got: 2002815 should be allowed for owner. Expected: 200,201,204,302 Got: 2002816 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002817 should be denied for developer. Expected: 401,404 Got: 4042818 should be denied for reporter. Expected: 401,404 Got: 4042819 should be denied for guest. Expected: 401,404 Got: 4042820 should be denied for user. Expected: 401,404 Got: 4042821 should be denied for external. Expected: 401,404 Got: 4042822 GET show2823 functionality2824 renders view2825 security2826 should be allowed for admin. Expected: 200,201,204,302 Got: 2002827 should be allowed for owner. Expected: 200,201,204,302 Got: 2002828 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2002829 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 PUT update2835 updates and redirects back to show page2836 when format is json2837 when changing parameters2838 when valid parameters are used2839 updates and redirects back to show page2840 when invalid parameters are used2841 rejects changes2842 security2843 should be allowed for admin. Expected: 200,201,204,302 Got: 3022844 should be allowed for owner. Expected: 200,201,204,302 Got: 3022845 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022846 should be denied for developer. Expected: 401,404 Got: 4042847 should be denied for reporter. Expected: 401,404 Got: 4042848 should be denied for guest. Expected: 401,404 Got: 4042849 should be denied for user. Expected: 401,404 Got: 4042850 should be denied for external. Expected: 401,404 Got: 4042851 DELETE destroy2852 functionality2853 when cluster is provided by GCP2854 when cluster is created2855 destroys and redirects back to clusters list2856 when cluster is being created2857 destroys and redirects back to clusters list2858 when cluster is provided by user2859 destroys and redirects back to clusters list2860 security2861 should be allowed for admin. Expected: 200,201,204,302 Got: 3022862 should be allowed for owner. Expected: 200,201,204,302 Got: 3022863 should be allowed for maintainer. Expected: 200,201,204,302 Got: 3022864 should be denied for developer. Expected: 401,404 Got: 4042865 should be denied for reporter. Expected: 401,404 Got: 4042866 should be denied for guest. Expected: 401,404 Got: 4042867 should be denied for user. Expected: 401,404 Got: 4042868 should be denied for external. Expected: 401,404 Got: 4042869 no project_id param2870 does not respond to any action without project_id param2871API::GroupClusters2872 GET /groups/:id/clusters2873 non-authorized user2874 responds with 4032875 authorized user2876 responds with 2002877 includes pagination headers2878 only include authorized clusters2879 GET /groups/:id/clusters/:cluster_id2880 non-authorized user2881 responds with 4032882 authorized user2883 returns specific cluster2884 returns cluster information2885 returns group information2886 returns kubernetes platform information2887 returns user information2888 returns GCP provider information2889 when cluster has no provider2890 does not include GCP provider info2891 with non-existing cluster2892 returns 4042893 POST /groups/:id/clusters/user2894 non-authorized user2895 responds with 4032896 authorized user2897 with valid params2898 responds with 2012899 creates a new Cluster::Cluster2900 when user does not indicate authorization type2901 defaults to RBAC2902 when user sets authorization type as ABAC2903 creates an ABAC cluster2904 with invalid params2905 responds with 4002906 does not create a new Clusters::Cluster2907 returns validation errors2908 when user tries to add multiple clusters2909 responds with 4002910 non-authorized user2911 responds with 4032912 PUT /groups/:id/clusters/:cluster_id2913 non-authorized user2914 responds with 4032915 authorized user2916 with valid params2917 responds with 2002918 updates cluster attributes2919 with invalid params2920 responds with 4002921 does not update cluster attributes2922 returns validation errors2923 with a GCP cluster2924 when user tries to change GCP specific fields2925 responds with 4002926 returns validation error2927 when user tries to change domain2928 responds with 2002929 with an user cluster2930 responds with 2002931 updates platform kubernetes attributes2932 with a cluster that does not belong to user2933 responds with 4042934 DELETE /groups/:id/clusters/:cluster_id2935 non-authorized user2936 responds with 4032937 authorized user2938 responds with 2042939 deletes the cluster2940 with a cluster that does not belong to user2941 responds with 4042942Groups::MilestonesController2943 #index2944 as HTML2945 shows group milestones page2946 searches legacy milestones by title when search_title is given2947 searches group milestones by title when search_title is given2948 when anonymous user2949 shows group milestones page2950 when issues and merge requests are disabled in public project2951 when anonymous user2952 behaves like milestone not accessible2953 does not return milestone2954 when non project or group member user2955 behaves like milestone not accessible2956 does not return milestone2957 when group member user2958 returns the milestone2959 as JSON2960 lists legacy group milestones and group milestones2961 external authorization2962 behaves like disabled when using an external authorization service2963 works when the feature is not enabled2964 renders a 404 with a message when the feature is enabled2965 #show2966 when there is a title parameter2967 searches for a legacy group milestone2968 when there is not a title parameter2969 searches for a group milestone2970 behaves like milestone tabs2971 #merge_requests2972 as html2973 redirects to milestone#show2974 as json2975 renders the merge requests tab template to a string2976 #participants2977 as html2978 redirects to milestone#show2979 as json2980 renders the participants tab template to a string2981 #labels2982 as html2983 redirects to milestone#show2984 as json2985 renders the labels tab template to a string2986 #create2987 creates group milestone with Chinese title2988 #update2989 updates group milestone2990 legacy group milestones2991 updates only group milestones state2992 #destroy2993 removes milestone2994 #ensure_canonical_path2995 for a GET request2996 when requesting the canonical path2997 non-show path2998 with exactly matching casing2999 does not redirect3000 with different casing3001 redirects to the correct casing3002 show path3003 with exactly matching casing3004 does not redirect3005 with different casing3006 redirects to the correct casing3007 when requesting a redirected path3008 redirects to the canonical path3009 when the old group path is a substring of the scheme or host3010 does not modify the requested host3011 when the old group path is substring of groups3012 does not modify the /groups part of the path3013 when the old group path is substring of groups plus the new path3014 does not modify the /groups part of the path3015 for a non-GET request3016 when requesting the canonical path with different casing3017 does not 4043018 does not redirect to the correct casing3019 when requesting a redirected path3020 returns not found3021Projects::BlobController3022 GET show3023 with file path3024 valid branch, valid file3025 should respond with 2003026 valid branch, invalid file3027 should respond with 4043028 invalid branch, valid file3029 should respond with 4043030 binary file3031 should respond with 2003032 Markdown file3033 should respond with 2003034 with file path and JSON format3035 valid branch, valid file3036 should have key "raw_path"3037 with viewer=none3038 should have key "raw_path"3039 with tree path3040 redirect to tree3041 redirects3042 GET diff3043 when essential params are missing3044 renders nothing3045 when essential params are present3046 when rendering for commit3047 renders the diff content3048 when rendering for merge request3049 renders diff context lines Gitlab::Diff::Line array3050 handles full being true3051 GET edit3052 anonymous3053 redirects to sign in and returns3054 as guest3055 redirects to blob show3056 as developer3057 redirects to blob show3058 as maintainer3059 redirects to blob show3060 PUT update3061 redirects to blob3062 ?from_merge_request_iid3063 redirects to MR diff3064 when user doesn't have access3065 redirects to blob3066 when user has forked project3067 when editing on the fork3068 redirects to blob3069 when editing on the original repository3070 redirects to forked project new merge request3071 DELETE destroy3072 for a file in a subdirectory3073 redirects to the sub directory3074 if deleted file is the last one in a subdirectory3075 redirects to the project root3076 when deleting a file in a branch other than master3077 redirects to the project root of the branch3078API::GroupMilestones3079 behaves like group and project milestones3080 GET /groups/:id/milestones3081 returns milestones list3082 returns a 401 error if user not authenticated3083 returns an array of active milestones3084 returns an array of closed milestones3085 returns an array of milestones specified by iids3086 does not return any milestone if none found3087 returns a milestone by iids array3088 returns a milestone by title3089 returns a milestone by searching for title3090 returns a milestones by searching for description3091 GET /groups/:id/milestones/:milestone_id3092 returns a milestone by id3093 returns 401 error if user not authenticated3094 returns a 404 error if milestone id not found3095 POST /groups/:id/milestones3096 creates a new milestone3097 creates a new milestone with description and dates3098 returns a 400 error if title is missing3099 returns a 400 error if params are invalid (duplicate title)3100 creates a new milestone with reserved html characters3101 PUT /groups/:id/milestones/:milestone_id3102 updates a milestone3103 removes a due date if nil is passed3104 returns a 404 error if milestone id not found3105 closes milestone3106 updates milestone with only start date3107 DELETE /groups/:id/milestones/:milestone_id3108 rejects a member with reporter access from deleting a milestone3109 deletes the milestone when the user has developer access to the project3110 GET /groups/:id/milestones/:milestone_id/issues3111 returns issues for a particular milestone3112 returns issues sorted by label priority3113 matches V4 response schema for a list of issues3114 returns a 401 error if user not authenticated3115 confidential issues3116 returns confidential issues to team members3117 does not return confidential issues to team members with guest role3118 does not return confidential issues to regular users3119 returns issues ordered by label priority3120 GET /groups/:id/milestones/:milestone_id/merge_requests3121 returns merge_requests for a particular milestone3122 returns merge_requests sorted by label priority3123 returns a 404 error if milestone id not found3124 returns a 404 if the user has no access to the milestone3125 returns a 401 error if user not authenticated3126 returns merge_requests ordered by position asc3127Projects::DiscussionsController3128 GET show3129 when user is not authorized to read the MR3130 returns 4043131 when user is authorized to read the MR3132 returns status 2003133 returns status 404 if MR does not exists3134 when user is authorized but note is LegacyDiffNote3135 returns status 2003136 POST resolve3137 when the user is not authorized to resolve the discussion3138 returns status 4043139 when the user is authorized to resolve the discussion3140 when the discussion is not resolvable3141 returns status 4043142 when the discussion is resolvable3143 resolves the discussion3144 sends notifications if all discussions are resolved3145 returns the name of the resolving user3146 returns status 2003147 renders discussion with serializer3148 diff discussion3149 returns truncated diff lines3150 DELETE unresolve3151 when the user is not authorized to resolve the discussion3152 returns status 4043153 when the user is authorized to resolve the discussion3154 when the discussion is not resolvable3155 returns status 4043156 when the discussion is resolvable3157 unresolves the discussion3158 returns status 2003159 when vue_mr_discussions cookie is present3160 renders discussion with serializer3161Projects::CompareController3162 GET index3163 returns successfully3164 GET show3165 when the refs exist3166 when we set the white space param3167 shows some diffs with ignore whitespace change option3168 when we do not set the white space param3169 sets the diffs and commits ivars3170 when the source ref does not exist3171 sets empty diff and commit ivars3172 when the target ref does not exist3173 sets empty diff and commit ivars3174 when the target ref is invalid3175 shows a flash message and redirects3176 when the source ref is invalid3177 shows a flash message and redirects3178 GET diff_for_path3179 when the source and target refs exist3180 when the user has access target the project3181 when the path exists in the diff3182 disables diff notes3183 only renders the diffs for the path given3184 when the path does not exist in the diff3185 returns a 4043186 when the user does not have access target the project3187 returns a 4043188 when the source ref does not exist3189 returns a 4043190 when the target ref does not exist3191 returns a 4043192 POST create3193 when sending valid params3194 redirects back to show3195 when sending invalid params3196 when the source ref is empty and target ref is set3197 redirects back to index and preserves the target ref3198 when the target ref is empty and source ref is set3199 redirects back to index and preserves source ref3200 when the target and source ref are empty3201 redirects back to index3202 GET signatures3203 when the source and target refs exist3204 when the user has access to the project3205 returns only the commit with a signature3206 when the user does not have access to the project3207 returns a 4043208 when the source ref does not exist3209 returns no signatures3210 when the target ref does not exist3211 returns no signatures3212Request Profiler3213 when user is logged-in3214 creates a profile of the request3215 creates a profile of the request3216 creates a profile of the request3217 when user is not logged-in3218 creates a profile of the request3219 creates a profile of the request3220 creates a profile of the request3221Public Project Pages Access3222 Project should be public3223 #public?3224 should be truthy3225 GET /projects/:id/pages_access3226 access depends on the level3227 pages_access_level: 0, with_user: "admin", expected_result: 4033228 correct return value3229 pages_access_level: 0, with_user: "owner", expected_result: 4033230 correct return value3231 pages_access_level: 0, with_user: "master", expected_result: 4033232 correct return value3233 pages_access_level: 0, with_user: "developer", expected_result: 4033234 correct return value3235 pages_access_level: 0, with_user: "reporter", expected_result: 4033236 correct return value3237 pages_access_level: 0, with_user: "guest", expected_result: 4033238 correct return value3239 pages_access_level: 0, with_user: "user", expected_result: 4033240 correct return value3241 pages_access_level: 0, with_user: nil, expected_result: 4033242 correct return value3243 pages_access_level: 30, with_user: "admin", expected_result: 2003244 correct return value3245 pages_access_level: 30, with_user: "owner", expected_result: 2003246 correct return value3247 pages_access_level: 30, with_user: "master", expected_result: 2003248 correct return value3249 pages_access_level: 30, with_user: "developer", expected_result: 2003250 correct return value3251 pages_access_level: 30, with_user: "reporter", expected_result: 2003252 correct return value3253 pages_access_level: 30, with_user: "guest", expected_result: 2003254 correct return value3255 pages_access_level: 30, with_user: "user", expected_result: 2003256 correct return value3257 pages_access_level: 30, with_user: nil, expected_result: 2003258 correct return value3259 pages_access_level: 20, with_user: "admin", expected_result: 2003260 correct return value3261 pages_access_level: 20, with_user: "owner", expected_result: 2003262 correct return value3263 pages_access_level: 20, with_user: "master", expected_result: 2003264 correct return value3265 pages_access_level: 20, with_user: "developer", expected_result: 2003266 correct return value3267 pages_access_level: 20, with_user: "reporter", expected_result: 2003268 correct return value3269 pages_access_level: 20, with_user: "guest", expected_result: 2003270 correct return value3271 pages_access_level: 20, with_user: "user", expected_result: 2003272 correct return value3273 pages_access_level: 20, with_user: nil, expected_result: 2003274 correct return value3275 pages_access_level: 10, with_user: "admin", expected_result: 2003276 correct return value3277 pages_access_level: 10, with_user: "owner", expected_result: 2003278 correct return value3279 pages_access_level: 10, with_user: "master", expected_result: 2003280 correct return value3281 pages_access_level: 10, with_user: "developer", expected_result: 2003282 correct return value3283 pages_access_level: 10, with_user: "reporter", expected_result: 2003284 correct return value3285 pages_access_level: 10, with_user: "guest", expected_result: 2003286 correct return value3287 pages_access_level: 10, with_user: "user", expected_result: 4033288 correct return value3289 pages_access_level: 10, with_user: nil, expected_result: 4033290 correct return value3291Rack Attack global throttles3292 unauthenticated requests3293 when the throttle is enabled3294 rejects requests over the rate limit3295 allows requests after throttling and then waiting for the next period3296 counts requests from different IPs separately3297 logs RackAttack info into structured logs3298 when the request is to the api internal endpoints3299 allows requests over the rate limit3300 when the throttle is disabled3301 allows requests over the rate limit3302 API requests authenticated with personal access token3303 with the token in the query string3304 behaves like rate-limited token-authenticated requests3305 when the throttle is enabled3306 rejects requests over the rate limit3307 allows requests after throttling and then waiting for the next period3308 counts requests from different users separately, even from the same IP3309 counts all requests from the same user, even via different IPs3310 logs RackAttack info into structured logs3311 when the throttle is disabled3312 allows requests over the rate limit3313 with the token in the headers3314 behaves like rate-limited token-authenticated requests3315 when the throttle is enabled3316 rejects requests over the rate limit3317 allows requests after throttling and then waiting for the next period3318 counts requests from different users separately, even from the same IP3319 counts all requests from the same user, even via different IPs3320 logs RackAttack info into structured logs3321 when the throttle is disabled3322 allows requests over the rate limit3323 API requests authenticated with OAuth token3324 with the token in the query string3325 behaves like rate-limited token-authenticated requests3326 when the throttle is enabled3327 rejects requests over the rate limit3328 allows requests after throttling and then waiting for the next period3329 counts requests from different users separately, even from the same IP3330 counts all requests from the same user, even via different IPs3331 logs RackAttack info into structured logs3332 when the throttle is disabled3333 allows requests over the rate limit3334 with the token in the headers3335 behaves like rate-limited token-authenticated requests3336 when the throttle is enabled3337 rejects requests over the rate limit3338 allows requests after throttling and then waiting for the next period3339 counts requests from different users separately, even from the same IP3340 counts all requests from the same user, even via different IPs3341 logs RackAttack info into structured logs3342 when the throttle is disabled3343 allows requests over the rate limit3344 "web" (non-API) requests authenticated with RSS token3345 with the token in the query string3346 behaves like rate-limited token-authenticated requests3347 when the throttle is enabled3348 rejects requests over the rate limit3349 allows requests after throttling and then waiting for the next period3350 counts requests from different users separately, even from the same IP3351 counts all requests from the same user, even via different IPs3352 logs RackAttack info into structured logs3353 when the throttle is disabled3354 allows requests over the rate limit3355 web requests authenticated with regular login3356 behaves like rate-limited web authenticated requests3357 when the throttle is enabled3358 rejects requests over the rate limit3359 allows requests after throttling and then waiting for the next period3360 counts requests from different users separately, even from the same IP3361 counts all requests from the same user, even via different IPs3362 logs RackAttack info into structured logs3363 when the throttle is disabled3364 allows requests over the rate limit3365 protected paths3366 unauthenticated requests3367 when protected paths throttle is disabled3368 allows requests over the rate limit3369 when protected paths throttle is enabled3370 rejects requests over the rate limit3371 when Omnibus throttle is present3372 allows requests over the rate limit3373 API requests authenticated with personal access token3374 with the token in the query string3375 behaves like rate-limited token-authenticated requests3376 when the throttle is enabled3377 rejects requests over the rate limit3378 allows requests after throttling and then waiting for the next period3379 counts requests from different users separately, even from the same IP3380 counts all requests from the same user, even via different IPs3381 logs RackAttack info into structured logs3382 when the throttle is disabled3383 allows requests over the rate limit3384 with the token in the headers3385 behaves like rate-limited token-authenticated requests3386 when the throttle is enabled3387 rejects requests over the rate limit3388 allows requests after throttling and then waiting for the next period3389 counts requests from different users separately, even from the same IP3390 counts all requests from the same user, even via different IPs3391 logs RackAttack info into structured logs3392 when the throttle is disabled3393 allows requests over the rate limit3394 when Omnibus throttle is present3395 allows requests over the rate limit3396 web requests authenticated with regular login3397 behaves like rate-limited web authenticated requests3398 when the throttle is enabled3399 rejects requests over the rate limit3400 allows requests after throttling and then waiting for the next period3401 counts requests from different users separately, even from the same IP3402 counts all requests from the same user, even via different IPs3403 logs RackAttack info into structured logs3404 when the throttle is disabled3405 allows requests over the rate limit3406 when Omnibus throttle is present3407 allows requests over the rate limit3408API::DeployKeys3409 GET /deploy_keys3410 when unauthenticated3411 returns authentication error3412 when authenticated as non-admin user3413 returns a 403 error3414 when authenticated as admin3415 returns all deploy keys3416 GET /projects/:id/deploy_keys3417 returns array of ssh keys3418 GET /projects/:id/deploy_keys/:key_id3419 returns a single key3420 returns 404 Not Found with invalid ID3421 POST /projects/:id/deploy_keys3422 does not create an invalid ssh key3423 does not create a key without title3424 creates new ssh key3425 returns an existing ssh key when attempting to add a duplicate3426 joins an existing ssh key to a new project3427 accepts can_push parameter3428 PUT /projects/:id/deploy_keys/:key_id3429 updates a public deploy key as admin3430 does not update a public deploy key as non admin3431 does not update a private key with invalid title3432 updates a private ssh key with correct attributes3433 DELETE /projects/:id/deploy_keys/:key_id3434 removes existing key from project3435 returns 404 Not Found with invalid ID3436 when the deploy key is public3437 does not delete the deploy key3438 when the deploy key is not public3439 when the deploy key is only used by this project3440 deletes the deploy key3441 when the deploy key is used by other projects3442 does not delete the deploy key3443 behaves like 412 response3444 for a modified ressource3445 returns 4123446 for an unmodified ressource3447 returns accepted3448 POST /projects/:id/deploy_keys/:key_id/enable3449 when the user can admin the project3450 enables the key3451 when authenticated as non-admin user3452 returns a 404 error3453Dashboard::TodosController3454 GET #index3455 project authorization3456 renders 404 when user does not have read access on given project3457 renders 404 when given project does not exists3458 renders 200 when filtering for "any project" todos3459 renders 200 when user has access on given project3460 with render_views3461 avoids N+1 queries3462 group authorization3463 renders 404 when user does not have read access on given group3464 behaves like paginated collection3465 renders a page number that is not ouf of range3466 redirects to last_page if page number is larger than number of pages3467 does not redirect to external sites when provided a host field3468 when providing no filters3469 does not perform a query to get the page count, but gets that from the user3470 when providing filters3471 performs a query to get the correct page count3472 external authorization3473 behaves like disabled when using an external authorization service3474 works when the feature is not enabled3475 renders a 404 with a message when the feature is enabled3476 PATCH #restore3477 restores the todo to pending state3478 PATCH #bulk_restore3479 restores the todos to pending state3480Projects::ArtifactsController3481 GET index3482 when feature flag is on3483 sets the artifacts variable3484 sets the total size variable3485 pagination3486 paginates artifacts3487 when feature flag is off3488 renders no content3489 does not set the artifacts variable3490 does not set the total size variable3491 DELETE destroy3492 deletes the artifact3493 redirects to artifacts index page3494 sets the notice3495 when artifact deletion fails3496 redirects to artifacts index page3497 sets the notice3498 when user is not authorized3499 does not delete the artifact3500 GET download3501 when no file type is supplied3502 sends the artifacts file3503 when a file type is supplied3504 when an invalid file type is supplied3505 returns 4043506 when codequality file type is supplied3507 when file is stored locally3508 sends the codequality report3509 when file is stored remotely3510 sends the codequality report3511 when proxied3512 sends the codequality report3513 GET browse3514 when the directory exists3515 renders the browse view3516 when the directory does not exist3517 responds Not Found3518 GET file3519 when the file is served by GitLab Pages3520 when the file exists3521 renders the file view3522 when the file does not exist3523 responds Not Found3524 when the file is served through Rails3525 when the file exists3526 renders the file view3527 when the file does not exist3528 responds Not Found3529 when the project is private3530 does not redirect the request3531 when the project is private and pages access control is enabled3532 renders the file view3533 GET raw3534 when the file exists3535 when using local file storage3536 behaves like a valid file3537 serves the file using workhorse3538 when using remote file storage3539 behaves like a valid file3540 serves the file using workhorse3541 GET latest_succeeded3542 cannot find the job3543 has no such ref3544 behaves like not found3545 should respond with numeric status code not_found3546 has no such job3547 behaves like not found3548 should respond with numeric status code not_found3549 has no path3550 behaves like not found3551 should respond with numeric status code not_found3552 found the job and redirect3553 with regular branch3554 behaves like redirect to the job3555 redirects3556 with branch name containing slash3557 behaves like redirect to the job3558 redirects3559 with branch name and path containing slashes3560 redirects3561API::ProtectedTags3562 GET /projects/:id/protected_tags3563 when authenticated as a maintainer3564 behaves like protected tags3565 returns the protected tags3566 when authenticated as a guest3567 behaves like 403 response3568 returns 4033569 GET /projects/:id/protected_tags/:tag3570 when authenticated as a maintainer3571 behaves like protected tag3572 returns the protected tag3573 when protected tag does not exist3574 behaves like 404 response3575 returns 4043576 when protected tag contains a wildcard3577 behaves like protected tag3578 returns the protected tag3579 when protected tag does not exist3580 behaves like 404 response3581 returns 4043582 when authenticated as a guest3583 behaves like 403 response3584 returns 4033585 POST /projects/:id/protected_tags3586 when authenticated as a maintainer3587 protects a single tag with maintainers can create tags3588 protects a single tag with developers can create tags3589 protects a single tag with no one can create tags3590 returns a 422 error if the same tag is protected twice3591 returns 201 if the same tag is proteted on different projects3592 when tag has a wildcard in its name3593 protects multiple tags with a wildcard in the name3594 when authenticated as a guest3595 returns a 403 error if guest3596 DELETE /projects/:id/protected_tags/unprotect/:tag3597 unprotects a single tag3598 returns 404 if tag does not exist3599 behaves like 412 response3600 for a modified ressource3601 returns 4123602 for an unmodified ressource3603 returns accepted3604 when tag has a wildcard in its name3605 unprotects a wildcard tag3606SearchController3607 GET #show3608 finds issue comments3609 behaves like when the user cannot read cross project3610 blocks access without a project_id3611 allows access with a project_id3612 still allows accessing the search page3613 behaves like with external authorization service enabled3614 renders a 403 when no project is given3615 renders a 200 when a project was set3616 uses the right partials depending on scope3617 partial: "_blob", scope: :blobs3618 should render template search/results/_blob3619 partial: "_wiki_blob", scope: :wiki_blobs3620 should render template search/results/_wiki_blob3621 partial: "_commit", scope: :commits3622 should render template search/results/_commit3623 global search3624 omits pipeline status from load3625 on restricted projects3626 doesn't expose comments on merge_requests3627 doesn't expose comments on snippets3628 when signed out3629 doesn't expose comments on issues3630 GET #count3631 returns the result count for the given term and scope3632 raises an error if search term is missing3633 raises an error if search scope is missing3634 behaves like when the user cannot read cross project3635 blocks access without a project_id3636 allows access with a project_id3637 behaves like with external authorization service enabled3638 renders a 403 when no project is given3639 renders a 200 when a project was set3640 GET #autocomplete3641 behaves like when the user cannot read cross project3642 blocks access without a project_id3643 allows access with a project_id3644 behaves like with external authorization service enabled3645 renders a 403 when no project is given3646 renders a 200 when a project was set3647API::ProjectImport3648 POST /projects/import3649 schedules an import using a namespace3650 schedules an import using the namespace path3651 schedules an import at the user namespace level3652 does not schedule an import for a namespace that does not exist3653 does not schedule an import if the user has no permission to the namespace3654 does not schedule an import if the user uploads no valid file3655 stores params that can be overridden3656 does not store params that are not allowed3657 correctly overrides params during the import3658 when a name is explicitly set3659 schedules an import using a namespace and a different name3660 schedules an import using the namespace path and a different name3661 sets name correctly3662 sets name correctly with an overwrite3663 schedules an import using the path and name explicitly set to nil3664 when target path already exists in namespace3665 does not schedule an import3666 when param overwrite is true3667 schedules an import3668 GET /projects/:id/import3669 returns the import status3670 returns the import status and the error if failed3671Projects::BoardsController3672 GET index3673 creates a new project board when project does not have one3674 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 renders template3681 when format is JSON3682 returns a list of project boards3683 with unauthorized user3684 returns a not found 404 response3685 issues are disabled3686 returns a not found 404 response3687 behaves like unauthorized when external service denies access3688 allows access when the authorization service allows it3689 allows access when the authorization service denies it3690 GET show3691 sets boards_endpoint instance variable to a boards path3692 when format is HTML3693 renders template3694 with unauthorized user3695 returns a not found 404 response3696 when user is signed out3697 does not save visit3698 when format is JSON3699 returns project board3700 with unauthorized user3701 returns a not found 404 response3702 when board does not belong to project3703 returns a not found 404 response3704Admin::ApplicationSettingsController3705 GET #usage_data with no access3706 returns 4043707 GET #usage_data3708unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.3709unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.3710unknown OID 194: failed to recognize type of 'relpartbound'. It will be treated as String.3711 returns HTML data3712 returns JSON data3713 PUT #update3714 updates the password_authentication_enabled_for_git setting3715 updates the default_project_visibility for string value3716 update the restricted levels for string values3717 updates the restricted_visibility_levels when empty array is passed3718 updates the receive_max_input_size setting3719 updates the default_project_creation for string value3720 external policy classification settings3721 updates settings when the feature is available3722 verify panel actions3723 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 behaves like renders correct panels3730 renders correct action on error3731 redirects to same panel on success3732 behaves like renders correct panels3733 renders correct action on error3734 redirects to same panel on success3735 behaves like renders correct panels3736 renders correct action on error3737 redirects to same panel on success3738 behaves like renders correct panels3739 renders correct action on error3740 redirects to same panel on success3741 behaves like renders correct panels3742 renders correct action on error3743 redirects to same panel on success3744 behaves like renders correct panels3745 renders correct action on error3746 redirects to same panel on success3747 PUT #reset_registration_token3748 resets runner registration token3749 redirects the user to admin runners page3750 GET #lets_encrypt_terms_of_service3751 redirects the user to the terms of service page3752Projects::DeployKeysController3753 GET index3754 when html requested3755 redirects to project settings with the correct anchor3756 when json requested3757 returns json in a correct format3758 POST create3759 creates a new deploy key for the project3760 redirects to project settings with the correct anchor3761 when the deploy key is invalid3762 shows an alert with the validations errors3763 /enable/:id3764 with anonymous user3765 redirects to login3766 with user with no permission3767 returns 4043768 with user with permission3769 returns 3023770 returns 4043771 with admin3772 returns 3023773 /disable/:id3774 with anonymous user3775 redirects to login3776 with user with no permission3777 returns 4043778 with user with permission3779 returns 3023780 returns 4043781 with admin3782 returns 3023783task completion status response3784 task list completion status for issues3785 behaves like taskable completion status provider3786 with a description of ""3787 should respond with numeric status code 2003788 returns the expected results3789 with a description of "Lorem ipsum"3790 should respond with numeric status code 2003791 returns the expected results3792 with a description of "- [ ] task 1\n - [x] task 2 "3793 should respond with numeric status code 2003794 returns the expected results3795 with a description of "- [ ] task 1\n - [ ] task 2 "3796 should respond with numeric status code 2003797 returns the expected results3798 with a description of "- [x] task 1\n - [x] task 2 "3799 should respond with numeric status code 2003800 returns the expected results3801 with a description of "- [ ] task 1"3802 should respond with numeric status code 2003803 returns the expected results3804 with a description of "- [x] task 1"3805 should respond with numeric status code 2003806 returns the expected results3807 task list completion status for merge_requests3808 behaves like taskable completion status provider3809 with a description of ""3810 should respond with numeric status code 2003811 returns the expected results3812 with a description of "Lorem ipsum"3813 should respond with numeric status code 2003814 returns the expected results3815 with a description of "- [ ] task 1\n - [x] task 2 "3816 should respond with numeric status code 2003817 returns the expected results3818 with a description of "- [ ] task 1\n - [ ] task 2 "3819 should respond with numeric status code 2003820 returns the expected results3821 with a description of "- [x] task 1\n - [x] task 2 "3822 should respond with numeric status code 2003823 returns the expected results3824 with a description of "- [ ] task 1"3825 should respond with numeric status code 2003826 returns the expected results3827 with a description of "- [x] task 1"3828 should respond with numeric status code 2003829 returns the expected results3830Projects::BadgesController3831 #pipeline3832 behaves like a badge resource3833 when pipelines are public3834 when project is public3835 returns the pipeline badge to unauthenticated users3836 when project is restricted3837 returns the pipeline badge to guest users3838 format3839 renders the `flat` badge layout by default3840 when style param is set to `flat`3841 renders the `flat` badge layout3842 when style param is set to an invalid type3843 renders the `flat` (default) badge layout3844 when style param is set to `flat-square`3845 renders the `flat-square` badge layout3846 when pipelines are not public3847 when project is public3848 returns 404 to unauthenticated users3849 when project is restricted to the user3850 defaults to project permissions3851 #coverage3852 behaves like a badge resource3853 when pipelines are public3854 when project is public3855 returns the coverage badge to unauthenticated users3856 when project is restricted3857 returns the coverage badge to guest users3858 format3859 renders the `flat` badge layout by default3860 when style param is set to `flat`3861 renders the `flat` badge layout3862 when style param is set to an invalid type3863 renders the `flat` (default) badge layout3864 when style param is set to `flat-square`3865 renders the `flat-square` badge layout3866 when pipelines are not public3867 when project is public3868 returns 404 to unauthenticated users3869 when project is restricted to the user3870 defaults to project permissions3871Projects::Registry::RepositoriesController3872 when user has access to registry3873 GET index3874 when root container repository exists3875 does not create root container repository3876 when root container repository is not created3877 when there are tags for this repository3878 successfully renders container repositories3879 tracks the event3880 creates a root container repository3881 json has a list of projects3882 when there are no tags for this repository3883 successfully renders container repositories3884 does not ensure root container repository3885 responds with json if asked3886 DELETE destroy3887 when root container repository exists3888 schedules a job to delete a repository3889 tracks the event3890 when user does not have access to registry3891 GET index3892 responds with 4043893 does not ensure root container repository3894Projects::RepositoriesController3895 GET archive3896 as a guest3897 responds with redirect in correct format3898 as a user3899 uses Gitlab::Workhorse3900 responds with redirect to the short name archive if fully qualified3901 handles legacy queries with no ref3902 handles legacy queries with the ref specified as ref in params3903 handles legacy queries with the ref specified as id in params3904 prioritizes the id param over the ref param when both are specified3905 when the service raises an error3906 renders Not Found3907 caching3908 sets appropriate caching headers3909 when project is public3910 sets appropriate caching headers3911 when ref is a commit SHA3912 max-age is set to 3600 in Cache-Control header3913 when If-None-Modified header is set3914 returns a 304 status3915 as a sessionless user3916 when no token is provided3917 redirects to sign in page3918 when a token param is present3919 when token is correct3920 calls the action normally3921 when token is incorrect3922 redirects to sign in page3923 when a token header is present3924 when token is correct3925 calls the action normally3926 when token is incorrect3927 redirects to sign in page3928Adding an AwardEmoji3929 when the user does not have permission3930 behaves like a mutation that does not create an AwardEmoji3931 should not change `AwardEmoji.count`3932 behaves like a mutation that returns top-level errors3933 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]3934 when the user has permission3935 when the given awardable is not an Awardable3936 behaves like a mutation that does not create an AwardEmoji3937 should not change `AwardEmoji.count`3938 behaves like a mutation that returns top-level errors3939 should eq ["Cannot award emoji to this resource"]3940 when the given awardable is an Awardable but still cannot be awarded an emoji3941 behaves like a mutation that does not create an AwardEmoji3942 should not change `AwardEmoji.count`3943 behaves like a mutation that returns top-level errors3944 should eq ["Cannot award emoji to this resource"]3945 when the given awardable an Awardable3946 creates an emoji3947 returns the emoji3948 marking Todos as done3949 type: :issue, expectation: true3950 should eq true3951 type: :merge_request, expectation: true3952 should eq true3953 type: :project_snippet, expectation: false3954 should eq false3955 for notes3956 regular Notes3957 marks the Todo as done3958 PersonalSnippet Notes3959 does not mark the Todo as done3960 when there were active record validation errors3961 returns an empty awardEmoji3962 behaves like a mutation that does not create an AwardEmoji3963 should not change `AwardEmoji.count`3964 behaves like a mutation that returns errors in the response3965 should eq ["Error 1", "Error 2"]3966Groups::UploadsController3967 behaves like handle uploads3968 behaves like handle uploads authorize3969 POST #authorize3970 when a user is not authorized to upload a file3971 returns 404 status3972 when a user can upload a file3973 and the request bypassed workhorse3974 raises an exception3975 and request is sent by gitlab-workhorse to authorize the request3976 when using local storage3977 behaves like a local file3978 behaves like a valid response3979 responds with status 2003980 uses the gitlab-workhorse content type3981 responds with status 200, location of uploads store and object details3982 when using remote storage3983 when direct upload is enabled3984 behaves like a valid response3985 responds with status 2003986 uses the gitlab-workhorse content type3987 responds with status 200, location of uploads remote store and object details3988 when direct upload is disabled3989 behaves like a local file3990 behaves like a valid response3991 responds with status 2003992 uses the gitlab-workhorse content type3993 responds with status 200, location of uploads store and object details3994 POST #create3995 when a user is not authorized to upload a file3996 returns 404 status3997 when a user can upload a file3998 without params['file']3999 returns an error4000 with valid image4001 returns a content with original filename, new link, and correct type.4002 creates a corresponding Upload record4003 with valid non-image file4004 returns a content with original filename, new link, and correct type.4005 GET #show4006 when accessing a specific upload via different model4007 responds with status 4044008 when the model is public4009 when not signed in4010 when the file exists4011 responds with status 2004012 when neither the uploader nor the model exists4013 responds with status 4044014 when the file doesn't exist4015 responds with status 4044016 when signed in4017 when the file exists4018 responds with status 2004019 when the file doesn't exist4020 responds with status 4044021 when the model is private4022 when not signed in4023 when the file exists4024 when the file is an image4025 responds with status 2004026 when the file is not an image4027 redirects to the sign in page4028 when the file doesn't exist4029 redirects to the sign in page4030 when signed in4031 when the user has access to the project4032 when the file exists4033 responds with status 2004034 when the file doesn't exist4035 responds with status 4044036 when the user doesn't have access to the model4037 when the file exists4038 when the file is an image4039 responds with status 2004040 when the file is not an image4041 responds with status 4044042 when the file doesn't exist4043 responds with status 4044044Updating a Note4045 when the user does not have permission4046 does not update the Note4047 behaves like a mutation that returns top-level errors4048 should eq ["The resource that you are attempting to access does not exist or you don't have permission to perform this action"]4049 when the user has permission4050 updates the Note4051 returns the updated Note4052 behaves like a Note mutation when the given resource id is not for a Note4053 behaves like a mutation that returns top-level errors4054 should eq ["Resource is not a note"]4055 when there are ActiveRecord validation errors4056 does not update the Note4057 returns the Note with its original body4058 behaves like a mutation that returns errors in the response4059 should eq ["Note can't be blank"]4060Projects::Settings::CiCdController4061 GET show4062 renders show with 200 status code4063 with group runners4064 sets assignable project runners only4065 #reset_cache4066 calls reset project cache service4067 when service returns successfully4068 returns a success header4069 when service does not return successfully4070 returns an error header4071 PUT #reset_registration_token4072 resets runner registration token4073 redirects the user to admin runners page4074 PATCH update4075 redirects to the settings page4076 when updating the auto_devops settings4077 following the instance default4078 allows enabled to be set to nil4079 when run_auto_devops_pipeline is true4080 when the project repository is empty4081 sets a warning flash4082 does not queue a CreatePipelineWorker4083 when the project repository is not empty4084 sets a success flash4085 queues a CreatePipelineWorker4086 when run_auto_devops_pipeline is not true4087 does not queue a CreatePipelineWorker4088 when updating general settings4089 when build_timeout_human_readable is not specified4090 set default timeout4091 when build_timeout_human_readable is specified4092 set specified timeout4093 when build_timeout_human_readable is invalid4094 set specified timeout4095 when default_git_depth is not specified4096 set specified git depth4097 when max_artifacts_size is specified4098 and user is not an admin4099 does not set max_artifacts_size4100 and user is an admin4101 sets max_artifacts_size4102Projects::Ci::LintsController4103 GET #show4104 with enough privileges4105 should be successful4106 renders show page4107 retrieves project4108 without enough privileges4109 responds with 4044110 POST #create4111 with a valid gitlab-ci.yml4112 should be successful4113 render show page4114 retrieves project4115 with an invalid gitlab-ci.yml4116 assigns errors4117 without enough privileges4118 responds with 4044119GitlabSchema configurations4120 regular queries4121 behaves like imposing query limits4122 #max_complexity4123 when complexity is too high4124 shows an error4125 #max_depth4126 when query depth is too high4127 shows error4128 when query depth is within range4129 has no error4130 multiplexed queries4131 does not authenticate all queries4132 behaves like imposing query limits4133 fails all queries when only one of the queries is too complex4134 #max_complexity4135 when complexity is too high4136 shows an error4137 #max_depth4138 when query depth is too high4139 shows error4140 when query depth is within range4141 has no error4142 authentication4143 authenticates all queries4144 when IntrospectionQuery4145 is not too complex4146 logging4147 logs the query complexity and depth4148 logs using `format_message`4149 global id's4150 uses GlobalID to expose ids4151Groups::RunnersController4152 #show4153 when user is owner4154 renders show with 200 status code4155 when user is not owner4156 renders a 4044157 #edit4158 when user is owner4159 renders show with 200 status code4160 when user is not owner4161 renders a 4044162 #update4163 when user is an owner4164 updates the runner, ticks the queue, and redirects4165 when user is not an owner4166 rejects the update and responds 4044167 #destroy4168 when user is an owner4169 destroys the runner and redirects4170 when user is not an owner4171 responds 404 and does not destroy the runner4172 #resume4173 when user is an owner4174 marks the runner as active, ticks the queue, and redirects4175 when user is not an owner4176 responds 404 and does not activate the runner4177 #pause4178 when user is an owner4179 marks the runner as inactive, ticks the queue, and redirects4180 when user is not an owner4181 responds 404 and does not update the runner or queue4182Projects::Tags::ReleasesController4183 GET #edit4184 initializes a new release4185 retrieves an existing release4186 PUT #update4187 updates release note description4188 creates a release if one does not exist4189 sets the release name, sha, and author for a new release4190 deletes release when description is empty4191 does nothing when description is empty and the tag does not have a release4192API::Suggestions4193 PUT /suggestions/:id/apply4194 when successfully applies patch4195 returns 200 with json content4196 when not able to apply patch4197 returns 400 with json content4198 when unauthorized4199 returns 403 with json content4200Groups::Settings::CiCdController4201 GET #show4202 when user is owner4203 renders show with 200 status code4204 when user is not owner4205 renders a 4044206 external authorization4207 renders show with 200 status code4208 PUT #reset_registration_token4209 when user is owner4210 resets runner registration token4211 redirects the user to admin runners page4212 when user is not owner4213 renders a 4044214 PATCH #update_auto_devops4215 when user does not have enough permission4216 should respond with numeric status code 4044217 when user has enough privileges4218 should redirect to "/groups/group392/-/settings/ci_cd"4219 when service execution went wrong4220 returns a flash alert4221 when service execution was successful4222 returns a flash notice4223 when changing auto devops value4224 when explicitly enabling auto devops4225 updates group attribute4226 when explicitly disabling auto devops4227 updates group attribute4228 PATCH #update4229 when user is not an admin4230 should respond with numeric status code 4044231 when user is an admin4232 should redirect to "/groups/group398/-/settings/ci_cd"4233 when service execution went wrong4234 returns a flash alert4235 when service execution was successful4236 returns a flash notice4237RegistrationsController4238 #create4239 logs a 'User Created' message4240 handles when params are new_user4241 email confirmation4242 when send_user_confirmation_email is false4243 signs the user in4244 when send_user_confirmation_email is true4245 when soft email confirmation is not enabled4246 does not authenticate the user and sends a confirmation email4247 when soft email confirmation is enabled4248 authenticates the user and sends a confirmation email4249 when signup_enabled? is false4250 redirects to sign_in4251 when reCAPTCHA is enabled4252 displays an error when the reCAPTCHA is not solved4253 redirects to the dashboard when the recaptcha is solved4254 does not require reCAPTCHA if disabled by feature flag4255 when invisible captcha is enabled4256 the honeypot has not been filled and the signup form has not been submitted too quickly4257 creates an account4258 honeypot spam detection4259 logs the request, refuses to create an account and renders an empty body4260 timestamp spam detection4261 the sign up form has been submitted without the invisible_captcha_timestamp parameter4262 logs the request, refuses to create an account and displays a flash alert4263 the sign up form has been submitted too quickly4264 logs the request, refuses to create an account and displays a flash alert4265 when terms are enforced4266 redirects back with a notice when the checkbox was not checked4267 creates the user with agreement when terms are accepted4268 #destroy4269 user requires password confirmation4270 fails if password confirmation is not provided4271 fails if password confirmation is wrong4272 succeeds if password is confirmed4273 user does not require password confirmation4274 fails if username confirmation is not provided4275 fails if username confirmation is wrong4276 succeeds if username is confirmed4277API::Settings Settings4278 GET /application/settings4279 returns application settings4280 PUT /application/settings4281 supports legacy performance_bar_allowed_group_id4282 supports legacy performance_bar_enabled4283 supports legacy allow_local_requests_from_hooks_and_services4284 custom repository storage type set in the config4285 updates application settings4286 external policy classification settings4287 includes the attributes in the API4288 allows updating the settings4289 snowplow tracking settings4290 includes the attributes in the API4291 allows updating the settings4292 missing snowplow_collector_hostname value when snowplow_enabled is true4293 returns a blank parameter error message4294 handles validation errors4295 missing plantuml_url value when plantuml_enabled is true4296 returns a blank parameter error message4297 asset_proxy settings4298 updates application settings4299 allows a string for asset_proxy_whitelist4300 domain_blacklist settings4301 rejects domain_blacklist_enabled when domain_blacklist is empty4302 allows array for domain_blacklist4303 allows a string for domain_blacklist4304Boards::ListsController4305 #index4306 does not have N+1 queries4307Projects::StagesController4308 POST #play_manual.json4309 when user does not have access4310 returns not authorized4311 when user has access4312 when the stage does not exists4313 fails to play all manual4314 when the stage exists4315 starts all manual jobs4316Projects::GraphsController4317 GET languages4318 redirects_to action charts4319 GET commits4320 redirects_to action charts4321 charts4322 with an anonymous user4323 renders charts with 200 status code4324 when languages were previously detected4325 sets the languages properly4326EnforcesAdminAuthentication4327 feature flag :user_mode_in_session is enabled4328 authenticate_admin!4329 as an admin4330 renders redirect for re-authentication and does not set admin mode4331 when admin mode is active4332 renders ok4333 as a user4334 renders a 4044335 does not set admin mode4336 feature flag :user_mode_in_session is disabled4337 authenticate_admin!4338 as an admin4339 allows direct access to page4340 does not set admin mode4341 as a user4342 renders a 4044343 does not set admin mode4344API::SystemHooks4345 GET /hooks4346 when no user4347 returns authentication error4348 when not an admin4349 returns forbidden error4350 when authenticated as admin4351 returns an array of hooks4352 POST /hooks4353 creates new hook4354 responds with 400 if url not given4355 responds with 400 if url is invalid4356 does not create new hook without url4357 sets default values for events4358 sets explicit values for events4359 GET /hooks/:id4360 returns hook by id4361 returns 404 on failure4362 DELETE /hooks/:id4363 deletes a hook4364 returns 404 if the system hook does not exist4365 behaves like 412 response4366 for a modified ressource4367 returns 4124368 for an unmodified ressource4369 returns accepted4370Groups::SharedProjectsController4371 GET #index4372 returns only projects shared with the group4373 allows filtering shared projects4374 allows sorting projects4375 does not include archived projects4376API::Features4377 GET /features4378 returns a 401 for anonymous users4379 returns a 403 for users4380 returns the feature list for admins4381 POST /feature4382 when the feature does not exist4383 returns a 401 for anonymous users4384 returns a 403 for users4385 creates a feature with the given percentage if passed an integer4386 when passed value=true4387 creates an enabled feature4388 creates an enabled feature for the given Flipper group when passed feature_group=perf_team4389 creates an enabled feature for the given user when passed user=username4390 creates an enabled feature for the given user and feature group when passed user=username and feature_group=perf_team4391 when enabling for a project by path4392 when the project exists4393 sets the feature gate4394 when the project does not exist4395 sets no new values4396 when enabling for a group by path4397 when the group exists4398 sets the feature gate4399 when the group does not exist4400 sets no new values and keeps the feature disabled4401 when the feature exists4402 when passed value=true4403 enables the feature4404 enables the feature for the given Flipper group when passed feature_group=perf_team4405 enables the feature for the given user when passed user=username4406 when feature is enabled and value=false is passed4407 disables the feature4408 disables the feature for the given Flipper group when passed feature_group=perf_team4409 disables the feature for the given user when passed user=username4410 with a pre-existing percentage value4411 updates the percentage of time if passed an integer4412 DELETE /feature/:name4413 when the user has no access4414 returns a 401 for anonymous users4415 returns a 403 for users4416 when the user has access4417 returns 204 when the value is not set4418 when the gate value was set4419 deletes an enabled feature4420Projects::Settings::RepositoryController4421 GET show4422 renders show with 200 status code4423 PUT cleanup4424 enqueues a RepositoryCleanupWorker4425 POST create_deploy_token4426 creates deploy token4427Projects::Environments::PrometheusApiController4428 GET #proxy4429 with valid requests4430 with success result4431 returns prometheus response4432 with format string4433 replaces variables with values4434 with nil query4435 does not raise error4436 with nil result4437 returns 204 no_content4438 with 404 result4439 returns body4440 with error result4441 with http_status4442 sets the http response status code4443 without http_status4444 returns bad_request4445 with inappropriate requests4446 with anonymous user4447 redirects to signin page4448 without correct permissions4449 returns 4044450 with invalid environment id4451 returns 4044452API::Markdown4453 POST /markdown4454 when arguments are invalid4455 when text is missing4456 responses with 400 Bad Request4457 when project is not found4458 behaves like 404 Project Not Found4459 responses with 404 Not Found4460 when arguments are valid4461 when not using gfm4462 without project4463 behaves like rendered markdown text without GFM4464 renders markdown text4465 with project4466 when not authorized4467 behaves like 404 Project Not Found4468 responses with 404 Not Found4469 when authorized4470 behaves like rendered markdown text without GFM4471 renders markdown text4472 when using gfm4473 without project4474 renders markdown text4475 with project4476 renders markdown text4477 with a public project and confidential issue4478 when not logged in4479 behaves like user without proper access4480 does not render the title or link4481 when logged in as user without access4482 behaves like user without proper access4483 does not render the title or link4484 when logged in as author4485 renders the title or link4486rendering namespace statistics4487 behaves like a working namespace with storage statistics query4488 includes the packages size if the user can read the statistics4489 behaves like a working graphql query4490 returns a successful response4491 when the namespace is a group4492 behaves like a working namespace with storage statistics query4493 includes the packages size if the user can read the statistics4494 behaves like a working graphql query4495 returns a successful response4496 when the namespace is public4497 hides statistics for unauthenticated requests4498InvitesController4499 GET #accept4500 accepts user4501 GET #decline4502 declines user4503getting task completion status information4504 with description - [ ] task 1\n- [ ] task 24505 when type is issue4506 behaves like graphql task completion status provider4507 returns the expected task completion status4508 when type is merge request4509 behaves like graphql task completion status provider4510 returns the expected task completion status4511 with description - [x] task 1\n- [ ] task 24512 when type is issue4513 behaves like graphql task completion status provider4514 returns the expected task completion status4515 when type is merge request4516 behaves like graphql task completion status provider4517 returns the expected task completion status4518 with description - [x] task 1\n- [x] task 24519 when type is issue4520 behaves like graphql task completion status provider4521 returns the expected task completion status4522 when type is merge request4523 behaves like graphql task completion status provider4524 returns the expected task completion status4525Profiles::NotificationsController4526 GET show4527 renders4528 POST update4529 updates only permitted attributes4530 shows an error message if the params are invalid4531Import::PhabricatorController4532 GET #new4533 when the import source is not available4534 should respond with numeric status code 4044535 when the feature is disabled4536 should respond with numeric status code 4044537 when the import is available4538 should respond with numeric status code 2004539 POST #create4540 with valid params4541 creates a project to import4542 when an import param is missing4543 does not create the project4544 when a project param is missing4545 does not create the project4546MetricsDashboard4547 GET #metrics_dashboard4548 when no parameters are provided4549 returns an error json_response4550 when params are provided4551 returns the specified dashboard4552 when parameters are provided and the list of all dashboards is required4553 returns a dashboard in addition to the list of dashboards4554Oauth::ApplicationsController4555 project members4556 GET #index4557 shows list of applications4558 redirects back to profile page if OAuth applications are disabled4559 POST #create4560 creates an application4561 redirects back to profile page if OAuth applications are disabled4562 redirect_uri4563 shows an error for a forbidden URI4564Import::GoogleCodeController4565 POST callback4566 stores Google Takeout dump list in session4567 GET status4568 assigns variables4569 does not show already added project4570 does not show any invalid projects4571API::Avatar4572 GET /avatar4573 avatar uploaded to GitLab4574 user with matching public email address4575 returns the avatar url4576 no user with matching public email address4577 returns the avatar url from Gravatar4578 avatar uploaded to Gravatar4579 user with matching public email address4580 returns the avatar url from Gravatar4581 no user with matching public email address4582 returns the avatar url from Gravatar4583 public visibility level restricted4584 when authenticated4585 returns the avatar url4586 when unauthenticated4587 behaves like 403 response4588 returns 4034589ContinueParams4590 returns an empty hash if params are not present4591 cleans up any params that are not allowed4592 does not allow cross host redirection4593 allows redirecting to a path with querystring4594InstanceStatistics::CohortsController4595 renders a 404 when the usage ping is disabled4596 behaves like instance statistics availability4597 GET #index4598DEPRECATION 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)4599 is available when the feature is available publicly4600 renders a 404 when the feature is not available publicly4601 for admins4602DEPRECATION 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)4603 allows access when the feature is not available publicly4604Groups::AvatarsController4605 removes avatar from DB calling destroy4606 works when external authorization service is enabled4607GoogleApi::AuthorizationsController4608 GET|POST #callback4609 session key is present4610 session key matches state param4611 sets token and expires_at in session4612 redirects to the URL stored in state param4613 session key does not match state param4614 behaves like access denied4615 returns a 4044616 state param is blank4617 behaves like access denied4618 returns a 4044619 state param is present, but session key is blank4620 behaves like access denied4621 returns a 4044622Dashboard::SnippetsController4623 GET #index4624 behaves like paginated collection4625 renders a page number that is not ouf of range4626 redirects to last_page if page number is larger than number of pages4627 does not redirect to external sites when provided a host field4628BoardsResponses4629 #serialize_as_json4630 serializes properly4631SendFileUpload4632 #send_upload4633 when local file is used4634 sends a file4635 with inline image4636 sends a file with inline disposition4637 with attachment4638 sends a file with content-type of text/plain4639 with non-ASCII encoded filename4640 sends content-disposition for non-ASCII encoded filenames4641 with a proxied file in object storage4642 sends a file with a custom type4643 when remote file is used4644 and proxying is enabled4645 behaves like proxied file4646 sends a file4647 and proxying is disabled4648 sends a file4649 with proxy requested4650 behaves like proxied file4651 sends a file4652Projects::PipelinesSettingsController4653 GET show4654 redirects with 302 status code4655Admin::HooksController4656 POST #create4657 sets all parameters4658IssuableActions4659 #discussions4660 instantiates and calls NotesFinder as expected4661Knapsack report was generated. Preview:4662{4663 "spec/requests/api/projects_spec.rb": 181.13246154785156,4664 "spec/requests/api/issues/get_group_issues_spec.rb": 72.38780188560486,4665 "spec/requests/api/todos_spec.rb": 46.178181886672974,4666 "spec/requests/api/issues/issues_spec.rb": 51.731844902038574,4667 "spec/requests/api/releases_spec.rb": 48.51014494895935,4668 "spec/requests/api/wikis_spec.rb": 42.20028042793274,4669 "spec/requests/api/issues/post_projects_issues_spec.rb": 34.8529589176178,4670 "spec/controllers/projects/clusters_controller_spec.rb": 26.691636562347412,4671 "spec/requests/api/group_clusters_spec.rb": 21.01365041732788,4672 "spec/controllers/groups/milestones_controller_spec.rb": 21.63960576057434,4673 "spec/controllers/projects/blob_controller_spec.rb": 14.729978561401367,4674 "spec/requests/api/group_milestones_spec.rb": 18.424147367477417,4675 "spec/controllers/projects/discussions_controller_spec.rb": 12.584405422210693,4676 "spec/controllers/projects/compare_controller_spec.rb": 11.814753532409668,4677 "spec/requests/request_profiler_spec.rb": 13.864403247833252,4678 "spec/requests/api/pages/public_access_spec.rb": 14.75031065940857,4679 "spec/requests/rack_attack_global_spec.rb": 13.399925231933594,4680 "spec/requests/api/deploy_keys_spec.rb": 10.462388038635254,4681 "spec/controllers/dashboard/todos_controller_spec.rb": 8.611192464828491,4682 "spec/controllers/projects/artifacts_controller_spec.rb": 8.491290807723999,4683 "spec/requests/api/protected_tags_spec.rb": 7.317080974578857,4684 "spec/controllers/search_controller_spec.rb": 6.654933214187622,4685 "spec/requests/api/project_import_spec.rb": 7.555652856826782,4686 "spec/controllers/projects/boards_controller_spec.rb": 6.554649829864502,4687 "spec/controllers/admin/application_settings_controller_spec.rb": 10.377158164978027,4688 "spec/controllers/projects/deploy_keys_controller_spec.rb": 7.797197341918945,4689 "spec/requests/api/task_completion_status_spec.rb": 5.904526472091675,4690 "spec/controllers/projects/badges_controller_spec.rb": 5.675345182418823,4691 "spec/controllers/projects/registry/repositories_controller_spec.rb": 4.47347617149353,4692 "spec/controllers/projects/repositories_controller_spec.rb": 6.194974899291992,4693 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 4.20277214050293,4694 "spec/controllers/groups/uploads_controller_spec.rb": 4.30758261680603,4695 "spec/requests/api/graphql/mutations/notes/update_spec.rb": 3.676168918609619,4696 "spec/controllers/projects/settings/ci_cd_controller_spec.rb": 5.393605709075928,4697 "spec/controllers/projects/ci/lints_controller_spec.rb": 4.304783344268799,4698 "spec/requests/api/graphql/gitlab_schema_spec.rb": 3.641996383666992,4699 "spec/controllers/groups/runners_controller_spec.rb": 3.0990006923675537,4700 "spec/controllers/projects/tags/releases_controller_spec.rb": 3.2844130992889404,4701 "spec/requests/api/suggestions_spec.rb": 2.480895519256592,4702 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 3.8395025730133057,4703 "spec/controllers/registrations_controller_spec.rb": 2.8908262252807617,4704 "spec/requests/api/settings_spec.rb": 2.4564075469970703,4705 "spec/requests/boards/lists_controller_spec.rb": 1.6184968948364258,4706 "spec/controllers/projects/stages_controller_spec.rb": 1.9937896728515625,4707 "spec/controllers/projects/graphs_controller_spec.rb": 1.4650986194610596,4708 "spec/controllers/concerns/enforces_admin_authentication_spec.rb": 1.3271636962890625,4709 "spec/requests/api/system_hooks_spec.rb": 1.9602525234222412,4710 "spec/controllers/groups/shared_projects_controller_spec.rb": 0.958820104598999,4711 "spec/requests/api/features_spec.rb": 1.8065247535705566,4712 "spec/controllers/projects/settings/repository_controller_spec.rb": 1.1522157192230225,4713 "spec/controllers/projects/environments/prometheus_api_controller_spec.rb": 1.74918532371521,4714 "spec/requests/api/markdown_spec.rb": 1.583613395690918,4715 "spec/requests/api/graphql/namespace/root_storage_statistics_spec.rb": 1.1958861351013184,4716 "spec/controllers/invites_controller_spec.rb": 0.943373441696167,4717 "spec/requests/api/graphql/tasks/task_completion_status_spec.rb": 1.285097360610962,4718 "spec/controllers/profiles/notifications_controller_spec.rb": 0.9402215480804443,4719 "spec/controllers/import/phabricator_controller_spec.rb": 0.9098551273345947,4720 "spec/controllers/concerns/metrics_dashboard_spec.rb": 0.7631855010986328,4721 "spec/controllers/oauth/applications_controller_spec.rb": 0.5874316692352295,4722 "spec/controllers/import/google_code_controller_spec.rb": 1.0267531871795654,4723 "spec/requests/api/avatar_spec.rb": 0.44124531745910645,4724 "spec/controllers/concerns/continue_params_spec.rb": 0.47369956970214844,4725 "spec/controllers/instance_statistics/cohorts_controller_spec.rb": 0.5383749008178711,4726 "spec/controllers/groups/avatars_controller_spec.rb": 0.5193819999694824,4727 "spec/controllers/google_api/authorizations_controller_spec.rb": 0.4209935665130615,4728 "spec/controllers/dashboard/snippets_controller_spec.rb": 0.3898279666900635,4729 "spec/controllers/concerns/boards_responses_spec.rb": 0.5228686332702637,4730 "spec/controllers/concerns/send_file_upload_spec.rb": 0.16390109062194824,4731 "spec/controllers/projects/pipelines_settings_controller_spec.rb": 0.14102387428283691,4732 "spec/controllers/admin/hooks_controller_spec.rb": 0.10017251968383789,4733 "spec/controllers/concerns/issuable_actions_spec.rb": 0.00691199302673339844734}4735Knapsack global time execution for tests: 13m 32s4736Finished in 14 minutes 23 seconds (files took 46.41 seconds to load)47371683 examples, 0 failures4738Tue Oct 15 08:55:53 UTC 20194740$ date4741Tue Oct 15 08:55:58 UTC 20194744coverage/: found 5 matching files 4745knapsack/: found 6 matching files 4746rspec_flaky/: found 4 matching files 4747rspec_profiling/: found 1 matching files 4748WARNING: tmp/capybara/: no matching files 4749tmp/memory_test/: found 2 matching files 4750Uploading artifacts to coordinator... ok id=321109536 responseStatus=201 Created token=urm313gC4751Uploading artifacts...4752junit_rspec.xml: found 1 matching files 4753Uploading artifacts to coordinator... ok id=321109536 responseStatus=201 Created token=urm313gC4754Job succeeded