rspec integration pg 6/6
Passed Started
by
@digitalmoksha

Brett Walker
1Running with gitlab-runner 11.10.1 (1f513601)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.21-chrome-73.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29 ...
00:10
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:8d9572468d971c3b761ae8e59328a9e7cafd26affba2f2ef4646cd3bdf97b37d for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:72e76053ebb73c258af5020c9ef27ba9302a6ee182f2c9c51b43c1689f1983c9 for redis:alpine ...10Waiting for services to be up and running...11Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.21-chrome-73.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29 ...12Using docker image sha256:fc2dea53256bab2516413830e18bf6337961d6974aa691fa680ef0e5c8f9a357 for dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.21-chrome-73.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29 ... 13 Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1559007124-592db367...
00:02
15Fetching changes with git depth set to 20...17 * [new branch] 10795-add-epic-tree-BE-initial-support -> origin/10795-add-epic-tree-BE-initial-support18Checking out ff819657 as 10795-add-epic-tree-BE-initial-support...19Removing .gitlab_shell_secret20Removing .gitlab_workhorse_secret21Removing config/database.yml22Removing config/database_geo.yml23Removing config/gitlab.yml24Removing config/redis.cache.yml25Removing config/redis.queues.yml26Removing config/redis.shared_state.yml27Removing config/resque.yml28Removing config/secrets.yml29Removing coverage/30Removing junit_rspec.xml31Removing knapsack/32Removing log/api_json.log33Removing log/application.log34Removing log/audit_json.log35Removing log/external-policy-access-control.log36Removing log/gitaly-test.log37Removing log/grpc.log38Removing log/importer.log39Removing log/integrations_json.log40Removing log/test_json.log41Removing node_modules/42Removing public/assets/43Removing public/uploads/44Removing rspec_flaky/45Removing rspec_profiling/46Removing shared/tmp/47Removing tmp/cache/48Removing tmp/prometheus_multiproc_dir/counter_process_id_82-0.db49Removing tmp/prometheus_multiproc_dir/histogram_process_id_82-0.db50Removing tmp/tests/51Removing vendor/gitaly-ruby/52Removing vendor/ruby/53Skipping Git submodules setup55Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.3-node-10.x-2 56Successfully extracted cache58Downloading artifacts from coordinator... ok id=221133530 responseStatus=200 OK token=FNJXG-gC59Downloading artifacts for setup-test-env (221133531)...60Downloading artifacts from coordinator... ok id=221133531 responseStatus=200 OK token=YryQtnyC61WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 62Downloading artifacts for retrieve-tests-metadata (221133532)...63Downloading artifacts from coordinator... ok id=221133532 responseStatus=200 OK token=ZR8EEjyS65Wed May 29 01:26:10 UTC 201966$ source scripts/utils.sh67$ source scripts/prepare_build.sh68Bundler version 1.17.269Warning: 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`.70The Gemfile's dependencies are satisfied71Successfully installed knapsack-1.17.1721 gem installed73CREATE ROLE74GRANT75Dropped database 'gitlabhq_test'76Created database 'gitlabhq_test'77-- enable_extension("plpgsql")78 -> 0.0213s79-- enable_extension("pg_trgm")80 -> 0.0188s81-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})82 -> 0.0047s83-- create_table("appearances", {:id=>:serial, :force=>:cascade})84 -> 0.0040s85-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})86 -> 0.0028s87-- create_table("application_settings", {:id=>:serial, :force=>:cascade})88 -> 0.1458s89-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})90 -> 0.0086s91-- create_table("approval_merge_request_rules", {:force=>:cascade})92 -> 0.0102s93-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})94 -> 0.0072s95-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})96 -> 0.0074s97-- create_table("approval_merge_request_rules_users", {:force=>:cascade})98 -> 0.0070s99-- create_table("approval_project_rules", {:force=>:cascade})100 -> 0.0068s101-- create_table("approval_project_rules_groups", {:force=>:cascade})102 -> 0.0073s103-- create_table("approval_project_rules_users", {:force=>:cascade})104 -> 0.0072s105-- create_table("approvals", {:id=>:serial, :force=>:cascade})106 -> 0.0070s107-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})108 -> 0.0077s109-- create_table("approvers", {:id=>:serial, :force=>:cascade})110 -> 0.0080s111-- create_table("audit_events", {:id=>:serial, :force=>:cascade})112 -> 0.0054s113-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})114 -> 0.0073s115-- create_table("badges", {:id=>:serial, :force=>:cascade})116 -> 0.0078s117-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})118 -> 0.0070s119-- create_table("board_group_recent_visits", {:force=>:cascade})120 -> 0.0116s121-- create_table("board_labels", {:id=>:serial, :force=>:cascade})122 -> 0.0072s123-- create_table("board_project_recent_visits", {:force=>:cascade})124 -> 0.0130s125-- create_table("boards", {:id=>:serial, :force=>:cascade})126 -> 0.0157s127-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})128 -> 0.0085s129-- create_table("chat_names", {:id=>:serial, :force=>:cascade})130 -> 0.0086s131-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})132 -> 0.0063s133-- create_table("ci_build_trace_chunks", {:force=>:cascade})134 -> 0.0063s135-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})136 -> 0.0062s137-- create_table("ci_build_trace_sections", {:id=>:serial, :force=>:cascade})138 -> 0.0113s139-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})140 -> 0.0580s141-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})142 -> 0.0085s143-- create_table("ci_builds_runner_session", {:force=>:cascade})144 -> 0.0073s145-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})146 -> 0.0082s147-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})148 -> 0.0134s149-- create_table("ci_pipeline_chat_data", {:force=>:cascade})150 -> 0.0087s151-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})152 -> 0.0094s153-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})154 -> 0.0121s155-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})156 -> 0.0057s157-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})158 -> 0.0319s159-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})160 -> 0.0090s161-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})162 -> 0.0069s163-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})164 -> 0.0185s165-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})166 -> 0.0150s167-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})168 -> 0.0140s169-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})170 -> 0.0081s171-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})172 -> 0.0081s173-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})174 -> 0.0077s175-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})176 -> 0.0071s177-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})178 -> 0.0066s179-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})180 -> 0.0073s181-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})182 -> 0.0062s183-- create_table("clusters", {:id=>:serial, :force=>:cascade})184 -> 0.0098s185-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})186 -> 0.0056s187-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})188 -> 0.0062s189-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})190 -> 0.0056s191-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})192 -> 0.0080s193-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})194 -> 0.0053s195-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})196 -> 0.0058s197-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})198 -> 0.0083s199-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})200 -> 0.0125s201-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})202 -> 0.0077s203-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})204 -> 0.0077s205-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})206 -> 0.0063s207-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})208 -> 0.0061s209-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})210 -> 0.0060s211-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})212 -> 0.0093s213-- create_table("deployments", {:id=>:serial, :force=>:cascade})214 -> 0.0254s215-- create_table("design_management_designs", {:force=>:cascade})216 -> 0.0090s217-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})218 -> 0.0083s219-- create_table("design_management_versions", {:force=>:cascade})220 -> 0.0059s221-- create_table("draft_notes", {:force=>:cascade})222 -> 0.0117s223-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})224 -> 0.0035s225-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})226 -> 0.0035s227-- create_table("emails", {:id=>:serial, :force=>:cascade})228 -> 0.0108s229-- create_table("environments", {:id=>:serial, :force=>:cascade})230 -> 0.0113s231-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})232 -> 0.0075s233-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})234 -> 0.0048s235-- create_table("epics", {:id=>:serial, :force=>:cascade})236 -> 0.0254s237-- create_table("events", {:id=>:serial, :force=>:cascade})238 -> 0.0151s239-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})240 -> 0.0057s241-- create_table("features", {:id=>:serial, :force=>:cascade})242 -> 0.0053s243-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})244 -> 0.0090s245-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})246 -> 0.0051s247-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})248 -> 0.0045s249-- create_table("geo_cache_invalidation_events", {:force=>:cascade})250 -> 0.0029s251-- create_table("geo_event_log", {:force=>:cascade})252 -> 0.0311s253-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})254 -> 0.0056s255-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})256 -> 0.0054s257-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})258 -> 0.0054s259-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})260 -> 0.0058s261-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})262 -> 0.0105s263-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})264 -> 0.0075s265-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})266 -> 0.0132s267-- create_table("geo_repositories_changed_events", {:force=>:cascade})268 -> 0.0050s269-- create_table("geo_repository_created_events", {:force=>:cascade})270 -> 0.0057s271-- create_table("geo_repository_deleted_events", {:force=>:cascade})272 -> 0.0072s273-- create_table("geo_repository_renamed_events", {:force=>:cascade})274 -> 0.0064s275-- create_table("geo_repository_updated_events", {:force=>:cascade})276 -> 0.0092s277-- create_table("geo_reset_checksum_events", {:force=>:cascade})278 -> 0.0049s279-- create_table("geo_upload_deleted_events", {:force=>:cascade})280 -> 0.0081s281-- create_table("gitlab_subscriptions", {:force=>:cascade})282 -> 0.0096s283-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})284 -> 0.0107s285-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})286 -> 0.0099s287-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})288 -> 0.0150s289-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})290 -> 0.0082s291-- create_table("historical_data", {:id=>:serial, :force=>:cascade})292 -> 0.0026s293-- create_table("identities", {:id=>:serial, :force=>:cascade})294 -> 0.0078s295-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})296 -> 0.0083s297-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})298 -> 0.0054s299-- create_table("insights", {:id=>:serial, :force=>:cascade})300 -> 0.0073s301-- create_table("internal_ids", {:force=>:cascade})302 -> 0.0137s303-- create_table("issue_assignees", {:id=>false, :force=>:cascade})304 -> 0.0083s305-- create_table("issue_links", {:id=>:serial, :force=>:cascade})306 -> 0.0103s307-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})308 -> 0.0059s309-- create_table("issues", {:id=>:serial, :force=>:cascade})310 -> 0.0392s311-- create_table("jira_connect_installations", {:force=>:cascade})312 -> 0.0061s313-- create_table("jira_connect_subscriptions", {:force=>:cascade})314 -> 0.0107s315-- create_table("keys", {:id=>:serial, :force=>:cascade})316 -> 0.0085s317-- create_table("label_links", {:id=>:serial, :force=>:cascade})318 -> 0.0080s319-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})320 -> 0.0092s321-- create_table("labels", {:id=>:serial, :force=>:cascade})322 -> 0.0161s323-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})324 -> 0.0029s325-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})326 -> 0.0076s327-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})328 -> 0.0077s329-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})330 -> 0.0047s331-- create_table("licenses", {:id=>:serial, :force=>:cascade})332 -> 0.0033s333-- create_table("lists", {:id=>:serial, :force=>:cascade})334 -> 0.0164s335-- create_table("members", {:id=>:serial, :force=>:cascade})336 -> 0.0167s337-- create_table("merge_request_assignees", {:force=>:cascade})338 -> 0.0091s339-- create_table("merge_request_blocks", {:force=>:cascade})340 -> 0.0076s341-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})342 -> 0.0072s343-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})344 -> 0.0049s345-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})346 -> 0.0088s347-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})348 -> 0.0182s349-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})350 -> 0.0503s351-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})352 -> 0.0068s353-- create_table("merge_trains", {:force=>:cascade})354 -> 0.0145s355-- create_table("milestones", {:id=>:serial, :force=>:cascade})356 -> 0.0267s357-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})358 -> 0.0060s359-- create_table("namespaces", {:id=>:serial, :force=>:cascade})360 -> 0.0553s361-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})362 -> 0.0069s363-- create_table("notes", {:id=>:serial, :force=>:cascade})364 -> 0.0361s365-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})366 -> 0.0176s367-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})368 -> 0.0092s369-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})370 -> 0.0137s371-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})372 -> 0.0130s373-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})374 -> 0.0072s375-- create_table("operations_feature_flag_scopes", {:force=>:cascade})376 -> 0.0074s377-- create_table("operations_feature_flags", {:force=>:cascade})378 -> 0.0083s379-- create_table("operations_feature_flags_clients", {:force=>:cascade})380 -> 0.0067s381-- create_table("packages_maven_metadata", {:force=>:cascade})382 -> 0.0073s383-- create_table("packages_package_files", {:force=>:cascade})384 -> 0.0081s385-- create_table("packages_packages", {:force=>:cascade})386 -> 0.0077s387-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})388 -> 0.0217s389-- create_table("path_locks", {:id=>:serial, :force=>:cascade})390 -> 0.0136s391-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})392 -> 0.0117s393-- create_table("plans", {:id=>:serial, :force=>:cascade})394 -> 0.0064s395-- create_table("pool_repositories", {:force=>:cascade})396 -> 0.0143s397-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})398 -> 0.0079s399-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})400 -> 0.0041s401-- create_table("project_authorizations", {:id=>false, :force=>:cascade})402 -> 0.0084s403-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})404 -> 0.0084s405-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})406 -> 0.0067s407-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})408 -> 0.0098s409-- create_table("project_daily_statistics", {:force=>:cascade})410 -> 0.0067s411-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})412 -> 0.0099s413-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})414 -> 0.0045s415-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})416 -> 0.0116s417-- create_table("project_features", {:id=>:serial, :force=>:cascade})418 -> 0.0098s419-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})420 -> 0.0100s421-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})422 -> 0.0073s423-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})424 -> 0.0057s425-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})426 -> 0.0040s427-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})428 -> 0.0208s429-- create_table("project_repositories", {:force=>:cascade})430 -> 0.0128s431-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})432 -> 0.0218s433-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})434 -> 0.0146s435-- create_table("project_tracing_settings", {:force=>:cascade})436 -> 0.0080s437-- create_table("projects", {:id=>:serial, :force=>:cascade})438 -> 0.0993s439-- create_table("prometheus_alert_events", {:force=>:cascade})440 -> 0.0118s441-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})442 -> 0.0111s443-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})444 -> 0.0161s445-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})446 -> 0.0148s447-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})448 -> 0.0154s449-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})450 -> 0.0119s451-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})452 -> 0.0074s453-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})454 -> 0.0144s455-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})456 -> 0.0119s457-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})458 -> 0.0129s459-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})460 -> 0.0087s461-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})462 -> 0.0064s463-- create_table("push_rules", {:id=>:serial, :force=>:cascade})464 -> 0.0172s465-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})466 -> 0.0098s467-- create_table("release_links", {:force=>:cascade})468 -> 0.0105s469-- create_table("releases", {:id=>:serial, :force=>:cascade})470 -> 0.0118s471-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})472 -> 0.0120s473-- create_table("repository_languages", {:id=>false, :force=>:cascade})474 -> 0.0053s475-- create_table("resource_label_events", {:force=>:cascade})476 -> 0.0186s477-- create_table("reviews", {:force=>:cascade})478 -> 0.0117s479-- create_table("routes", {:id=>:serial, :force=>:cascade})480 -> 0.0130s481-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})482 -> 0.0110s483-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})484 -> 0.0062s485-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})486 -> 0.0070s487-- create_table("services", {:id=>:serial, :force=>:cascade})488 -> 0.0207s489-- create_table("shards", {:id=>:serial, :force=>:cascade})490 -> 0.0063s491-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})492 -> 0.0098s493-- create_table("smartcard_identities", {:force=>:cascade})494 -> 0.0084s495-- create_table("snippets", {:id=>:serial, :force=>:cascade})496 -> 0.0224s497-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})498 -> 0.0113s499-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})500 -> 0.0077s501-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})502 -> 0.0063s503-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})504 -> 0.0098s505-- create_table("suggestions", {:force=>:cascade})506 -> 0.0122s507-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})508 -> 0.0096s509-- create_table("taggings", {:id=>:serial, :force=>:cascade})510 -> 0.0173s511-- create_table("tags", {:id=>:serial, :force=>:cascade})512 -> 0.0107s513-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})514 -> 0.0136s515-- create_table("timelogs", {:id=>:serial, :force=>:cascade})516 -> 0.0159s517-- create_table("todos", {:id=>:serial, :force=>:cascade})518 -> 0.0340s519-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})520 -> 0.0074s521-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})522 -> 0.0106s523-- create_table("uploads", {:id=>:serial, :force=>:cascade})524 -> 0.0192s525-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})526 -> 0.0083s527-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})528 -> 0.0120s529-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})530 -> 0.0107s531-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})532 -> 0.0074s533-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})534 -> 0.0097s535-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})536 -> 0.0086s537-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})538 -> 0.0091s539-- create_table("users", {:id=>:serial, :force=>:cascade})540 -> 0.0944s541-- create_table("users_ops_dashboard_projects", {:force=>:cascade})542 -> 0.0123s543-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})544 -> 0.0108s545-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})546 -> 0.0232s547-- create_table("vulnerability_identifiers", {:force=>:cascade})548 -> 0.0085s549-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})550 -> 0.0095s551-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})552 -> 0.0114s553-- create_table("vulnerability_occurrences", {:force=>:cascade})554 -> 0.0191s555-- create_table("vulnerability_scanners", {:force=>:cascade})556 -> 0.0081s557-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})558 -> 0.0115s559-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})560 -> 0.0211s561-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})562 -> 0.0052s563-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})564 -> 0.0064s565-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})566 -> 0.0044s567-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})568 -> 0.0023s569-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})570 -> 0.0017s571-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})572 -> 0.0027s573-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})574 -> 0.0023s575-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})576 -> 0.0021s577-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})578 -> 0.0018s579-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})580 -> 0.0018s581-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})582 -> 0.0020s583-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})584 -> 0.0019s585-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})586 -> 0.0035s587-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})588 -> 0.0022s589-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})590 -> 0.0017s591-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})592 -> 0.0017s593-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})594 -> 0.0019s595-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})596 -> 0.0021s597-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})598 -> 0.0021s599-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})600 -> 0.0018s601-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})602 -> 0.0039s603-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})604 -> 0.0021s605-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})606 -> 0.0019s607-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})608 -> 0.0038s609-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})610 -> 0.0016s611-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})612 -> 0.0019s613-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})614 -> 0.0035s615-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})616 -> 0.0020s617-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})618 -> 0.0019s619-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})620 -> 0.0038s621-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})622 -> 0.0018s623-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})624 -> 0.0018s625-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})626 -> 0.0038s627-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})628 -> 0.0019s629-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})630 -> 0.0038s631-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})632 -> 0.0025s633-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})634 -> 0.0020s635-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})636 -> 0.0028s637-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})638 -> 0.0050s639-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})640 -> 0.0035s641-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})642 -> 0.0018s643-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})644 -> 0.0017s645-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})646 -> 0.0038s647-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})648 -> 0.0028s649-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})650 -> 0.0017s651-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})652 -> 0.0018s653-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})654 -> 0.0018s655-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})656 -> 0.0017s657-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})658 -> 0.0022s659-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})660 -> 0.0035s661-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})662 -> 0.0029s663-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})664 -> 0.0016s665-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})666 -> 0.0020s667-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})668 -> 0.0037s669-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})670 -> 0.0020s671-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})672 -> 0.0015s673-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})674 -> 0.0014s675-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})676 -> 0.0023s677-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})678 -> 0.0019s679-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})680 -> 0.0021s681-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})682 -> 0.0037s683-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})684 -> 0.0018s685-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})686 -> 0.0022s687-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})688 -> 0.0020s689-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})690 -> 0.0031s691-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})692 -> 0.0016s693-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})694 -> 0.0018s695-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})696 -> 0.0017s697-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})698 -> 0.0028s699-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})700 -> 0.0020s701-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})702 -> 0.0017s703-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})704 -> 0.0019s705-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})706 -> 0.0019s707-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})708 -> 0.0023s709-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})710 -> 0.0019s711-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})712 -> 0.0033s713-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})714 -> 0.0018s715-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})716 -> 0.0021s717-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})718 -> 0.0025s719-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})720 -> 0.0037s721-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})722 -> 0.0022s723-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})724 -> 0.0017s725-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})726 -> 0.0035s727-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})728 -> 0.0016s729-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})730 -> 0.0017s731-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})732 -> 0.0017s733-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})734 -> 0.0018s735-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})736 -> 0.0019s737-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})738 -> 0.0019s739-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})740 -> 0.0022s741-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})742 -> 0.0019s743-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})744 -> 0.0016s745-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})746 -> 0.0021s747-- add_foreign_key("container_repositories", "projects")748 -> 0.0021s749-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})750 -> 0.0018s751-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})752 -> 0.0018s753-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})754 -> 0.0029s755-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})756 -> 0.0040s757-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})758 -> 0.0034s759-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})760 -> 0.0030s761-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :on_delete=>:cascade})762 -> 0.0021s763-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :on_delete=>:cascade})764 -> 0.0020s765-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})766 -> 0.0021s767-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})768 -> 0.0026s769-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})770 -> 0.0018s771-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})772 -> 0.0023s773-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})774 -> 0.0028s775-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})776 -> 0.0021s777-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})778 -> 0.0016s779-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})780 -> 0.0040s781-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})782 -> 0.0014s783-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})784 -> 0.0021s785-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})786 -> 0.0017s787-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})788 -> 0.0019s789-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})790 -> 0.0018s791-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})792 -> 0.0019s793-- add_foreign_key("events", "projects", {:on_delete=>:cascade})794 -> 0.0046s795-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})796 -> 0.0019s797-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})798 -> 0.0018s799-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})800 -> 0.0019s801-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})802 -> 0.0020s803-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})804 -> 0.0017s805-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})806 -> 0.0033s807-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})808 -> 0.0027s809-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})810 -> 0.0018s811-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})812 -> 0.0016s813-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})814 -> 0.0016s815-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})816 -> 0.0024s817-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})818 -> 0.0017s819-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})820 -> 0.0016s821-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})822 -> 0.0032s823-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})824 -> 0.0017s825-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})826 -> 0.0017s827-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})828 -> 0.0017s829-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})830 -> 0.0040s831-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})832 -> 0.0024s833-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})834 -> 0.0022s835-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})836 -> 0.0027s837-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})838 -> 0.0021s839-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})840 -> 0.0015s841-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})842 -> 0.0032s843-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})844 -> 0.0019s845-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})846 -> 0.0019s847-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})848 -> 0.0031s849-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})850 -> 0.0020s851-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})852 -> 0.0691s853-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})854 -> 0.0025s855-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})856 -> 0.0023s857-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})858 -> 0.0020s859-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})860 -> 0.0017s861-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})862 -> 0.0021s863-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})864 -> 0.0018s865-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})866 -> 0.0018s867-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})868 -> 0.0023s869-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})870 -> 0.0021s871-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})872 -> 0.0019s873-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})874 -> 0.0020s875-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})876 -> 0.0020s877-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})878 -> 0.0018s879-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})880 -> 0.0018s881-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})882 -> 0.0018s883-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})884 -> 0.0016s885-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})886 -> 0.0014s887-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})888 -> 0.0016s889-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})890 -> 0.0014s891-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})892 -> 0.0015s893-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})894 -> 0.0021s895-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})896 -> 0.0019s897-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})898 -> 0.0019s899-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})900 -> 0.0019s901-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})902 -> 0.0017s903-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})904 -> 0.0017s905-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})906 -> 0.0015s907-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})908 -> 0.0016s909-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})910 -> 0.0022s911-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})912 -> 0.0021s913-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})914 -> 0.0020s915-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})916 -> 0.0019s917-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})918 -> 0.0019s919-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})920 -> 0.0016s921-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})922 -> 0.0023s923-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})924 -> 0.0014s925-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})926 -> 0.0021s927-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})928 -> 0.0023s929-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})930 -> 0.0019s931-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})932 -> 0.0019s933-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})934 -> 0.0016s935-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})936 -> 0.0015s937-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})938 -> 0.0017s939-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})940 -> 0.0015s941-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})942 -> 0.0017s943-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})944 -> 0.0019s945-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})946 -> 0.0019s947-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})948 -> 0.0022s949-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})950 -> 0.0020s951-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})952 -> 0.0021s953-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})954 -> 0.0017s955-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})956 -> 0.0018s957-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})958 -> 0.0022s959-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})960 -> 0.0020s961-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})962 -> 0.0020s963-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})964 -> 0.0019s965-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})966 -> 0.0019s967-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})968 -> 0.0018s969-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})970 -> 0.0018s971-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})972 -> 0.0017s973-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})974 -> 0.0016s975-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})976 -> 0.0022s977-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})978 -> 0.0024s979-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})980 -> 0.0025s981-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})982 -> 0.0027s983-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})984 -> 0.0022s985-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})986 -> 0.0019s987-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})988 -> 0.0019s989-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})990 -> 0.0024s991-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})992 -> 0.0019s993-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})994 -> 0.0025s995-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})996 -> 0.0019s997-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})998 -> 0.0023s999-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})1000 -> 0.0018s1001-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1002 -> 0.0017s1003-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1004 -> 0.0021s1005-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1006 -> 0.0021s1007-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1008 -> 0.0015s1009-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1010 -> 0.0013s1011-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1012 -> 0.0020s1013-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1014 -> 0.0022s1015-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1016 -> 0.0020s1017-- add_foreign_key("path_locks", "users")1018 -> 0.0019s1019-- add_foreign_key("personal_access_tokens", "users")1020 -> 0.0021s1021-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1022 -> 0.0019s1023-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1024 -> 0.0015s1025-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1026 -> 0.0020s1027-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1028 -> 0.0019s1029-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1030 -> 0.0019s1031-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1032 -> 0.0020s1033-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1034 -> 0.0020s1035-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1036 -> 0.0021s1037-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1038 -> 0.0020s1039-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1040 -> 0.0017s1041-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1042 -> 0.0020s1043-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1044 -> 0.0021s1045-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1046 -> 0.0021s1047-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1048 -> 0.0022s1049-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1050 -> 0.0022s1051-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1052 -> 0.0021s1053-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1054 -> 0.0020s1055-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1056 -> 0.0020s1057-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1058 -> 0.0022s1059-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1060 -> 0.0021s1061-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1062 -> 0.0014s1063-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1064 -> 0.0024s1065-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1066 -> 0.0024s1067-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1068 -> 0.0024s1069-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1070 -> 0.0033s1071-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1072 -> 0.0023s1073-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1074 -> 0.0028s1075-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1076 -> 0.0017s1077-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1078 -> 0.0024s1079-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1080 -> 0.0021s1081-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1082 -> 0.0026s1083-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1084 -> 0.0021s1085-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1086 -> 0.0019s1087-- add_foreign_key("protected_branch_merge_access_levels", "users")1088 -> 0.0020s1089-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1090 -> 0.0021s1091-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1092 -> 0.0017s1093-- add_foreign_key("protected_branch_push_access_levels", "users")1094 -> 0.0021s1095-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1096 -> 0.0020s1097-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1098 -> 0.0014s1099-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1100 -> 0.0020s1101-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1102 -> 0.0022s1103-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1104 -> 0.0021s1105-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1106 -> 0.0017s1107-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1108 -> 0.0022s1109-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1110 -> 0.0021s1111-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1112 -> 0.0019s1113-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1114 -> 0.0017s1115-- add_foreign_key("protected_tag_create_access_levels", "users")1116 -> 0.0020s1117-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1118 -> 0.0021s1119-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1120 -> 0.0017s1121-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1122 -> 0.0025s1123-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1124 -> 0.0020s1125-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1126 -> 0.0023s1127-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1128 -> 0.0020s1129-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1130 -> 0.0026s1131-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1132 -> 0.0021s1133-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1134 -> 0.0020s1135-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1136 -> 0.0018s1137-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1138 -> 0.0016s1139-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1140 -> 0.0018s1141-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1142 -> 0.0021s1143-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1144 -> 0.0018s1145-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1146 -> 0.0022s1147-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1148 -> 0.0020s1149-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1150 -> 0.0021s1151-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1152 -> 0.0018s1153-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1154 -> 0.0025s1155-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1156 -> 0.0018s1157-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1158 -> 0.0021s1159-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1160 -> 0.0025s1161-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1162 -> 0.0022s1163-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1164 -> 0.0022s1165-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1166 -> 0.0022s1167-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1168 -> 0.0017s1169-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1170 -> 0.0015s1171-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1172 -> 0.0016s1173-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1174 -> 0.0021s1175-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1176 -> 0.0019s1177-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1178 -> 0.0017s1179-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1180 -> 0.0028s1181-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1182 -> 0.0017s1183-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1184 -> 0.0023s1185-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1186 -> 0.0019s1187-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1188 -> 0.0019s1189-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1190 -> 0.0021s1191-- add_foreign_key("u2f_registrations", "users")1192 -> 0.0020s1193-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1194 -> 0.0020s1195-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1196 -> 0.0019s1197-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1198 -> 0.0020s1199-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1200 -> 0.0017s1201-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1202 -> 0.0022s1203-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1204 -> 0.0019s1205-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1206 -> 0.0022s1207-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1208 -> 0.0020s1209-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1210 -> 0.0133s1211-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1212 -> 0.0031s1213-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1214 -> 0.0025s1215-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1216 -> 0.0029s1217-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1218 -> 0.0024s1219-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1220 -> 0.0020s1221-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1222 -> 0.0028s1223-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1224 -> 0.0023s1225-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1226 -> 0.0021s1227-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1228 -> 0.0018s1229-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1230 -> 0.0023s1231-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1232 -> 0.0014s1233-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1234 -> 0.0016s1235-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1236 -> 0.0017s1237-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1238 -> 0.0015s1239-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1240 -> 0.0022s1241-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1242 -> 0.0013s1243-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1244 -> 0.0014s1245-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1246 -> 0.0023s1247-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1248 -> 0.0019s1249-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1250 -> 0.0022s1251Dropped database 'gitlabhq_geo_test'1252Created database 'gitlabhq_geo_test'1253-- enable_extension("plpgsql")1254 -> 0.0193s1255-- create_table("event_log_states", {:primary_key=>"event_id", :id=>:bigint, :force=>:cascade})1256 -> 0.0038s1257-- create_table("file_registry", {:id=>:serial, :force=>:cascade})1258 -> 0.0149s1259-- create_table("job_artifact_registry", {:id=>:serial, :force=>:cascade})1260 -> 0.0101s1261-- create_table("project_registry", {:id=>:serial, :force=>:cascade})1262 -> 0.0482s1263$ date1264Wed May 29 01:26:54 UTC 20191265$ JOB_NAME=( $CI_JOB_NAME )1266$ TEST_TOOL=${JOB_NAME[0]}1267$ TEST_LEVEL=${JOB_NAME[1]}1268$ DATABASE=${JOB_NAME[2]}1269$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1270$ export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec1271$ export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}1272$ export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1273$ export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json1274$ export FLAKY_RSPEC_GENERATE_REPORT=true1275$ export CACHE_CLASSES=true1276$ cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}1277$ [[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}1278$ [[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}1279$ scripts/gitaly-test-spawn1280Checking gitaly-ruby bundle...1281Warning: 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`.1282The Gemfile's dependencies are satisfied1283Trying to connect to gitaly: ...... OK1284$ date1285Wed May 29 01:26:55 UTC 20191286$ export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")1287$ knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"1288Knapsack report generator started!1289Run options:1290 include {:level=>"integration"}1291 exclude {:geo=>true}1292==> Setting up GitLab Shell...1293 GitLab Shell set up in 0.827479821 seconds...1294==> Setting up Gitaly...1295 Gitaly set up in 0.000240256 seconds...1296==> Setting up GitLab Elasticsearch Indexer...1297 GitLab Elasticsearch Indexer set up in 0.000526162 seconds...1298API::Commits1299 GET /projects/:id/repository/commits1300 when unauthenticated and project is public1301 behaves like project commits1302 returns project commits1303 include correct pagination headers1304 when unauthenticated and project is private1305 behaves like 404 response1306 returns 4041307 when authenticated as a maintainer1308 behaves like project commits1309 returns project commits1310 include correct pagination headers1311 since optional parameter1312 returns project commits since provided parameter1313 include correct pagination headers1314 until optional parameter1315 returns project commits until provided parameter1316 include correct pagination headers1317 invalid xmlschema date parameters1318 returns an invalid parameter error message1319 path optional parameter1320 returns project commits matching provided path parameter1321 include correct pagination headers1322 all optional parameter1323 returns all project commits1324 with_stats optional parameter1325 behaves like project commits1326 returns project commits1327 include correct pagination headers1328 include commits details1329 with pagination params1330 returns correct headers1331 viewing the first page1332 returns the first 5 commits1333 viewing the third page1334 returns the third 5 commits1335 POST /projects/:id/repository/commits1336 returns a 403 unauthorized for user without permissions1337 returns a 400 bad request if no params are given1338 create1339 does not increment the usage counters using access token authentication1340 a new file in project repo1341 a new file with utf8 chars in project repo1342 returns a 400 bad request if file exists1343 with project path containing a dot in URL1344 a new file in project repo1345 delete1346 an existing file in project repo1347 returns a 400 bad request if file does not exist1348 move1349 an existing file in project repo1350 returns a 400 bad request if file does not exist1351 update1352 an existing file in project repo1353 returns a 400 bad request if file does not exist1354 chmod1355 responds with success1356 when execute_filemode is false1357 responds with success1358 when the file doesn't exists1359 responds with 4001360 multiple operations1361 are committed as one in project repo1362 includes the commit stats1363 doesn't include the commit stats when stats is false1364 return a 400 bad request if there are any issues1365 when committing into a fork as a maintainer1366 allows pushing to the source branch of the merge request1367 denies pushing to another branch1368 GET /projects/:id/repository/commits/:sha/refs1369 when ref does not exist1370 behaves like 404 response1371 returns 4041372 when repository is disabled1373 behaves like 403 response1374 returns 4031375 for a valid commit1376 returns all refs with no scope1377 returns all refs1378 returns the branch refs1379 returns the tag refs1380 GET /projects/:id/repository/commits/:sha1381 when stat param1382 is not present return stats by default1383 is false it does not include stats1384 is true it includes stats1385 when unauthenticated and project is public1386 behaves like ref commit1387 returns the ref last commit1388 when ref does not exist1389 behaves like 404 response1390 returns 4041391 when repository is disabled1392 behaves like 403 response1393 returns 4031394 when unauthenticated and project is private1395 behaves like 404 response1396 returns 4041397 when authenticated as a maintainer1398 behaves like ref commit1399 returns the ref last commit1400 when ref does not exist1401 behaves like 404 response1402 returns 4041403 when repository is disabled1404 behaves like 403 response1405 returns 4031406 when branch contains a dot1407 behaves like ref commit1408 returns the ref last commit1409 when ref does not exist1410 behaves like 404 response1411 returns 4041412 when repository is disabled1413 behaves like 403 response1414 returns 4031415 when branch contains a slash1416 behaves like 404 response1417 returns 4041418 when branch contains an escaped slash1419 behaves like ref commit1420 returns the ref last commit1421 when ref does not exist1422 behaves like 404 response1423 returns 4041424 when repository is disabled1425 behaves like 403 response1426 returns 4031427 requesting with the escaped project full path1428 behaves like ref commit1429 returns the ref last commit1430 when ref does not exist1431 behaves like 404 response1432 returns 4041433 when repository is disabled1434 behaves like 403 response1435 returns 4031436 when branch contains a dot1437 behaves like ref commit1438 returns the ref last commit1439 when ref does not exist1440 behaves like 404 response1441 returns 4041442 when repository is disabled1443 behaves like 403 response1444 returns 4031445 when the ref has a pipeline1446 includes a "created" status1447 when pipeline succeeds1448 includes a "success" status1449 GET /projects/:id/repository/commits/:sha/diff1450 when unauthenticated and project is public1451 behaves like ref diff1452 returns the diff of the selected commit1453 when ref does not exist1454 behaves like 404 response1455 returns 4041456 when repository is disabled1457 behaves like 403 response1458 returns 4031459 when unauthenticated and project is private1460 behaves like 404 response1461 returns 4041462 when authenticated as a maintainer1463 behaves like ref diff1464 returns the diff of the selected commit1465 when ref does not exist1466 behaves like 404 response1467 returns 4041468 when repository is disabled1469 behaves like 403 response1470 returns 4031471 when branch contains a dot1472 behaves like ref diff1473 returns the diff of the selected commit1474 when ref does not exist1475 behaves like 404 response1476 returns 4041477 when repository is disabled1478 behaves like 403 response1479 returns 4031480 when branch contains a slash1481 behaves like 404 response1482 returns 4041483 when branch contains an escaped slash1484 behaves like ref diff1485 returns the diff of the selected commit1486 when ref does not exist1487 behaves like 404 response1488 returns 4041489 when repository is disabled1490 behaves like 403 response1491 returns 4031492 requesting with the escaped project full path1493 behaves like ref diff1494 returns the diff of the selected commit1495 when ref does not exist1496 behaves like 404 response1497 returns 4041498 when repository is disabled1499 behaves like 403 response1500 returns 4031501 when branch contains a dot1502 behaves like ref diff1503 returns the diff of the selected commit1504 when ref does not exist1505 behaves like 404 response1506 returns 4041507 when repository is disabled1508 behaves like 403 response1509 returns 4031510 when binary diff are treated as text1511 behaves like ref diff1512 returns the diff of the selected commit1513 when ref does not exist1514 behaves like 404 response1515 returns 4041516 when repository is disabled1517 behaves like 403 response1518 returns 4031519 GET /projects/:id/repository/commits/:sha/comments1520 when unauthenticated and project is public1521 behaves like ref comments1522 when ref exists1523 returns the diff of the selected commit1524 when ref does not exist1525 behaves like 404 response1526 returns 4041527 when repository is disabled1528 behaves like 403 response1529 returns 4031530 when unauthenticated and project is private1531 behaves like 404 response1532 returns 4041533 when authenticated as a maintainer1534 behaves like ref comments1535 when ref exists1536 returns the diff of the selected commit1537 when ref does not exist1538 behaves like 404 response1539 returns 4041540 when repository is disabled1541 behaves like 403 response1542 returns 4031543 when branch contains a dot1544 behaves like ref comments1545 when ref exists1546 returns the diff of the selected commit1547 when ref does not exist1548 behaves like 404 response1549 returns 4041550 when repository is disabled1551 behaves like 403 response1552 returns 4031553 when branch contains a slash1554 behaves like 404 response1555 returns 4041556 when branch contains an escaped slash1557 behaves like ref comments1558 when ref exists1559 returns the diff of the selected commit1560 when ref does not exist1561 behaves like 404 response1562 returns 4041563 when repository is disabled1564 behaves like 403 response1565 returns 4031566 requesting with the escaped project full path1567 behaves like ref comments1568 when ref exists1569 returns the diff of the selected commit1570 when ref does not exist1571 behaves like 404 response1572 returns 4041573 when repository is disabled1574 behaves like 403 response1575 returns 4031576 when branch contains a dot1577 behaves like ref comments1578 when ref exists1579 returns the diff of the selected commit1580 when ref does not exist1581 behaves like 404 response1582 returns 4041583 when repository is disabled1584 behaves like 403 response1585 returns 4031586 when the commit is present on two projects1587 returns the comments for the target project1588 POST :id/repository/commits/:sha/cherry_pick1589 when unauthenticated and project is public1590 behaves like 403 response1591 returns 4031592 when unauthenticated and project is private1593 behaves like 404 response1594 returns 4041595 when authenticated as an owner1596 behaves like ref cherry-pick1597 when ref exists1598 cherry-picks the ref commit1599 when repository is disabled1600 behaves like 403 response1601 returns 4031602 when ref does not exist1603 behaves like 404 response1604 returns 4041605 when branch is missing1606 behaves like 400 response1607 returns 4001608 when branch is empty1609 behaves like 400 response1610 returns 4001611 behaves like 400 response1612 returns 4001613 when branch does not exist1614 behaves like 404 response1615 returns 4041616 when commit is already included in the target branch1617 behaves like 400 response1618 returns 4001619 when ref contains a dot1620 behaves like ref cherry-pick1621 when ref exists1622 cherry-picks the ref commit1623 when repository is disabled1624 behaves like 403 response1625 returns 4031626 when ref contains a slash1627 behaves like 404 response1628 returns 4041629 requesting with the escaped project full path1630 behaves like ref cherry-pick1631 when ref exists1632 cherry-picks the ref commit1633 when repository is disabled1634 behaves like 403 response1635 returns 4031636 when ref contains a dot1637 behaves like ref cherry-pick1638 when ref exists1639 cherry-picks the ref commit1640 when repository is disabled1641 behaves like 403 response1642 returns 4031643 when authenticated as a developer1644 when branch is protected1645 returns 400 if you are not allowed to push to the target branch1646 when cherry picking to a fork as a maintainer1647 allows access from a maintainer that to the source branch1648 denies cherry picking to another branch1649 POST :id/repository/commits/:sha/revert1650 when unauthenticated and project is public1651 behaves like 403 response1652 returns 4031653 when unauthenticated and project is private1654 behaves like 404 response1655 returns 4041656 when authenticated as an owner1657 behaves like ref revert1658 when ref exists1659 reverts the ref commit1660 when repository is disabled1661 behaves like 403 response1662 returns 4031663 when ref does not exist1664 behaves like 404 response1665 returns 4041666 when branch is missing1667 behaves like 400 response1668 returns 4001669 when branch is empty1670 behaves like 400 response1671 returns 4001672 behaves like 400 response1673 returns 4001674 when branch does not exist1675 behaves like 404 response1676 returns 4041677 when ref contains a dot1678 behaves like 400 response1679 returns 4001680 when authenticated as a developer1681 when branch is protected1682 returns 400 if you are not allowed to push to the target branch1683 POST /projects/:id/repository/commits/:sha/comments1684 when unauthenticated and project is public1685 behaves like 400 response1686 returns 4001687 when unauthenticated and project is private1688 behaves like 404 response1689 returns 4041690 when authenticated as an owner1691 returns the inline comment1692 returns 400 if note is missing1693 behaves like ref new comment1694 when ref exists1695 creates the comment1696 when repository is disabled1697 behaves like 403 response1698 returns 4031699 when ref does not exist1700 behaves like 404 response1701 returns 4041702 when ref contains a dot1703 behaves like ref new comment1704 when ref exists1705 creates the comment1706 when repository is disabled1707 behaves like 403 response1708 returns 4031709 when ref contains a slash1710 behaves like 404 response1711 returns 4041712 when ref contains an escaped slash1713 behaves like ref new comment1714 when ref exists1715 creates the comment1716 when repository is disabled1717 behaves like 403 response1718 returns 4031719 requesting with the escaped project full path1720 behaves like ref new comment1721 when ref exists1722 creates the comment1723 when repository is disabled1724 behaves like 403 response1725 returns 4031726 when ref contains a dot1727 behaves like ref new comment1728 when ref exists1729 creates the comment1730 when repository is disabled1731 behaves like 403 response1732 returns 4031733 GET /projects/:id/repository/commits/:sha/merge_requests1734 returns the correct merge request1735 returns 403 for an unauthorized user1736 responds 404 when the commit does not exist1737 public project1738 responds 403 when only members are allowed to read merge requests1739 GET /projects/:id/repository/commits/:sha/signature1740 when commit does not exist1741 behaves like 404 response1742 returns 4041743 unsigned commit1744 behaves like 404 response1745 returns 4041746 signed commit1747 returns correct JSON1748Projects::NotesController1749 GET index1750 passes last_fetched_at from headers to NotesFinder1751 when user notes_filter is present1752 filters system notes by comments1753 returns all notes1754 does not merge label event notes1755 for a discussion note1756 responds with the expected attributes1757 for a diff discussion note1758 responds with the expected attributes1759 for a commit note1760 when displayed on a merge request1761 responds with the expected attributes1762 when displayed on the commit1763 responds with the expected attributes1764 when user cannot read commit1765 renders 4041766 for a regular note1767 responds with the expected attributes1768 with cross-reference system note1769 filters notes that the user should not see1770 does not result in N+1 queries1771 POST create1772 returns status 302 for html1773 returns status 200 for json1774 returns discussion JSON when the return_discussion param is set1775 when merge_request_diff_head_sha present1776 returns status 302 for html1777 when creating a comment on a commit with SHA1 starting with a large number1778 creates a note successfully1779 when creating a commit comment from an MR fork1780 when the note_project_id is not correct1781 returns a 4041782 when the user has no access to the fork1783 returns a 4041784 when the user has access to the fork1785 creates the note1786 when target_id and noteable_id do not match1787 uses target_id and ignores noteable_id1788 when the merge request discussion is locked1789 when a noteable is not found1790 returns 404 status1791 when a user is a team member1792 returns 302 status for html1793 returns 200 status for json1794 creates a new note1795 when a user is not a team member1796 returns 404 status1797 does not create a new note1798 when creating a note with quick actions1799 with commands that return changes1800 includes changes in commands_changes1801 with commands that do not return changes1802 does not include changes in commands_changes1803 PUT update1804 should update the note with a valid issue1805 updates the note1806 doesnt update the note1807 disallows edits when the issue is confidential and the user has guest permissions1808 DELETE destroy1809 user is the author of a note1810 returns status 200 for html1811 deletes the note1812 user is not the author of a note1813 returns status 4041814 POST toggle_award_emoji1815 toggles the award emoji1816 removes the already awarded emoji1817 resolving and unresolving1818 POST resolve1819 when the user is not authorized to resolve the note1820 returns status 4041821 when the user is authorized to resolve the note1822 when the note is not resolvable1823 returns status 4041824 when the note is resolvable1825 resolves the note1826 sends notifications if all discussions are resolved1827 returns the name of the resolving user1828 returns status 2001829 DELETE unresolve1830 when the user is not authorized to resolve the note1831 returns status 4041832 when the user is authorized to resolve the note1833 when the note is not resolvable1834 returns status 4041835 when the note is resolvable1836 unresolves the note1837 returns status 2001838Git HTTP requests1839 User with no identities1840 when the project doesn't exist1841 when namespace doesn't exist1842 behaves like pulls require Basic HTTP Authentication1843 when no credentials are provided1844 responds to downloads with status 401 Unauthorized (no project existence information leak)1845 when only username is provided1846 responds to downloads with status 401 Unauthorized1847 when username and password are provided1848 when authentication fails1849 responds to downloads with status 401 Unauthorized1850 when authentication succeeds1851 does not respond to downloads with status 401 Unauthorized1852 behaves like pushes require Basic HTTP Authentication1853 when no credentials are provided1854 responds to uploads with status 401 Unauthorized (no project existence information leak)1855 when only username is provided1856 responds to uploads with status 401 Unauthorized1857 when username and password are provided1858 when authentication fails1859 responds to uploads with status 401 Unauthorized1860 when authentication succeeds1861 does not respond to uploads with status 401 Unauthorized1862 when authenticated1863 rejects downloads and uploads with 404 Not Found1864 when namespace exists1865 when authenticated1866 creates a new project under the existing namespace1867 rejects push with 422 Unprocessable Entity when project is invalid1868 behaves like project path without .git suffix1869 GET info/refs1870 when no params are added1871 redirects to the .git suffix version1872 when the upload-pack service is requested1873 redirects to the .git suffix version1874 when the receive-pack service is requested1875 redirects to the .git suffix version1876 when the params are anything else1877 redirects to the sign-in page1878 POST git-upload-pack1879 fails to find a route1880 POST git-receive-pack1881 fails to find a route1882 when requesting the Wiki1883 when the project is public1884 behaves like pushes require Basic HTTP Authentication1885 when no credentials are provided1886 responds to uploads with status 401 Unauthorized (no project existence information leak)1887 when only username is provided1888 responds to uploads with status 401 Unauthorized1889 when username and password are provided1890 when authentication fails1891 responds to uploads with status 401 Unauthorized1892 when authentication succeeds1893 does not respond to uploads with status 401 Unauthorized1894 when unauthenticated1895 responds to pulls with the wiki's repo1896 behaves like pulls are allowed1897 should eq "application/vnd.gitlab-workhorse+json"1898 when authenticated1899 and as a developer on the team1900 but the repo is disabled1901 behaves like pulls are allowed1902 should eq "application/vnd.gitlab-workhorse+json"1903 behaves like pushes are allowed1904 should eq "application/vnd.gitlab-workhorse+json"1905 and not on the team1906 rejects pushes with 403 Forbidden1907 behaves like pulls are allowed1908 should eq "application/vnd.gitlab-workhorse+json"1909 when the project is private1910 behaves like pulls require Basic HTTP Authentication1911 when no credentials are provided1912 responds to downloads with status 401 Unauthorized (no project existence information leak)1913 when only username is provided1914 responds to downloads with status 401 Unauthorized1915 when username and password are provided1916 when authentication fails1917 responds to downloads with status 401 Unauthorized1918 when authentication succeeds1919 does not respond to downloads with status 401 Unauthorized1920 behaves like pushes require Basic HTTP Authentication1921 when no credentials are provided1922 responds to uploads with status 401 Unauthorized (no project existence information leak)1923 when only username is provided1924 responds to uploads with status 401 Unauthorized1925 when username and password are provided1926 when authentication fails1927 responds to uploads with status 401 Unauthorized1928 when authentication succeeds1929 does not respond to uploads with status 401 Unauthorized1930 when authenticated1931 and as a developer on the team1932 but the repo is disabled1933 allows clones1934 pushes are allowed1935 and not on the team1936 rejects clones with 404 Not Found1937 rejects pushes with 404 Not Found1938 when the project exists1939 when the project is public1940 behaves like pushes require Basic HTTP Authentication1941 when no credentials are provided1942 responds to uploads with status 401 Unauthorized (no project existence information leak)1943 when only username is provided1944 responds to uploads with status 401 Unauthorized1945 when username and password are provided1946 when authentication fails1947 responds to uploads with status 401 Unauthorized1948 when authentication succeeds1949 does not respond to uploads with status 401 Unauthorized1950 when not authenticated1951 behaves like pulls are allowed1952 should eq "application/vnd.gitlab-workhorse+json"1953 when authenticated1954 as a developer on the team1955 behaves like pulls are allowed1956 should eq "application/vnd.gitlab-workhorse+json"1957 behaves like pushes are allowed1958 should eq "application/vnd.gitlab-workhorse+json"1959 but git-receive-pack over HTTP is disabled in config1960 rejects pushes with 403 Forbidden1961 but git-upload-pack over HTTP is disabled in config1962 rejects pushes with 403 Forbidden1963 and not a member of the team1964 rejects pushes with 403 Forbidden1965 behaves like pulls are allowed1966 should eq "application/vnd.gitlab-workhorse+json"1967 when merge requests are open that allow maintainer access1968 behaves like pushes are allowed1969 should eq "application/vnd.gitlab-workhorse+json"1970 when the request is not from gitlab-workhorse1971 raises an exception1972 when the repo is public1973 but the repo is disabled1974 behaves like pulls require Basic HTTP Authentication1975 when no credentials are provided1976 responds to downloads with status 401 Unauthorized (no project existence information leak)1977 when only username is provided1978 responds to downloads with status 401 Unauthorized1979 when username and password are provided1980 when authentication fails1981 responds to downloads with status 401 Unauthorized1982 when authentication succeeds1983 does not respond to downloads with status 401 Unauthorized1984 behaves like pushes require Basic HTTP Authentication1985 when no credentials are provided1986 responds to uploads with status 401 Unauthorized (no project existence information leak)1987 when only username is provided1988 responds to uploads with status 401 Unauthorized1989 when username and password are provided1990 when authentication fails1991 responds to uploads with status 401 Unauthorized1992 when authentication succeeds1993 does not respond to uploads with status 401 Unauthorized1994 but the repo is enabled1995 behaves like pulls are allowed1996 should eq "application/vnd.gitlab-workhorse+json"1997 but only project members are allowed1998 behaves like pulls require Basic HTTP Authentication1999 when no credentials are provided2000 responds to downloads with status 401 Unauthorized (no project existence information leak)2001 when only username is provided2002 responds to downloads with status 401 Unauthorized2003 when username and password are provided2004 when authentication fails2005 responds to downloads with status 401 Unauthorized2006 when authentication succeeds2007 does not respond to downloads with status 401 Unauthorized2008 behaves like pushes require Basic HTTP Authentication2009 when no credentials are provided2010 responds to uploads with status 401 Unauthorized (no project existence information leak)2011 when only username is provided2012 responds to uploads with status 401 Unauthorized2013 when username and password are provided2014 when authentication fails2015 responds to uploads with status 401 Unauthorized2016 when authentication succeeds2017 does not respond to uploads with status 401 Unauthorized2018 and the user requests a redirected path2019 downloads get status 200 for redirects2020 when the project is private2021 behaves like pulls require Basic HTTP Authentication2022 when no credentials are provided2023 responds to downloads with status 401 Unauthorized (no project existence information leak)2024 when only username is provided2025 responds to downloads with status 401 Unauthorized2026 when username and password are provided2027 when authentication fails2028 responds to downloads with status 401 Unauthorized2029 when authentication succeeds2030 does not respond to downloads with status 401 Unauthorized2031 behaves like pushes require Basic HTTP Authentication2032 when no credentials are provided2033 responds to uploads with status 401 Unauthorized (no project existence information leak)2034 when only username is provided2035 responds to uploads with status 401 Unauthorized2036 when username and password are provided2037 when authentication fails2038 responds to uploads with status 401 Unauthorized2039 when authentication succeeds2040 does not respond to uploads with status 401 Unauthorized2041 when username and password are provided2042 when authentication fails2043 when the user is IP banned2044 responds with status 4012045 when authentication succeeds2046 when the user has access to the project2047 when the user is blocked2048 rejects pulls with 401 Unauthorized2049 rejects pulls with 401 Unauthorized for unknown projects (no project existence information leak)2050 when the user isn't blocked2051 resets the IP in Rack Attack on download2052 resets the IP in Rack Attack on upload2053 updates the user last activity2054 when an oauth token is provided2055 behaves like pulls are allowed2056 should eq "application/vnd.gitlab-workhorse+json"2057 behaves like pushes are allowed2058 should eq "application/vnd.gitlab-workhorse+json"2059 when user has 2FA enabled2060 when username and password are provided2061 rejects pulls with personal access token error message2062 rejects the push attempt with personal access token error message2063 when username and personal access token are provided2064 rejects the push attempt for read_repository scope2065 accepts the push attempt for write_repository scope2066 accepts the pull attempt for read_repository scope2067 accepts the pull attempt for api scope2068 accepts the push attempt for api scope2069 behaves like pulls are allowed2070 should eq "application/vnd.gitlab-workhorse+json"2071 behaves like pushes are allowed2072 should eq "application/vnd.gitlab-workhorse+json"2073 when internal auth is disabled2074 rejects pulls with personal access token error message2075 rejects pushes with personal access token error message2076 when LDAP is configured2077 does not display the personal access token error message2078 when blank password attempts follow a valid login2079 repeated attempts followed by successful attempt2080 and the user requests a redirected path2081 downloads get status 2002082 uploads get status 404 with "project was moved" message2083 when the user doesn't have access to the project2084 pulls get status 4042085 uploads get status 4042086 when a gitlab ci token is provided2087 when build created by system is authenticated2088 rejects pushes with 403 Forbidden2089 rejects pulls for other project with 404 Not Found2090 behaves like pulls are allowed2091 should eq "application/vnd.gitlab-workhorse+json"2092 and build created by2093 administrator2094 downloads from other project get status 4032095 behaves like can download code only2096 rejects pushes with 403 Forbidden2097 behaves like pulls are allowed2098 should eq "application/vnd.gitlab-workhorse+json"2099 when the repo does not exist2100 rejects pulls with 404 Not Found2101 regular user2102 downloads from other project get status 4042103 behaves like can download code only2104 rejects pushes with 403 Forbidden2105 behaves like pulls are allowed2106 should eq "application/vnd.gitlab-workhorse+json"2107 when the repo does not exist2108 rejects pulls with 404 Not Found2109 behaves like project path without .git suffix2110 GET info/refs2111 when no params are added2112 redirects to the .git suffix version2113 when the upload-pack service is requested2114 redirects to the .git suffix version2115 when the receive-pack service is requested2116 redirects to the .git suffix version2117 when the params are anything else2118 redirects to the sign-in page2119 POST git-upload-pack2120 fails to find a route2121 POST git-receive-pack2122 fails to find a route2123 retrieving an info/refs file2124 when the file exists2125 returns the file2126 when the file does not exist2127 returns not found2128 User with LDAP identity2129 behaves like pulls require Basic HTTP Authentication2130 when no credentials are provided2131 responds to downloads with status 401 Unauthorized (no project existence information leak)2132 when only username is provided2133 responds to downloads with status 401 Unauthorized2134 when username and password are provided2135 when authentication fails2136 responds to downloads with status 401 Unauthorized2137 when authentication succeeds2138 does not respond to downloads with status 401 Unauthorized2139 behaves like pushes require Basic HTTP Authentication2140 when no credentials are provided2141 responds to uploads with status 401 Unauthorized (no project existence information leak)2142 when only username is provided2143 responds to uploads with status 401 Unauthorized2144 when username and password are provided2145 when authentication fails2146 responds to uploads with status 401 Unauthorized2147 when authentication succeeds2148 does not respond to uploads with status 401 Unauthorized2149 when authentication succeeds2150 when the project doesn't exist2151 responds with status 404 Not Found2152 when the project exists2153 and the user is on the team2154 responds with status 2002155 behaves like pulls are allowed2156 should eq "application/vnd.gitlab-workhorse+json"2157 behaves like pushes are allowed2158 should eq "application/vnd.gitlab-workhorse+json"2159 when terms are enforced2160 blocks git access when the user did not accept terms2161 when the user accepted the terms2162 allows clones2163 behaves like pulls are allowed2164 should eq "application/vnd.gitlab-workhorse+json"2165 behaves like pushes are allowed2166 should eq "application/vnd.gitlab-workhorse+json"2167 from CI2168 behaves like pulls are allowed2169 should eq "application/vnd.gitlab-workhorse+json"2170API::Todos2171 GET /todos2172 avoids N+1 queries2173 when unauthenticated2174 returns authentication error2175 when authenticated2176 returns an array of pending todos for current user2177 and using the author filter2178 filters based on author_id param2179 and using the type filter2180 filters based on type param2181 and using the state filter2182 filters based on state param2183 and using the project filter2184 filters based on project_id param2185 and using the group filter2186 filters based on project_id param2187 and using the action filter2188 filters based on action param2189 POST /todos/:id/mark_as_done2190 when unauthenticated2191 returns authentication error2192 when authenticated2193 marks a todo as done2194 updates todos cache2195 returns 404 if the todo does not belong to the current user2196 POST /mark_as_done2197 when unauthenticated2198 returns authentication error2199 when authenticated2200 marks all todos as done2201 updates todos cache2202 POST :id/issuable_type/:issueable_id/todo2203 for an issue2204 behaves like an issuable2205 creates a todo on an issuable2206 returns 304 there already exist a todo on that issuable2207 returns 404 if the issuable is not found2208 returns an error if the issuable is not accessible2209 for a merge request2210 behaves like an issuable2211 creates a todo on an issuable2212 returns 304 there already exist a todo on that issuable2213 returns 404 if the issuable is not found2214 returns an error if the issuable is not accessible2215Update of user activity2216 without an authenticated user2217 does not set the last activity cookie2218 with an authenticated user2219 with a POST request2220 does not set the last activity cookie2221 on GET to /group2222 updates the last activity date2223 when calling it twice2224 updates last_activity_on just once2225 when last_activity_on is nil2226 updates the last activity date2227 when last_activity_on is stale2228 updates the last activity date2229 when last_activity_on is up to date2230 does not try to update it2231 on GET to /group/project2232 updates the last activity date2233 when calling it twice2234 updates last_activity_on just once2235 when last_activity_on is nil2236 updates the last activity date2237 when last_activity_on is stale2238 updates the last activity date2239 when last_activity_on is up to date2240 does not try to update it2241 on GET to /groups/group/-/issues2242 updates the last activity date2243 when calling it twice2244 updates last_activity_on just once2245 when last_activity_on is nil2246 updates the last activity date2247 when last_activity_on is stale2248 updates the last activity date2249 when last_activity_on is up to date2250 does not try to update it2251 on GET to /groups/group/-/boards2252 updates the last activity date2253 when calling it twice2254 updates last_activity_on just once2255 when last_activity_on is nil2256 updates the last activity date2257 when last_activity_on is stale2258 updates the last activity date2259 when last_activity_on is up to date2260 does not try to update it2261 on GET to /dashboard/projects2262 updates the last activity date2263 when calling it twice2264 updates last_activity_on just once2265 when last_activity_on is nil2266 updates the last activity date2267 when last_activity_on is stale2268 updates the last activity date2269 when last_activity_on is up to date2270 does not try to update it2271 on GET to /dashboard/snippets2272 updates the last activity date2273 when calling it twice2274 updates last_activity_on just once2275 when last_activity_on is nil2276 updates the last activity date2277 when last_activity_on is stale2278 updates the last activity date2279 when last_activity_on is up to date2280 does not try to update it2281 on GET to /dashboard/groups2282 updates the last activity date2283 when calling it twice2284 updates last_activity_on just once2285 when last_activity_on is nil2286 updates the last activity date2287 when last_activity_on is stale2288 updates the last activity date2289 when last_activity_on is up to date2290 does not try to update it2291 on GET to /dashboard/todos2292 updates the last activity date2293 when calling it twice2294 updates last_activity_on just once2295 when last_activity_on is nil2296 updates the last activity date2297 when last_activity_on is stale2298 updates the last activity date2299 when last_activity_on is up to date2300 does not try to update it2301 on GET to /group/project/issues2302/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2303 updates the last activity date2304 when calling it twice2305/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2306/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2307 updates last_activity_on just once2308 when last_activity_on is nil2309/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2310 updates the last activity date2311 when last_activity_on is stale2312/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2313 updates the last activity date2314 when last_activity_on is up to date2315/builds/gitlab-org/gitlab-ee/vendor/ruby/2.6.0/gems/activesupport-5.1.7/lib/active_support/number_helper/rounding_helper.rb:37: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.2316 does not try to update it2317 on GET to /group/project/issues/102318 updates the last activity date2319 when calling it twice2320 updates last_activity_on just once2321 when last_activity_on is nil2322 updates the last activity date2323 when last_activity_on is stale2324 updates the last activity date2325 when last_activity_on is up to date2326 does not try to update it2327 on GET to /group/project/merge_requests2328 updates the last activity date2329 when calling it twice2330 updates last_activity_on just once2331 when last_activity_on is nil2332 updates the last activity date2333 when last_activity_on is stale2334 updates the last activity date2335 when last_activity_on is up to date2336 does not try to update it2337 on GET to /group/project/merge_requests/152338 updates the last activity date2339 when calling it twice2340 updates last_activity_on just once2341 when last_activity_on is nil2342 updates the last activity date2343 when last_activity_on is stale2344 updates the last activity date2345 when last_activity_on is up to date2346 does not try to update it2347API::Wikis2348 GET /projects/:id/wikis2349 when wiki is disabled2350 when user is guest2351 returns 404 Project Not Found2352 when user is developer2353 returns 403 Forbidden2354 when user is maintainer2355 returns 403 Forbidden2356 when wiki is available only for team members2357 when user is guest2358 returns 404 Project Not Found2359 when user is developer2360 return the empty list of wiki pages2361 when wiki has pages2362 returns the list of wiki pages without content2363 returns the list of wiki pages with content2364 when user is maintainer2365 return the empty list of wiki pages2366 when wiki has pages2367 returns the list of wiki pages without content2368 returns the list of wiki pages with content2369 when wiki is available for everyone with access2370 when user is guest2371 returns 404 Project Not Found2372 when user is developer2373 return the empty list of wiki pages2374 when wiki has pages2375 returns the list of wiki pages without content2376 returns the list of wiki pages with content2377 when user is maintainer2378 return the empty list of wiki pages2379 when wiki has pages2380 returns the list of wiki pages without content2381 returns the list of wiki pages with content2382 GET /projects/:id/wikis/:slug2383 when wiki is disabled2384 when user is guest2385 returns 404 Project Not Found2386 when user is developer2387 returns 403 Forbidden2388 when user is maintainer2389 returns 403 Forbidden2390 when wiki is available only for team members2391 when user is guest2392 returns 404 Project Not Found2393 when user is developer2394 returns the wiki page2395 when page is not existing2396 returns 404 Wiki Page Not Found2397 when user is maintainer2398 returns the wiki page2399 when page is not existing2400 returns 404 Wiki Page Not Found2401 when wiki is available for everyone with access2402 when user is guest2403 returns 404 Project Not Found2404 when user is developer2405 returns the wiki page2406 when page is not existing2407 returns 404 Wiki Page Not Found2408 when user is maintainer2409 returns the wiki page2410 when page is not existing2411 returns 404 Wiki Page Not Found2412 POST /projects/:id/wikis2413 when wiki is disabled2414 when user is guest2415 returns 404 Project Not Found2416 when user is developer2417 returns 403 Forbidden2418 when user is maintainer2419 returns 403 Forbidden2420 when wiki is available only for team members2421 when user is guest2422 returns 404 Project Not Found2423 when user is developer2424 creates the wiki page2425 responds with validation error on empty title2426 responds with validation error on empty content2427 when user is maintainer2428 creates the wiki page2429 responds with validation error on empty title2430 responds with validation error on empty content2431 when wiki is available for everyone with access2432 when user is guest2433 returns 404 Project Not Found2434 when user is developer2435 creates the wiki page2436 responds with validation error on empty title2437 responds with validation error on empty content2438 when user is maintainer2439 creates the wiki page2440 responds with validation error on empty title2441 responds with validation error on empty content2442 PUT /projects/:id/wikis/:slug2443 when wiki is disabled2444 when user is guest2445 returns 404 Project Not Found2446 when user is developer2447 returns 403 Forbidden2448 when user is maintainer2449 returns 403 Forbidden2450 when wiki is available only for team members2451 when user is guest2452 returns 404 Project Not Found2453 when user is developer2454 updates the wiki page2455 it updates with wiki with missing title2456 it updates with wiki with missing content2457 it updates with wiki with missing format2458 when page is not existing2459 returns 404 Wiki Page Not Found2460 when user is maintainer2461 updates the wiki page2462 it updates with wiki with missing title2463 it updates with wiki with missing content2464 it updates with wiki with missing format2465 when page is not existing2466 returns 404 Wiki Page Not Found2467 when wiki is available for everyone with access2468 when user is guest2469 returns 404 Project Not Found2470 when user is developer2471 updates the wiki page2472 it updates with wiki with missing title2473 it updates with wiki with missing content2474 it updates with wiki with missing format2475 when page is not existing2476 returns 404 Wiki Page Not Found2477 when user is maintainer2478 updates the wiki page2479 it updates with wiki with missing title2480 it updates with wiki with missing content2481 it updates with wiki with missing format2482 when page is not existing2483 returns 404 Wiki Page Not Found2484 when wiki belongs to a group project2485 updates the wiki page2486 it updates with wiki with missing title2487 it updates with wiki with missing content2488 it updates with wiki with missing format2489 DELETE /projects/:id/wikis/:slug2490 when wiki is disabled2491 when user is guest2492 returns 404 Project Not Found2493 when user is developer2494 returns 403 Forbidden2495 when user is maintainer2496 returns 403 Forbidden2497 when wiki is available only for team members2498 when user is guest2499 returns 404 Project Not Found2500 when user is developer2501 returns 403 Forbidden2502 when user is maintainer2503 returns 204 No Content2504 when wiki is available for everyone with access2505 when user is guest2506 returns 404 Project Not Found2507 when user is developer2508 returns 403 Forbidden2509 when user is maintainer2510 returns 204 No Content2511 when page is not existing2512 returns 404 Wiki Page Not Found2513 when wiki belongs to a group project2514 returns 204 No Content2515 POST /projects/:id/wikis/attachments2516 when wiki is disabled2517 when user is guest2518 returns 404 Project Not Found2519 when user is developer2520 returns 403 Forbidden2521 when user is maintainer2522 returns 403 Forbidden2523 when wiki is available only for team members2524 when user is guest2525 returns 404 Project Not Found2526 when user is developer2527 pushes attachment to the wiki repository2528 responds with validation error on empty file2529 responds with validation error on invalid temp file2530 when user is maintainer2531 pushes attachment to the wiki repository2532 responds with validation error on empty file2533 responds with validation error on invalid temp file2534 when wiki is available for everyone with access2535 when user is guest2536 returns 404 Project Not Found2537 when user is developer2538 pushes attachment to the wiki repository2539 responds with validation error on empty file2540 responds with validation error on invalid temp file2541 when user is maintainer2542 pushes attachment to the wiki repository2543 responds with validation error on empty file2544 responds with validation error on invalid temp file2545API::ProjectExport2546 GET /projects/:project_id/export2547 behaves like when project export is disabled2548 behaves like 404 response2549 returns 4042550 when project export is enabled2551 when user is an admin2552 behaves like get project export status ok2553 is none2554 is started2555 is after_export2556 is finished2557 when user is a maintainer2558 behaves like get project export status ok2559 is none2560 is started2561 is after_export2562 is finished2563 when user is a developer2564 behaves like get project export status denied2565 behaves like 403 response2566 returns 4032567 when user is a reporter2568 behaves like get project export status denied2569 behaves like 403 response2570 returns 4032571 when user is a guest2572 behaves like get project export status denied2573 behaves like 403 response2574 returns 4032575 when user is not a member2576 behaves like get project export status not found2577 behaves like 404 response2578 returns 4042579 GET /projects/:project_id/export/download2580 behaves like when project export is disabled2581 behaves like 404 response2582 returns 4042583 when project export is enabled2584 when user is an admin2585 behaves like get project download by strategy2586 when upload strategy set2587 behaves like get project export upload after action2588 and is uploading2589 downloads2590 when upload complete2591 has removed the export2592 behaves like 404 response2593 returns 4042594 when download strategy set2595 behaves like get project export download2596 downloads2597 behaves like 404 response2598 returns 4042599 behaves like 404 response2600 returns 4042601 when user is a maintainer2602 behaves like get project download by strategy2603 when upload strategy set2604 behaves like get project export upload after action2605 and is uploading2606 downloads2607 when upload complete2608 has removed the export2609 behaves like 404 response2610 returns 4042611 when download strategy set2612 behaves like get project export download2613 downloads2614 behaves like 404 response2615 returns 4042616 behaves like 404 response2617 returns 4042618 when user is a developer2619 behaves like get project export download denied2620 behaves like 403 response2621 returns 4032622 when user is a reporter2623 behaves like get project export download denied2624 behaves like 403 response2625 returns 4032626 when user is a guest2627 behaves like get project export download denied2628 behaves like 403 response2629 returns 4032630 when user is not a member2631 behaves like get project export download not found2632 behaves like 404 response2633 returns 4042634 when an uploader is used2635 behaves like get project download by strategy2636 when upload strategy set2637 behaves like get project export upload after action2638 and is uploading2639 downloads2640 when upload complete2641 has removed the export2642 behaves like 404 response2643 returns 4042644 when download strategy set2645 behaves like get project export download2646 downloads2647 behaves like 404 response2648 returns 4042649 behaves like 404 response2650 returns 4042651 POST /projects/:project_id/export2652 behaves like when project export is disabled2653 behaves like 404 response2654 returns 4042655 when project export is enabled2656 when user is an admin2657 behaves like post project export start2658 with upload strategy2659 starts2660 when params invalid2661 behaves like 400 response2662 returns 4002663 with download strategy2664 starts2665 when user is a maintainer2666 behaves like post project export start2667 with upload strategy2668 starts2669 when params invalid2670 behaves like 400 response2671 returns 4002672 with download strategy2673 starts2674 when user is a developer2675 behaves like post project export start denied2676 behaves like 403 response2677 returns 4032678 when user is a reporter2679 behaves like post project export start denied2680 behaves like 403 response2681 returns 4032682 when user is a guest2683 behaves like post project export start denied2684 behaves like 403 response2685 returns 4032686 when user is not a member2687 behaves like post project export start not found2688 behaves like 404 response2689 returns 4042690 when overriding description2691 starts2692API::Tags2693 GET /projects/:id/repository/tags2694 sorting2695 sorts by descending order by default2696 sorts by ascending order if specified2697 sorts by name in descending order when requested2698 sorts by name in ascending order when requested2699 searching2700 only returns searched tags2701 when unauthenticated and project is public2702 behaves like repository tags2703 returns the repository tags2704 when repository is disabled2705 behaves like 403 response2706 returns 4032707 when unauthenticated and project is private2708 behaves like 404 response2709 returns 4042710 when authenticated as a maintainer2711 behaves like repository tags2712 returns the repository tags2713 when repository is disabled2714 behaves like 403 response2715 returns 4032716 requesting with the escaped project full path2717 behaves like repository tags2718 returns the repository tags2719 when repository is disabled2720 behaves like 403 response2721 returns 4032722 when authenticated as a guest2723 behaves like 403 response2724 returns 4032725 with releases2726 returns an array of project tags with release info2727 GET /projects/:id/repository/tags/:tag_name2728 when unauthenticated and project is public2729 behaves like repository tag2730 returns the repository branch2731 when tag does not exist2732 behaves like 404 response2733 returns 4042734 when repository is disabled2735 behaves like 403 response2736 returns 4032737 when unauthenticated and project is private2738 behaves like 404 response2739 returns 4042740 when authenticated as a maintainer2741 behaves like repository tag2742 returns the repository branch2743 when tag does not exist2744 behaves like 404 response2745 returns 4042746 when repository is disabled2747 behaves like 403 response2748 returns 4032749 requesting with the escaped project full path2750 behaves like repository tag2751 returns the repository branch2752 when tag does not exist2753 behaves like 404 response2754 returns 4042755 when repository is disabled2756 behaves like 403 response2757 returns 4032758 when authenticated as a guest2759 behaves like 403 response2760 returns 4032761 POST /projects/:id/repository/tags2762 when unauthenticated and project is private2763 behaves like 404 response2764 returns 4042765 when authenticated as a guest2766 behaves like 403 response2767 returns 4032768 when authenticated as a maintainer2769 returns 400 if tag name is invalid2770 returns 400 if tag already exists2771 returns 400 if ref name is invalid2772 when a protected branch doesn't already exist2773 behaves like repository new tag2774 creates a new tag2775 when repository is disabled2776 behaves like 403 response2777 returns 4032778 when tag contains a dot2779 behaves like repository new tag2780 creates a new tag2781 when repository is disabled2782 behaves like 403 response2783 returns 4032784 requesting with the escaped project full path2785 behaves like repository new tag2786 creates a new tag2787 when repository is disabled2788 behaves like 403 response2789 returns 4032790 when tag contains a dot2791 behaves like repository new tag2792 creates a new tag2793 when repository is disabled2794 behaves like 403 response2795 returns 4032796 lightweight tags with release notes2797 creates a new tag2798 annotated tag2799 creates a new annotated tag2800 DELETE /projects/:id/repository/tags/:tag_name2801 when authenticated as a maintainer2802 behaves like repository delete tag2803 deletes a tag2804 behaves like 412 response2805 for a modified ressource2806 returns 4122807 for an unmodified ressource2808 returns accepted2809 when tag does not exist2810 behaves like 404 response2811 returns 4042812 when repository is disabled2813 behaves like 403 response2814 returns 4032815 requesting with the escaped project full path2816 behaves like repository delete tag2817 deletes a tag2818 behaves like 412 response2819 for a modified ressource2820 returns 4122821 for an unmodified ressource2822 returns accepted2823 when tag does not exist2824 behaves like 404 response2825 returns 4042826 when repository is disabled2827 behaves like 403 response2828 returns 4032829 POST /projects/:id/repository/tags/:tag_name/release2830 when authenticated as a maintainer2831 behaves like repository new release2832 creates description for existing git tag2833 when tag does not exist2834 behaves like 404 response2835 returns 4042836 when repository is disabled2837 behaves like 403 response2838 returns 4032839 requesting with the escaped project full path2840 behaves like repository new release2841 creates description for existing git tag2842 when tag does not exist2843 behaves like 404 response2844 returns 4042845 when repository is disabled2846 behaves like 403 response2847 returns 4032848 on tag with existing release2849 returns 409 if there is already a release2850 PUT id/repository/tags/:tag_name/release2851 when authenticated as a maintainer2852 behaves like repository update release2853 on tag with existing release2854 updates the release description2855 when tag does not exist2856 behaves like 403 response2857 returns 4032858 when repository is disabled2859 behaves like 403 response2860 returns 4032861 requesting with the escaped project full path2862 behaves like repository update release2863 on tag with existing release2864 updates the release description2865 when tag does not exist2866 behaves like 403 response2867 returns 4032868 when repository is disabled2869 behaves like 403 response2870 returns 4032871 when release does not exist2872 behaves like 403 response2873 returns 4032874Projects::BranchesController2875 POST create with HTML format2876 on creation of a new branch2877 valid branch name, valid source2878 redirects2879 invalid branch name, valid ref2880 redirects2881 valid branch name, invalid ref2882 should render template new2883 invalid branch name, invalid ref2884 should render template new2885 valid branch name with encoded slashes2886 should render template new2887 example at ./spec/controllers/projects/branches_controller_spec.rb:692888 created from the new branch button on issues2889 redirects2890 posts a system note2891 repository-less project2892 redirects to newly created branch2893 redirects to autodeploy setup page2894 when user configured kubernetes from Integration > Kubernetes2895 behaves like same behavior between KubernetesService and Platform::Kubernetes2896 redirects to autodeploy setup page2897 when user configured kubernetes from CI/CD > Clusters2898 behaves like same behavior between KubernetesService and Platform::Kubernetes2899 redirects to autodeploy setup page2900 when create branch service fails2901 doesn't post a system note2902 without issue feature access2903 doesn't post a system note2904 POST create with JSON format2905 with valid params2906 returns a successful 200 response2907 returns the created branch2908 with invalid params2909 returns an unprocessable entity 422 response2910 POST destroy with HTML format2911 returns 3032912 POST destroy2913 as JS2914 valid branch name, valid source2915 should respond with numeric status code 2002916 should be blank2917 valid branch name with unencoded slashes2918 should respond with numeric status code 2002919 should be blank2920 valid branch name with encoded slashes2921 should respond with numeric status code 2002922 should be blank2923 invalid branch name, valid ref2924 should respond with numeric status code 4042925 should be blank2926 as JSON2927 valid branch name, valid source2928 returns JSON response with message2929 should respond with numeric status code 2002930 valid branch name with unencoded slashes2931 returns JSON response with message2932 should respond with numeric status code 2002933 valid branch name with encoded slashes2934 returns JSON response with message2935 should respond with numeric status code 2002936 invalid branch name, valid ref2937 returns JSON response with message2938 should respond with numeric status code 4042939 as HTML2940 redirects to branches path2941 DELETE destroy_all_merged2942 when user is allowed to push2943 redirects to branches2944 starts worker to delete merged branches2945 when user is not allowed to push2946 responds with status 4042947 GET index2948 when rendering a JSON format2949 filters branches by name2950 when cache is enabled yet cold2951 return with a status 2002952 when branch contains an invalid UTF-8 sequence2953 return with a status 2002954 when deprecated sort/search/page parameters are specified2955 returns with a status 301 when sort specified2956 returns with a status 301 when search specified2957 returns with a status 301 when page specified2958Projects::Clusters::ApplicationsController2959 POST create2960 functionality2961 schedule an application installation2962 when cluster do not exists2963 return 4042964 when application is unknown2965 return 4042966 when application is already installing2967 returns 4002968 security2969 behaves like a secure endpoint2970 should be allowed for admin. Expected: 200,201,204,302 Got: 2042971 should be allowed for owner. Expected: 200,201,204,302 Got: 2042972 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2042973 should be denied for developer. Expected: 401,404 Got: 4042974 should be denied for reporter. Expected: 401,404 Got: 4042975 should be denied for guest. Expected: 401,404 Got: 4042976 should be denied for user. Expected: 401,404 Got: 4042977 should be denied for external. Expected: 401,404 Got: 4042978 PATCH update2979 functionality2980 when cluster and app exists2981 schedules an application update2982 when cluster do not exists2983 should respond with status code :not_found (404)2984 when application is unknown2985 should respond with status code :not_found (404)2986 when application is already scheduled2987 should respond with status code :bad_request (400)2988 security2989 behaves like a secure endpoint2990 should be allowed for admin. Expected: 200,201,204,302 Got: 2042991 should be allowed for owner. Expected: 200,201,204,302 Got: 2042992 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2042993 should be denied for developer. Expected: 401,404 Got: 4042994 should be denied for reporter. Expected: 401,404 Got: 4042995 should be denied for guest. Expected: 401,404 Got: 4042996 should be denied for user. Expected: 401,404 Got: 4042997 should be denied for external. Expected: 401,404 Got: 4042998 DELETE destroy2999 functionality3000 when cluster and app exists3001 schedules an application update3002 when cluster do not exists3003 should respond with status code :not_found (404)3004 when application is unknown3005 should respond with status code :not_found (404)3006 when application is already scheduled3007 should respond with status code :bad_request (400)3008 security3009 behaves like a secure endpoint3010 should be allowed for admin. Expected: 200,201,204,302 Got: 2043011 should be allowed for owner. Expected: 200,201,204,302 Got: 2043012 should be allowed for maintainer. Expected: 200,201,204,302 Got: 2043013 should be denied for developer. Expected: 401,404 Got: 4043014 should be denied for reporter. Expected: 401,404 Got: 4043015 should be denied for guest. Expected: 401,404 Got: 4043016 should be denied for user. Expected: 401,404 Got: 4043017 should be denied for external. Expected: 401,404 Got: 4043018API::Triggers3019 POST /projects/:project_id/trigger/pipeline3020 Handles errors3021 returns bad request if token is missing3022 returns not found if project is not found3023 Have a commit3024 creates pipeline3025 returns bad request with no pipeline created if there's no commit for that ref3026 Validates variables3027 validates variables to be a hash3028 validates variables needs to be a map of key-valued strings3029 creates trigger request with variables3030 when legacy trigger3031 creates pipeline3032 when triggering a pipeline from a trigger token3033 does not leak the presence of project when token is for different project3034 creates builds from the ref given in the URL, not in the body3035 when ref contains a dot3036 creates builds from the ref given in the URL, not in the body3037 GET /projects/:id/triggers3038 authenticated user who can access triggers3039 returns a list of triggers with tokens exposed correctly3040 authenticated user with invalid permissions3041 does not return triggers list3042 unauthenticated user3043 does not return triggers list3044 GET /projects/:id/triggers/:trigger_id3045 authenticated user with valid permissions3046 returns trigger details3047 responds with 404 Not Found if requesting non-existing trigger3048 authenticated user with invalid permissions3049 does not return triggers list3050 unauthenticated user3051 does not return triggers list3052 POST /projects/:id/triggers3053 authenticated user with valid permissions3054 with required parameters3055 creates trigger3056 without required parameters3057 does not create trigger3058 authenticated user with invalid permissions3059 does not create trigger3060 unauthenticated user3061 does not create trigger3062 PUT /projects/:id/triggers/:trigger_id3063 authenticated user with valid permissions3064 updates description3065 authenticated user with invalid permissions3066 does not update trigger3067 unauthenticated user3068 does not update trigger3069 POST /projects/:id/triggers/:trigger_id/take_ownership3070 authenticated user with valid permissions3071 updates owner3072 authenticated user with invalid permissions3073 does not update owner3074 unauthenticated user3075 does not update owner3076 DELETE /projects/:id/triggers/:trigger_id3077 authenticated user with valid permissions3078 deletes trigger3079 responds with 404 Not Found if requesting non-existing trigger3080 behaves like 412 response3081 for a modified ressource3082 returns 4123083 for an unmodified ressource3084 returns accepted3085 authenticated user with invalid permissions3086 does not delete trigger3087 unauthenticated user3088 does not delete trigger3089API::Search3090 GET /search3091 when user is not authenticated3092 returns 401 error3093 when scope is not supported3094 returns 400 error3095 when scope is missing3096 returns 400 error3097 with correct params3098 for projects scope3099 behaves like response is correct3100 should respond with numeric status code 2003101 should match response schema "public_api/v4/projects"3102 should include limited pagination headers3103 should eq 13104 for issues scope3105 behaves like response is correct3106 should respond with numeric status code 2003107 should match response schema "public_api/v4/issues"3108 should include limited pagination headers3109 should eq 13110 for merge_requests scope3111 behaves like response is correct3112 should respond with numeric status code 2003113 should match response schema "public_api/v4/merge_requests"3114 should include limited pagination headers3115 should eq 13116 for milestones scope3117 behaves like response is correct3118 should respond with numeric status code 2003119 should match response schema "public_api/v4/milestones"3120 should include limited pagination headers3121 should eq 13122 for users scope3123 behaves like response is correct3124 should respond with numeric status code 2003125 should match response schema "public_api/v4/user/basics"3126 should include limited pagination headers3127 should eq 13128 when users search feature is disabled3129 returns 400 error3130 for snippet_titles scope3131 behaves like response is correct3132 should respond with numeric status code 2003133 should match response schema "public_api/v4/snippets"3134 should include limited pagination headers3135 should eq 13136 for snippet_blobs scope3137 behaves like response is correct3138 should respond with numeric status code 2003139 should match response schema "public_api/v4/snippets"3140 should include limited pagination headers3141 should eq 13142 GET /groups/:id/search3143 when user is not authenticated3144 returns 401 error3145 when scope is not supported3146 returns 400 error3147 when scope is missing3148 returns 400 error3149 when group does not exist3150 returns 404 error3151 when user does can not see the group3152 returns 404 error3153 with correct params3154 for projects scope3155 behaves like response is correct3156 should respond with numeric status code 2003157 should match response schema "public_api/v4/projects"3158 should include limited pagination headers3159 should eq 13160 for issues scope3161 behaves like response is correct3162 should respond with numeric status code 2003163 should match response schema "public_api/v4/issues"3164 should include limited pagination headers3165 should eq 13166 for merge_requests scope3167 behaves like response is correct3168 should respond with numeric status code 2003169 should match response schema "public_api/v4/merge_requests"3170 should include limited pagination headers3171 should eq 13172 for milestones scope3173 behaves like response is correct3174 should respond with numeric status code 2003175 should match response schema "public_api/v4/milestones"3176 should include limited pagination headers3177 should eq 13178 for milestones scope with group path as id3179 behaves like response is correct3180 should respond with numeric status code 2003181 should match response schema "public_api/v4/milestones"3182 should include limited pagination headers3183 should eq 13184 for users scope3185 behaves like response is correct3186 should respond with numeric status code 2003187 should match response schema "public_api/v4/user/basics"3188 should include limited pagination headers3189 should eq 13190 when users search feature is disabled3191 returns 400 error3192 for users scope with group path as id3193 behaves like response is correct3194 should respond with numeric status code 2003195 should match response schema "public_api/v4/user/basics"3196 should include limited pagination headers3197 should eq 13198 GET /projects/:id/search3199 when user is not authenticated3200 returns 401 error3201 when scope is not supported3202 returns 400 error3203 when scope is missing3204 returns 400 error3205 when project does not exist3206 returns 404 error3207 when user does can not see the project3208 returns 404 error3209 with correct params3210 for issues scope3211 behaves like response is correct3212 should respond with numeric status code 2003213 should match response schema "public_api/v4/issues"3214 should include limited pagination headers3215 should eq 13216 for merge_requests scope3217 behaves like response is correct3218 should respond with numeric status code 2003219 should match response schema "public_api/v4/merge_requests"3220 should include limited pagination headers3221 should eq 13222 for milestones scope3223 behaves like response is correct3224 should respond with numeric status code 2003225 should match response schema "public_api/v4/milestones"3226 should include limited pagination headers3227 should eq 13228 for users scope3229 behaves like response is correct3230 should respond with numeric status code 2003231 should match response schema "public_api/v4/user/basics"3232 should include limited pagination headers3233 should eq 13234 when users search feature is disabled3235 returns 400 error3236 for notes scope3237 behaves like response is correct3238 should respond with numeric status code 2003239 should match response schema "public_api/v4/notes"3240 should include limited pagination headers3241 should eq 13242 for wiki_blobs scope3243 behaves like response is correct3244 should respond with numeric status code 2003245 should match response schema "public_api/v4/blobs"3246 should include limited pagination headers3247 should eq 13248 for commits scope3249 behaves like response is correct3250 should respond with numeric status code 2003251 should match response schema "public_api/v4/commits_details"3252 should include limited pagination headers3253 should eq 13254 for commits scope with project path as id3255 behaves like response is correct3256 should respond with numeric status code 2003257 should match response schema "public_api/v4/commits_details"3258 should include limited pagination headers3259 should eq 13260 for blobs scope3261 behaves like response is correct3262 should respond with numeric status code 2003263 should match response schema "public_api/v4/blobs"3264 should include limited pagination headers3265 should eq 23266 filters3267 by filename3268 by path3269 by extension3270 by ref3271Private Project Pages Access3272 Project should be private3273 #private?3274 should be truthy3275 GET /projects/:id/pages_access3276 access depends on the level3277 pages_access_level: 0, with_user: "admin", expected_result: 4033278 correct return value3279 pages_access_level: 0, with_user: "owner", expected_result: 4033280 correct return value3281 pages_access_level: 0, with_user: "master", expected_result: 4033282 correct return value3283 pages_access_level: 0, with_user: "developer", expected_result: 4033284 correct return value3285 pages_access_level: 0, with_user: "reporter", expected_result: 4033286 correct return value3287 pages_access_level: 0, with_user: "guest", expected_result: 4033288 correct return value3289 pages_access_level: 0, with_user: "user", expected_result: 4043290 correct return value3291 pages_access_level: 0, with_user: nil, expected_result: 4043292 correct return value3293 pages_access_level: 30, with_user: "admin", expected_result: 2003294 correct return value3295 pages_access_level: 30, with_user: "owner", expected_result: 2003296 correct return value3297 pages_access_level: 30, with_user: "master", expected_result: 2003298 correct return value3299 pages_access_level: 30, with_user: "developer", expected_result: 2003300 correct return value3301 pages_access_level: 30, with_user: "reporter", expected_result: 2003302 correct return value3303 pages_access_level: 30, with_user: "guest", expected_result: 2003304 correct return value3305 pages_access_level: 30, with_user: "user", expected_result: 4043306 correct return value3307 pages_access_level: 30, with_user: nil, expected_result: 4043308 correct return value3309 pages_access_level: 20, with_user: "admin", expected_result: 2003310 correct return value3311 pages_access_level: 20, with_user: "owner", expected_result: 2003312 correct return value3313 pages_access_level: 20, with_user: "master", expected_result: 2003314 correct return value3315 pages_access_level: 20, with_user: "developer", expected_result: 2003316 correct return value3317 pages_access_level: 20, with_user: "reporter", expected_result: 2003318 correct return value3319 pages_access_level: 20, with_user: "guest", expected_result: 2003320 correct return value3321 pages_access_level: 20, with_user: "user", expected_result: 4043322 correct return value3323 pages_access_level: 20, with_user: nil, expected_result: 4043324 correct return value3325 pages_access_level: 10, with_user: "admin", expected_result: 2003326 correct return value3327 pages_access_level: 10, with_user: "owner", expected_result: 2003328 correct return value3329 pages_access_level: 10, with_user: "master", expected_result: 2003330 correct return value3331 pages_access_level: 10, with_user: "developer", expected_result: 2003332 correct return value3333 pages_access_level: 10, with_user: "reporter", expected_result: 2003334 correct return value3335 pages_access_level: 10, with_user: "guest", expected_result: 2003336 correct return value3337 pages_access_level: 10, with_user: "user", expected_result: 4043338 correct return value3339 pages_access_level: 10, with_user: nil, expected_result: 4043340 correct return value3341Ldap::OmniauthCallbacksController3342 allows sign in3343 respects remember me checkbox3344 with 2FA3345 passes remember_me to the Devise view3346 access denied3347 warns the user3348 doesn't authenticate user3349 sign up3350 is allowed3351API::Labels3352 GET /projects/:id/labels3353 returns all available labels to the project3354 POST /projects/:id/labels3355 returns created label when all params3356 returns created label when only required params3357 creates a prioritized label3358 returns a 400 bad request if name not given3359 returns a 400 bad request if color not given3360 returns 400 for invalid color3361 returns 400 for too long color code3362 returns 400 for invalid name3363 returns 409 if label already exists in group3364 returns 400 for invalid priority3365 returns 409 if label already exists in project3366 DELETE /projects/:id/labels3367 returns 204 for existing label3368 returns 404 for non existing label3369 returns 400 for wrong parameters3370 behaves like 412 response3371 for a modified ressource3372 returns 4123373 for an unmodified ressource3374 returns accepted3375 PUT /projects/:id/labels3376 returns 200 if name and colors and description are changed3377 returns 200 if name is changed3378 returns 200 if colors is changed3379 returns 200 if description is changed3380 returns 200 if priority is changed3381 returns 200 if a priority is added3382 returns 200 if the priority is removed3383 returns 404 if label does not exist3384 returns 400 if no label name given3385 returns 400 if no new parameters given3386 returns 400 for invalid name3387 returns 400 when color code is too short3388 returns 400 for too long color code3389 returns 400 for invalid priority3390 POST /projects/:id/labels/:label_id/subscribe3391 when label_id is a label title3392 subscribes to the label3393 when label_id is a label ID3394 subscribes to the label3395 when user is already subscribed to label3396 returns 3043397 when label ID is not found3398 returns 404 error3399 POST /projects/:id/labels/:label_id/unsubscribe3400 when label_id is a label title3401 unsubscribes from the label3402 when label_id is a label ID3403 unsubscribes from the label3404 when user is already unsubscribed from label3405 returns 3043406 when label ID is not found3407 returns 404 error3408Projects::ProjectMembersController3409 GET index3410 has the project_members address with a 200 status code3411 POST create3412 when user does not have enough rights3413 returns 4043414 when user has enough rights3415 adds user to members3416 adds no user to members3417 PUT update3418 can change the access level to Guest3419 can change the access level to Reporter3420 can change the access level to Developer3421 can change the access level to Maintainer3422 DELETE destroy3423 when member is not found3424 returns 4043425 when member is found3426 when user does not have enough rights3427 returns 4043428 when user has enough rights3429 [HTML] removes user from members3430 [JS] removes user from members3431 DELETE leave3432 when member is not found3433 returns 4043434 when member is found3435 and is not an owner3436 removes user from members3437 and is an owner3438 cannot remove themselves from the project3439 and is a requester3440 removes user from members3441 POST request_access3442 creates a new ProjectMember that is not a team member3443 POST approve3444 when member is not found3445 returns 4043446 when member is found3447 when user does not have enough rights3448 returns 4043449 when user has enough rights3450 adds user to members3451 POST apply_import3452 when user can access source project members3453 imports source project members3454 and the project group has membership lock enabled3455 responds with 4033456 when user is not member of a source project3457 does not import team members3458 responds with not found3459 POST create3460 when creating owner3461 does not create a member3462 when create maintainer3463 creates a member3464 when project group has membership lock enabled3465 responds with 4033466 GET import3467 responds with 2003468 when project group has membership lock enabled3469 responds with 4033470Projects::EnvironmentsController3471 GET index3472 when a request for the HTML is made3473 responds with status code 2003474 expires etag cache to force reload environments list3475 when requesting JSON response for folders3476 with default parameters3477 responds with a flat payload describing available environments3478 sets the polling interval header3479 when a folder-based nested structure is requested3480 responds with a payload containing the latest environment for each folder3481 when requesting available environments scope3482 responds with a payload describing available environments3483 contains values describing environment scopes sizes3484 when requesting stopped environments scope3485 responds with a payload describing stopped environments3486 contains values describing environment scopes sizes3487 GET folder3488 when using default format3489 responds with HTML3490 when using JSON format3491 sorts the subfolders lexicographically3492 GET show3493 with valid id3494 responds with a status code 2003495 with invalid id3496 responds with a status code 4043497 GET edit3498 responds with a status code 2003499 PATCH #update3500 responds with a 3023501 PATCH #stop3502 when env not available3503 returns 4043504 when stop action3505 returns action url3506 when no stop action3507 returns env url3508 GET #terminal3509 with valid id3510 responds with a status code 2003511 loads the terminals for the environment3512 with invalid id3513 responds with a status code 4043514 GET #terminal_websocket_authorize3515 with valid workhorse signature3516 and valid id3517 returns the first terminal for the environment3518 and invalid id3519 returns 4043520 with invalid workhorse signature3521 aborts with an exception3522 GET #metrics_redirect3523 redirects to environment if it exists3524 redirects to empty page if no environment exists3525 GET #metrics3526 when environment has no metrics3527 returns a metrics page3528 when requesting metrics as JSON3529 returns a metrics JSON document3530 when environment has some metrics3531 returns a metrics JSON document3532 GET #additional_metrics3533 when environment has no metrics3534 when requesting metrics as JSON3535 returns a metrics JSON document3536 when environment has some metrics3537 returns a metrics JSON document3538 when time params are missing3539 raises an error when window params are missing3540 when only one time param is provided3541 raises an error when start is missing3542 raises an error when end is missing3543 when :metrics_time_window feature flag is disabled3544 returns a time-window agnostic response3545 metrics_dashboard3546 when prometheus endpoint is disabled3547 responds with status code 4033548 when multiple dashboards is disabled3549 behaves like 200 response3550 returns a json representation of the environment dashboard3551 when the dashboard could not be provided3552 behaves like error response3553 returns an error response3554 when a dashboard param is specified3555 behaves like 200 response3556 returns a json representation of the environment dashboard3557 when multiple dashboards is enabled3558 behaves like 200 response3559 returns a json representation of the environment dashboard3560 behaves like has all dashboards3561 includes an index of all available dashboards3562 when a dashboard could not be provided3563 behaves like error response3564 returns an error response3565 behaves like has all dashboards3566 includes an index of all available dashboards3567 when a dashboard param is specified3568 when the dashboard is available3569 behaves like 200 response3570 returns a json representation of the environment dashboard3571 behaves like has all dashboards3572 includes an index of all available dashboards3573 when the dashboard does not exist3574 behaves like error response3575 returns an error response3576 behaves like has all dashboards3577 includes an index of all available dashboards3578 GET #search3579 responds with status code 2003580 returns matched results3581 when query is review3582 returns matched results3583 when query is empty3584 returns matched results3585 when query is review/patch-33586 responds with status code 2043587 when query is partially matched in the middle of environment name3588 responds with status code 2043589 when query contains a wildcard character3590 prevents wildcard injection3591Projects::MergeRequests::CreationsController3592 GET new3593 merge request that removes a submodule3594 renders new merge request widget template3595 merge request with some commits3596 shows total commits3597 with artificial limits3598 limits total commits3599 GET diffs3600 when merge request cannot be created3601 does not assign diffs var3602 GET pipelines3603 renders JSON including serialized pipelines3604 GET diff_for_path3605 when both branches are in the same project3606 disables diff notes3607 only renders the diffs for the path given3608 when the source branch is in a different project to the target3609 when the path exists in the diff3610 disables diff notes3611 only renders the diffs for the path given3612 when the path does not exist in the diff3613 returns a 4043614 GET #branch_to3615 fetches the commit if a user has access3616 does not load the commit when the user cannot read the project3617API::ProjectTemplates3618 GET /projects/:id/templates/:type3619 returns dockerfiles3620 returns gitignores3621 returns gitlab_ci_ymls3622 returns licenses3623 returns 400 for an unknown template type3624 denies access to an anonymous user on a private project3625 permits access to a developer on a private project3626 GET /projects/:id/templates/licenses3627 returns key and name for the listed licenses3628 GET /projects/:id/templates/:type/:key3629 returns a specific dockerfile3630 returns a specific gitignore3631 returns C++ gitignore3632 returns C++ gitignore for URL-encoded names3633 returns a specific gitlab_ci_yml3634 returns a specific license3635 returns 404 for an unknown specific template3636 denies access to an anonymous user on a private project3637 permits access to a developer on a private project3638 behaves like path traversal attempt3639 rejects invalid filenames3640 behaves like path traversal attempt3641 rejects invalid filenames3642 behaves like path traversal attempt3643 rejects invalid filenames3644 GET /projects/:id/templates/licenses/:key3645 fills placeholders in the license3646Projects::LabelsController3647 GET #index3648 @prioritized_labels3649 does not include labels without priority3650 is sorted by priority, then label title3651 @labels3652 is sorted by label title3653 does not include labels with priority3654 does not include group labels when project does not belong to a group3655 POST #generate3656 personal project3657 creates labels3658 project belonging to a group3659 creates labels3660 POST #toggle_subscription3661 allows user to toggle subscription on project labels3662 allows user to toggle subscription on group labels3663 POST #promote3664 not group reporters3665 denies access3666 group reporter3667 gives access3668 promotes the label3669 renders label name without parsing it as HTML3670 service raising InvalidRecord3671 returns to label list3672 #ensure_canonical_path3673 for a GET request3674 when requesting the canonical path3675 non-show path3676 with exactly matching casing3677 does not redirect3678 with different casing3679 redirects to the correct casing3680 when requesting a redirected path3681 redirects to the canonical path3682 for a non-GET request3683 when requesting the canonical path with different casing3684 does not 4043685 does not redirect to the correct casing3686 when requesting a redirected path3687 returns not found3688Setting WIP status of a merge request3689 returns an error if the user is not allowed to update the merge request3690 marks the merge request as WIP3691 does not do anything if the merge request was already marked `WIP`3692 when passing WIP false as input3693 does not do anything if the merge reqeust was not marked wip3694 unmarks the merge request as `WIP`3695API::Environments3696 GET /projects/:id/environments3697 as member of the project3698 returns project environments3699 as non member3700 returns a 404 status code3701 POST /projects/:id/environments3702 as a member3703 creates a environment with valid params3704 requires name to be passed3705 returns a 400 if environment already exists3706 returns a 400 if slug is specified3707 a non member3708 rejects the request3709 returns a 400 when the required params are missing3710 PUT /projects/:id/environments/:environment_id3711 returns a 200 if name and external_url are changed3712 won't allow slug to be changed3713 won't update the external_url if only the name is passed3714 returns a 404 if the environment does not exist3715 DELETE /projects/:id/environments/:environment_id3716 as a maintainer3717 returns a 200 for an existing environment3718 returns a 404 for non existing id3719 behaves like 412 response3720 for a modified ressource3721 returns 4123722 for an unmodified ressource3723 returns accepted3724 a non member3725 rejects the request3726 POST /projects/:id/environments/:environment_id/stop3727 as a maintainer3728 returns a 404 for non existing id3729 with a stoppable environment3730 returns a 2003731 actually stops the environment3732 a non member3733 rejects the request3734 GET /projects/:id/environments/:environment_id3735 as member of the project3736 returns project environments3737 as non member3738 returns a 404 status code3739Groups::GroupMembersController3740 GET index3741 renders index with 200 status code3742 POST create3743 when user does not have enough rights3744 returns 4033745 when user has enough rights3746 adds user to members3747 adds no user to members3748 PUT update3749 can change the access level to Guest3750 can change the access level to Reporter3751 can change the access level to Developer3752 can change the access level to Maintainer3753 DELETE destroy3754 when member is not found3755 returns 4033756 when member is found3757 when user does not have enough rights3758 returns 4033759 when user has enough rights3760 [HTML] removes user from members3761 [JS] removes user from members3762 DELETE leave3763 when member is not found3764 returns 4043765 when member is found3766 and is not an owner3767 removes user from members3768 supports json request3769 and is an owner3770 cannot removes himself from the group3771 and is a requester3772 removes user from members3773 POST request_access3774 creates a new GroupMember that is not a team member3775 POST approve_access_request3776 when member is not found3777 returns 4033778 when member is found3779 when user does not have enough rights3780 returns 4033781 when user has enough rights3782 adds user to members3783 with external authorization enabled3784 GET #index3785 is successful3786 POST #create3787 is successful3788 PUT #update3789 is successful3790 DELETE #destroy3791 is successful3792 POST #destroy3793 is successful3794 POST #approve_request_access3795 is successful3796 DELETE #leave3797 is successful3798 POST #resend_invite3799 is successful3800Import::GitlabController3801 GET callback3802 updates access token3803 GET status3804 assigns variables3805 does not show already added project3806 POST create3807 returns 200 response when the project is imported successfully3808 returns 422 response when the project could not be imported3809 when the repository owner is the GitLab.com user3810 when the GitLab.com user and GitLab server user's usernames match3811 takes the current user's namespace3812 when the GitLab.com user and GitLab server user's usernames don't match3813 takes the current user's namespace3814 when the repository owner is not the GitLab.com user3815 when a namespace with the GitLab.com user's username already exists3816 when the namespace is owned by the GitLab server user3817 takes the existing namespace3818 when the namespace is not owned by the GitLab server user3819 doesn't create a project3820 when a namespace with the GitLab.com user's username doesn't exist3821 when current user can create namespaces3822 creates the namespace3823 takes the new namespace3824 when current user can't create namespaces3825 doesn't create the namespace3826 takes the current user's namespace3827 user has chosen an existing nested namespace for the project3828 takes the selected namespace and name3829 user has chosen a non-existent nested namespaces for the project3830 takes the selected namespace and name3831 creates the namespaces3832 new namespace has the right parent3833 user has chosen existent and non-existent nested namespaces and name for the project3834 takes the selected namespace and name3835 creates the namespaces3836 when user can not create projects in the chosen namespace3837 returns 422 response3838API::GroupBoards3839 behaves like group and project boards3840 GET /groups/:id/boards3841 when unauthenticated3842 returns authentication error3843 when authenticated3844 returns the issue boards3845 GET /groups/:id/boards/:board_id3846 get a single board by id3847 GET /groups/:id/boards/:board_id/lists3848 returns issue board lists3849 returns 404 if board not found3850 GET /groups/:id/boards/:board_id/lists/:list_id3851 returns a list3852 returns 404 if list not found3853 POST /groups/:id/boards/lists3854 creates a new issue board list for labels3855 returns 400 when creating a new list if label_id is invalid3856 returns 403 for members with guest role3857 PUT /groups/:id/boards/:board_id/lists/:list_id to update only position3858 updates a list3859 returns 404 error if list id not found3860 returns 403 for members with guest role3861 DELETE /groups/:id/boards/lists/:list_id3862 rejects a non member from deleting a list3863 rejects a user with guest role from deleting a list3864 returns 404 error if list id not found3865 when the user is parent owner3866 deletes the list if an admin requests it3867 behaves like 412 response3868 for a modified ressource3869 returns 4123870 for an unmodified ressource3871 returns accepted3872 POST /groups/:id/boards/lists3873 does not create lists for child project labels3874Projects::TagsController3875 GET index3876 returns the tags for the page3877 returns releases matching those tags3878 GET show3879 valid tag3880 should respond with 2003881 invalid tag3882 should respond with 4043883 private project with token authentication3884 behaves like authenticates sessionless user3885 doesn't log the user in otherwise3886 when the 'personal_access_token' param is populated with the personal access token3887 logs the user in3888 when the personal access token has no api scope3889 does not log the user in3890 when the 'PERSONAL_ACCESS_TOKEN' header is populated with the personal access token3891 logs the user in3892 public project with token authentication3893 behaves like authenticates sessionless user3894 when the 'personal_access_token' param is populated with the personal access token3895 logs the user in3896 does not log the user in if page is public3897 when the 'PERSONAL_ACCESS_TOKEN' header is populated with the personal access token3898 logs the user in3899Projects::BoardsController3900 GET index3901 creates a new project board when project does not have one3902 sets boards_endpoint instance variable to a boards path3903 when format is HTML3904 renders template3905 with unauthorized user3906 returns a not found 404 response3907 when user is signed out3908 renders template3909 when format is JSON3910 returns a list of project boards3911 with unauthorized user3912 returns a not found 404 response3913 issues are disabled3914 returns a not found 404 response3915 behaves like unauthorized when external service denies access3916 allows access when the authorization service allows it3917 allows access when the authorization service denies it3918 GET show3919 sets boards_endpoint instance variable to a boards path3920 when format is HTML3921 renders template3922 with unauthorized user3923 returns a not found 404 response3924 when user is signed out3925 does not save visit3926 when format is JSON3927 returns project board3928 with unauthorized user3929 returns a not found 404 response3930 when board does not belong to project3931 returns a not found 404 response3932OpenID Connect requests3933 Application without OpenID scope3934 token response does not include an ID token3935 userinfo response is unauthorized3936 Application with OpenID scope3937 token response includes an ID token3938 UserInfo payload3939 includes all user information and group memberships3940 does not include any unknown claims3941 includes email and email_verified claims3942 has public email in email claim3943 has false in email_verified claim3944 ID token payload3945 includes the subject claims3946 includes the GitLab root URL3947 includes the time of the last authentication3948 does not include any unknown properties3949 when user is blocked3950 returns authentication error3951 when user is ldap_blocked3952 returns authentication error3953 OpenID configuration information3954 correctly returns the configuration3955 Application with OpenID and email scopes3956 token response includes an ID token3957 UserInfo payload3958 includes the email and email_verified claims3959 has private email in email claim3960 has true in email_verified claim3961API::Boards3962 behaves like group and project boards3963 GET /projects/:id/boards3964 when unauthenticated3965 returns authentication error3966 when authenticated3967 returns the issue boards3968 GET /projects/:id/boards/:board_id3969 get a single board by id3970 GET /projects/:id/boards/:board_id/lists3971 returns issue board lists3972 returns 404 if board not found3973 GET /projects/:id/boards/:board_id/lists/:list_id3974 returns a list3975 returns 404 if list not found3976 POST /projects/:id/boards/lists3977 creates a new issue board list for labels3978 returns 400 when creating a new list if label_id is invalid3979 returns 403 for members with guest role3980 PUT /projects/:id/boards/:board_id/lists/:list_id to update only position3981 updates a list3982 returns 404 error if list id not found3983 returns 403 for members with guest role3984 DELETE /projects/:id/boards/lists/:list_id3985 rejects a non member from deleting a list3986 rejects a user with guest role from deleting a list3987 returns 404 error if list id not found3988 when the user is parent owner3989 deletes the list if an admin requests it3990 behaves like 412 response3991 for a modified ressource3992 returns 4123993 for an unmodified ressource3994 returns accepted3995 POST /projects/:id/boards/lists3996 creates a new issue board list for group labels3997 creates a new board list for ancestor group labels3998 POST /groups/:id/boards/lists3999 creates a new board list for ancestor group labels4000Projects::ArtifactsController4001 GET download4002 when no file type is supplied4003 sends the artifacts file4004 when a file type is supplied4005 when an invalid file type is supplied4006 returns 4044007 when codequality file type is supplied4008 when file is stored locally4009 sends the codequality report4010 when file is stored remotely4011 sends the codequality report4012 when proxied4013 sends the codequality report4014 GET browse4015 when the directory exists4016 renders the browse view4017 when the directory does not exist4018 responds Not Found4019 GET file4020 when the file is served by GitLab Pages4021 when the file exists4022 renders the file view4023 when the file does not exist4024 responds Not Found4025 when the file is served through Rails4026 when the file exists4027 renders the file view4028 when the file does not exist4029 responds Not Found4030 when the project is private4031 does not redirect the request4032 GET raw4033 when the file exists4034 when using local file storage4035 behaves like a valid file4036 serves the file using workhorse4037 when using remote file storage4038 behaves like a valid file4039 serves the file using workhorse4040 GET latest_succeeded4041 cannot find the job4042 has no such ref4043 behaves like not found4044 should respond with numeric status code not_found4045 has no such job4046 behaves like not found4047 should respond with numeric status code not_found4048 has no path4049 behaves like not found4050 should respond with numeric status code not_found4051 found the job and redirect4052 with regular branch4053 behaves like redirect to the job4054 redirects4055 with branch name containing slash4056 behaves like redirect to the job4057 redirects4058 with branch name and path containing slashes4059 redirects4060API::Namespaces4061 GET /namespaces4062 when unauthenticated4063 returns authentication error4064 when authenticated as admin4065 returns correct attributes4066 admin: returns an array of all namespaces4067 admin: returns an array of matched namespaces4068 when authenticated as a regular user4069 returns correct attributes when user can admin group4070 returns correct attributes when user cannot admin group4071 user: returns an array of namespaces4072 admin: returns an array of matched namespaces4073 GET /namespaces/:id4074 when unauthenticated4075 returns authentication error4076 when authenticated as regular user4077 when requested namespace is not owned by user4078 when requesting group4079 returns not-found4080 when requesting personal namespace4081 returns not-found4082 when requested namespace is owned by user4083 behaves like namespace reader4084 when namespace exists4085 when requested by ID4086 when requesting group4087 behaves like can access namespace4088 returns namespace details4089 when requesting personal namespace4090 behaves like can access namespace4091 returns namespace details4092 when requested by path4093 when requesting group4094 behaves like can access namespace4095 returns namespace details4096 when requesting personal namespace4097 behaves like can access namespace4098 returns namespace details4099 when namespace doesn't exist4100 returns not-found4101 when authenticated as admin4102 when requested namespace is not owned by user4103 when requesting group4104 behaves like can access namespace4105 returns namespace details4106 when requesting personal namespace4107 behaves like can access namespace4108 returns namespace details4109 when requested namespace is owned by user4110 behaves like namespace reader4111 when namespace exists4112 when requested by ID4113 when requesting group4114 behaves like can access namespace4115 returns namespace details4116 when requesting personal namespace4117 behaves like can access namespace4118 returns namespace details4119 when requested by path4120 when requesting group4121 behaves like can access namespace4122 returns namespace details4123 when requesting personal namespace4124 behaves like can access namespace4125 returns namespace details4126 when namespace doesn't exist4127 returns not-found4128Projects::GroupLinksController4129 #create4130 when project is not allowed to be shared with a group4131 responds with status 4044132 when user has access to group he want to link project to4133 links project with selected group4134 redirects to project group links page4135 when user doers not have access to group he want to link to4136 renders 4044137 does not share project with that group4138 when user does not have access to the public group4139 renders 4044140 does not share project with that group4141 when project group id equal link group id4142 does not share project with selected group4143 redirects to project group links page4144 when link group id is not present4145 redirects to project group links page4146 when link is not persisted in the database4147 redirects to project group links page4148Projects::Tags::ReleasesController4149 GET #edit4150 initializes a new release4151 retrieves an existing release4152 PUT #update4153 updates release note description4154 creates a release if one does not exist4155 sets the release name, sha, and author for a new release4156 deletes release when description is empty4157 does nothing when description is empty and the tag does not have a release4158NotificationSettingsController4159 #create4160 when not authorized4161 redirects to sign in page4162 when authorized4163 for projects4164 creates notification setting4165 with custom settings4166 creates notification setting4167 for groups4168 creates notification setting4169 with custom settings4170 creates notification setting4171 not authorized4172 returns 4044173 #update4174 when not authorized4175 redirects to sign in page4176 when authorized4177 returns success4178 and setting custom notification setting4179 returns success4180 not authorized4181 returns 4044182Groups::BoardsController4183 GET index4184 creates a new board when group does not have one4185 when format is HTML4186 renders template4187 with unauthorized user4188 returns a not found 404 response4189 when user is signed out4190 renders template4191 when format is JSON4192 return an array with one group board4193 with unauthorized user4194 returns a not found 404 response4195 behaves like disabled when using an external authorization service4196 works when the feature is not enabled4197 renders a 404 with a message when the feature is enabled4198 GET show4199 when format is HTML4200 renders template4201 with unauthorized user4202 returns a not found 404 response4203 when user is signed out4204 does not save visit4205 when format is JSON4206 returns project board4207 with unauthorized user4208 returns a not found 404 response4209 when board does not belong to group4210 returns a not found 404 response4211 behaves like disabled when using an external authorization service4212 works when the feature is not enabled4213 renders a 404 with a message when the feature is enabled4214API::Submodules4215 PUT /projects/:id/repository/submodule/:submodule4216 when unauthenticated4217 returns 4014218 when authenticated as a guest4219 returns 4034220 when authenticated as a developer4221 returns 400 if params is missing4222 returns 400 if branch is missing4223 returns 400 if commit_sha is missing4224 returns the commit4225 when the submodule name is urlencoded4226 returns the commit4227RoutableActions4228 #find_routable!4229 when signed in4230 with a project4231 prevents access when not authorized4232 when authorized4233 returns the project4234 allows access4235 with a group4236 prevents access when not authorized4237 when authorized4238 returns the group4239 allows access4240 with a user4241 allows access when authorized4242 prevents access when unauthorized4243 when not signed in4244 redirects to sign in for private resouces4245 #perform_not_found_actions4246 performs multiple checks4247 performs checks in the context of the controller4248 skips checks once one has resulted in a render/redirect4249Projects::AvatarsController4250 GET #show4251 when repository has no avatar4252 shows 4044253 when repository has an avatar4254 when the avatar is stored in the repository4255 sends the avatar4256 when the avatar is stored in lfs4257 behaves like repository lfs file load4258 when file is stored in lfs4259 when lfs is enabled4260 when project has access4261 serves the file4262 and lfs uses object storage4263 responds with redirect to file4264 sets content disposition4265 when project does not have access4266 does not serve the file4267 when lfs is not enabled4268 delivers ASCII file4269 DELETE #destroy4270 removes avatar from DB by calling destroy4271Groups::Settings::CiCdController4272 GET #show4273 when user is owner4274 renders show with 200 status code4275 when user is not owner4276 renders a 4044277 external authorization4278 renders show with 200 status code4279 PUT #reset_registration_token4280 when user is owner4281 resets runner registration token4282 redirects the user to admin runners page4283 when user is not owner4284 renders a 4044285 PATCH #update_auto_devops4286 when user does not have enough permission4287 should respond with numeric status code 4044288 when user has enough privileges4289 should redirect to "/groups/group239/-/settings/ci_cd"4290 when service execution went wrong4291 returns a flash alert4292 when service execution was successful4293 returns a flash notice4294 when changing auto devops value4295 when explicitly enabling auto devops4296 updates group attribute4297 when explicitly disabling auto devops4298 updates group attribute4299Projects::CycleAnalyticsController4300 cycle analytics not set up flag4301 with no data4302 is true4303 with data4304 is false4305Projects::StagesController4306 POST #play_manual.json4307 when user does not have access4308 returns not authorized4309 when user has access4310 when the stage does not exists4311 fails to play all manual4312 when the stage exists4313 starts all manual jobs4314Projects::ErrorTrackingController4315 GET #index4316 html4317 renders index with 200 status code4318 with insufficient permissions4319 returns 4044320 with an anonymous user4321 redirects to sign-in page4322 format json4323 service result is successful4324 returns a list of errors4325 service result is erroneous4326 without http_status4327 returns 400 with message4328 with explicit http_status4329 returns http_status with message4330 POST #list_projects4331 with insufficient permissions4332 returns 4044333 with an anonymous user4334 redirects to sign-in page4335 with authorized user4336 service result is successful4337 returns a list of projects4338 service result is erroneous4339 without http_status4340 returns 400 with message4341 with explicit http_status4342 returns http_status with message4343ChecksCollaboration4344 #can_collaborate_with_project?4345 is true if the user can push to the project4346 is true when the user can push to a branch of the project4347 when the user has forked the project4348 is true4349 is false when the project is archived4350Projects::RefsController4351 GET #logs_tree4352 never throws MissingTemplate4353 renders 404 for non-JS requests4354 renders JS4355 renders JSON4356Import::BitbucketServerController4357 GET new4358 shows the input form4359 POST create4360 returns the new project4361 returns an error when an invalid project key is used4362 returns an error when an invalid repository slug is used4363 returns an error when the project cannot be found4364 returns an error when the project cannot be saved4365 returns an error when the server can't be contacted4366 with project key with tildes4367 successfully creates a project4368 POST configure4369 clears out existing session4370 sets the session variables4371 GET status4372 assigns repository categories4373 GET jobs4374 returns a list of imported projects4375API::Markdown4376 POST /markdown4377 when arguments are invalid4378 when text is missing4379 responses with 400 Bad Request4380 when project is not found4381 behaves like 404 Project Not Found4382 responses with 404 Not Found4383 when arguments are valid4384 when not using gfm4385 without project4386 behaves like rendered markdown text without GFM4387 renders markdown text4388 with project4389 when not authorized4390 behaves like 404 Project Not Found4391 responses with 404 Not Found4392 when authorized4393 behaves like rendered markdown text without GFM4394 renders markdown text4395 when using gfm4396 without project4397 renders markdown text4398 with project4399 renders markdown text4400 with a public project and confidential issue4401 when not logged in4402 behaves like user without proper access4403 does not render the title or link4404 when logged in as user without access4405 behaves like user without proper access4406 does not render the title or link4407 when logged in as author4408 renders the title or link4409Projects::Settings::IntegrationsController4410 GET show4411 renders show with 200 status code4412Projects::AutocompleteSourcesController4413 GET members4414 returns an array of member object4415 GET milestones4416 lists milestones4417 when user cannot read project issues and merge requests4418 renders 4044419Admin::ImpersonationsController4420 DELETE destroy4421 when not signed in4422 redirects to the sign in page4423 when signed in4424 when not impersonating4425 responds with status 4044426 doesn't sign us in4427 when impersonating4428 when the impersonator is not admin (anymore)4429 responds with status 4044430 doesn't sign us in as the impersonator4431 when the impersonator is admin4432 when the impersonator is blocked4433 responds with status 4044434 doesn't sign us in as the impersonator4435 when the impersonator is not blocked4436 behaves like successfully stops impersonating4437 redirects to the impersonated user's page4438 signs us in as the impersonator4439 and the user has a temporary oauth e-mail address4440 behaves like successfully stops impersonating4441 redirects to the impersonated user's page4442 signs us in as the impersonator4443Projects::MattermostsController4444 GET #new4445 accepts the request4446 POST #create4447 no request can be made to mattermost4448 shows the error4449 the request is succesull4450 redirects to the new page4451Projects::HooksController4452 #index4453 redirects to settings/integrations page4454 #create4455 sets all parameters4456InvitesController4457 GET #accept4458 accepts user4459 GET #decline4460 declines user4461Profiles::KeysController4462 #get_keys4463 non existent user4464 does not generally work4465 user with no keys4466 does generally work4467 renders all keys separated with a new line4468 responds with text/plain content type4469 user with keys4470 does generally work4471 renders all non deploy keys separated with a new line4472 does not render the comment of the key4473 responds with text/plain content type4474AbuseReportsController4475 GET new4476 when the user has already been deleted4477 redirects the reporter to root_path4478 when the user has already been blocked4479 redirects the reporter to the user's profile4480 POST create4481 with valid attributes4482 saves the abuse report4483 calls notify4484 redirects back to the reported user4485 with invalid attributes4486 renders new4487Admin::SpamLogsController4488 #index4489 lists all spam logs4490 #destroy4491 removes only the spam log when removing log4492 removes user and his spam logs when removing the user4493 #mark_as_ham4494 submits the log as ham4495RootController4496 GET index4497 when user is not logged in4498 redirects to the sign-in page4499 when a custom home page URL is defined4500 redirects the user to the custom home page URL4501 with a user4502 who has customized their dashboard setting for starred projects4503 redirects to their specified dashboard4504 who has customized their dashboard setting for project activities4505 redirects to the activity list4506 who has customized their dashboard setting for starred project activities4507 redirects to the activity list4508 who has customized their dashboard setting for groups4509 redirects to their group list4510 who has customized their dashboard setting for todos4511 redirects to their todo list4512 who has customized their dashboard setting for assigned issues4513 redirects to their assigned issues4514 who has customized their dashboard setting for assigned merge requests4515 redirects to their assigned merge requests4516 who uses the default dashboard setting4517 renders the default dashboard4518Profiles::EmailsController4519 #create4520 sends an email confirmation4521 #resend_confirmation_instructions4522 resends an email confirmation4523 unable to resend an email confirmation4524API::Avatar4525 GET /avatar4526 avatar uploaded to GitLab4527 user with matching public email address4528 returns the avatar url4529 no user with matching public email address4530 returns the avatar url from Gravatar4531 avatar uploaded to Gravatar4532 user with matching public email address4533 returns the avatar url from Gravatar4534 no user with matching public email address4535 returns the avatar url from Gravatar4536 public visibility level restricted4537 when authenticated4538 returns the avatar url4539 when unauthenticated4540 behaves like 403 response4541 returns 4034542HealthController4543 #readiness4544 accessed from whitelisted ip4545 behaves like endpoint responding with readiness data4546 responds with readiness checks data4547 accessed from not whitelisted ip4548 responds with resource not found4549 accessed with valid token4550 token passed in request header4551 behaves like endpoint responding with readiness data4552 responds with readiness checks data4553 token passed as URL param4554 behaves like endpoint responding with readiness data4555 responds with readiness checks data4556 #liveness4557 accessed from whitelisted ip4558 behaves like endpoint responding with liveness data4559 responds with liveness checks data4560 accessed from not whitelisted ip4561 responds with resource not found4562 accessed with valid token4563 token passed in request header4564 behaves like endpoint responding with liveness data4565 responds with liveness checks data4566 token passed as URL param4567 behaves like endpoint responding with liveness data4568 responds with liveness checks data4569HealthCheckController4570 GET #index4571 when services are up but accessed from outside whitelisted ips4572 returns a not found page4573 when services are accessed with token4574 supports passing the token in the header4575 supports passing the token in query params4576 when services are up and accessed from whitelisted ips4577 supports successful plaintext response4578 supports successful json response4579 supports successful xml response4580 supports successful responses for specific checks4581 when a service is down but NO access token4582 returns a not found page4583 when a service is down and an endpoint is accessed from whitelisted ip4584 supports failure plaintext response4585 supports failure json response4586 supports failure xml response4587 supports failure responses for specific checks4588OAuth tokens4589 Resource Owner Password Credentials4590 when user has 2FA enabled4591 does not create an access token4592 when user does not have 2FA enabled4593 creates an access token4594 when user is blocked4595 does not create an access token4596 when user is ldap_blocked4597 does not create an access token4598API::Version4599 with graphql enabled4600 when unauthenticated4601 returns authentication error4602 when authenticated4603 returns the version information4604 with graphql disabled4605 when unauthenticated4606 returns authentication error4607 when authenticated4608 returns the version information4609Projects::GitHttpController4610 HEAD #info_refs4611 returns 4034612SendFileUpload4613 #send_upload4614 when local file is used4615 sends a file4616 with inline image4617 sends a file with inline disposition4618 with attachment4619 sends a file with content-type of text/plain4620 with non-ASCII encoded filename4621 sends content-disposition for non-ASCII encoded filenames4622 with a proxied file in object storage4623 sends a file with a custom type4624 when remote file is used4625 and proxying is enabled4626 behaves like proxied file4627 sends a file4628 and proxying is disabled4629 sends a file4630 with proxy requested4631 behaves like proxied file4632 sends a file4633PasswordsController4634 #check_password_authentication_available4635 when password authentication is disabled for the web interface and Git4636 prevents a password reset4637 when reset email belongs to an ldap user4638 prevents a password reset4639Admin::HealthCheckController4640 GET show4641 loads the health information4642Knapsack report was generated. Preview:4643{4644 "spec/requests/api/commits_spec.rb": 153.26115894317627,4645 "spec/controllers/projects/notes_controller_spec.rb": 79.28476691246033,4646 "spec/requests/git_http_spec.rb": 74.77204179763794,4647 "spec/requests/api/todos_spec.rb": 53.2595751285553,4648 "spec/requests/user_activity_spec.rb": 41.72615599632263,4649 "spec/requests/api/wikis_spec.rb": 41.42748737335205,4650 "spec/requests/api/project_export_spec.rb": 33.90793418884277,4651 "spec/requests/api/tags_spec.rb": 28.666309595108032,4652 "spec/controllers/projects/branches_controller_spec.rb": 28.853572607040405,4653 "spec/controllers/projects/clusters/applications_controller_spec.rb": 26.61517310142517,4654 "spec/requests/api/triggers_spec.rb": 22.84108853340149,4655 "spec/requests/api/search_spec.rb": 17.195844650268555,4656 "spec/requests/api/pages/private_access_spec.rb": 14.823410034179688,4657 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 22.39675259590149,4658 "spec/requests/api/labels_spec.rb": 12.45235276222229,4659 "spec/controllers/projects/project_members_controller_spec.rb": 11.149030685424805,4660 "spec/controllers/projects/environments_controller_spec.rb": 10.47317385673523,4661 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 11.51161241531372,4662 "spec/requests/api/project_templates_spec.rb": 10.30298399925232,4663 "spec/controllers/projects/labels_controller_spec.rb": 7.897040843963623,4664 "spec/requests/api/graphql/mutations/merge_requests/set_wip_spec.rb": 8.222076654434204,4665 "spec/requests/api/environments_spec.rb": 7.5757763385772705,4666 "spec/controllers/groups/group_members_controller_spec.rb": 7.636008977890015,4667 "spec/controllers/import/gitlab_controller_spec.rb": 5.9974634647369385,4668 "spec/requests/api/group_boards_spec.rb": 5.610491752624512,4669 "spec/controllers/projects/tags_controller_spec.rb": 6.531649589538574,4670 "spec/controllers/projects/boards_controller_spec.rb": 6.063944101333618,4671 "spec/requests/openid_connect_spec.rb": 5.572468280792236,4672 "spec/requests/api/boards_spec.rb": 4.816704511642456,4673 "spec/controllers/projects/artifacts_controller_spec.rb": 5.5058746337890625,4674 "spec/requests/api/namespaces_spec.rb": 4.288372755050659,4675 "spec/controllers/projects/group_links_controller_spec.rb": 4.218448162078857,4676 "spec/controllers/projects/tags/releases_controller_spec.rb": 3.774876117706299,4677 "spec/controllers/notification_settings_controller_spec.rb": 3.4744365215301514,4678 "spec/controllers/groups/boards_controller_spec.rb": 3.222132682800293,4679 "spec/requests/api/submodules_spec.rb": 2.6690895557403564,4680 "spec/controllers/concerns/routable_actions_spec.rb": 3.4777610301971436,4681 "spec/controllers/projects/avatars_controller_spec.rb": 2.747313976287842,4682 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 2.605123996734619,4683 "spec/controllers/projects/cycle_analytics_controller_spec.rb": 2.4382362365722656,4684 "spec/controllers/projects/stages_controller_spec.rb": 2.071571111679077,4685 "spec/controllers/projects/error_tracking_controller_spec.rb": 1.5660748481750488,4686 "spec/controllers/concerns/checks_collaboration_spec.rb": 1.6938016414642334,4687 "spec/controllers/projects/refs_controller_spec.rb": 1.972200870513916,4688 "spec/controllers/import/bitbucket_server_controller_spec.rb": 1.3720297813415527,4689 "spec/requests/api/markdown_spec.rb": 1.4690470695495605,4690 "spec/controllers/projects/settings/integrations_controller_spec.rb": 1.4740979671478271,4691 "spec/controllers/projects/autocomplete_sources_controller_spec.rb": 0.6972801685333252,4692 "spec/controllers/admin/impersonations_controller_spec.rb": 1.2131671905517578,4693 "spec/controllers/projects/mattermosts_controller_spec.rb": 1.0125560760498047,4694 "spec/controllers/projects/hooks_controller_spec.rb": 0.654449462890625,4695 "spec/controllers/invites_controller_spec.rb": 0.8486113548278809,4696 "spec/controllers/profiles/keys_controller_spec.rb": 1.0175387859344482,4697 "spec/controllers/abuse_reports_controller_spec.rb": 0.7992253303527832,4698 "spec/controllers/admin/spam_logs_controller_spec.rb": 0.5785281658172607,4699 "spec/controllers/root_controller_spec.rb": 0.627406120300293,4700 "spec/controllers/profiles/emails_controller_spec.rb": 0.5407280921936035,4701 "spec/requests/api/avatar_spec.rb": 0.36728668212890625,4702 "spec/controllers/health_controller_spec.rb": 0.589423418045044,4703 "spec/controllers/health_check_controller_spec.rb": 0.3087458610534668,4704 "spec/requests/api/oauth_tokens_spec.rb": 0.2817373275756836,4705 "spec/requests/api/version_spec.rb": 0.3815348148345947,4706 "spec/controllers/projects/git_http_controller_spec.rb": 0.23260927200317383,4707 "spec/controllers/concerns/send_file_upload_spec.rb": 0.1698307991027832,4708 "spec/controllers/passwords_controller_spec.rb": 0.11942005157470703,4709 "spec/controllers/admin/health_check_controller_spec.rb": 0.101642370223999024710}4711Knapsack global time execution for tests: 13m 41s4712Finished in 14 minutes 16 seconds (files took 19.31 seconds to load)47131534 examples, 0 failures4714$ date4715Wed May 29 01:41:38 UTC 20194717$ date4718Wed May 29 01:41:39 UTC 20194721coverage/: found 5 matching files 4722knapsack/: found 5 matching files 4723rspec_flaky/: found 4 matching files 4724rspec_profiling/: found 1 matching files 4725WARNING: tmp/capybara/: no matching files 4726Uploading artifacts to coordinator... ok id=221133572 responseStatus=201 Created token=JAfKFszy4727Uploading artifacts...4728junit_rspec.xml: found 1 matching files 4729Uploading artifacts to coordinator... ok id=221133572 responseStatus=201 Created token=JAfKFszy4730Job succeeded