rspec unit pg9-foss 19/20
Passed Started
by
@scop
Ville Skyttä
1Running with gitlab-runner 12.5.0 (577f813d)2 on docker-auto-scale-com 9538b0ab 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...
02:34
4Starting service postgres:9.6 ...5Pulling docker image postgres:9.6 ...6Using docker image sha256:1ac5eccdbc65c05dcbd077d2425b0091fb0d15f6141c7ea79bb109d0cfc75eb4 for postgres:9.6 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:a49ff3e0d85f0b60ddf225db3c134ed1735a3385d9cc617457b21875673da2f0 for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ...13Using docker image sha256:309fcbd533cc4a36554db848bbc35796d47485875df57f351b99cce97cca8c67 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33 ... 14 Running on runner-9538b0ab-project-15854187-concurrent-0 via runner-9538b0ab-gsrm-1576225849-18c27305...
00:07
16Fetching changes with git depth set to 20...17Initialized empty Git repository in /builds/scop/gitlab/.git/18Created fresh repository.20 * [new ref] refs/pipelines/102818207 -> refs/pipelines/10281820721 * [new branch] wiki-page-message -> origin/wiki-page-message22Checking out 60ee4438 as wiki-page-message...23Skipping Git submodules setup25Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/15854187/debian-stretch-ruby-2.6.3-node-12.x 26Successfully extracted cache28Downloading artifacts from coordinator... ok id=378363693 responseStatus=200 OK token=rqsxhKfk29Downloading artifacts for retrieve-tests-metadata (378363698)...30Downloading artifacts from coordinator... ok id=378363698 responseStatus=200 OK token=PiMc4fDc31Downloading artifacts for setup-test-env (378363695)...32Downloading artifacts from coordinator... ok id=378363695 responseStatus=200 OK token=HyjZrpDS33WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 35$ date36Fri Dec 13 08:37:18 UTC 201937$ export GOPATH=$CI_PROJECT_DIR/.go38$ mkdir -p $GOPATH39$ source scripts/utils.sh40$ source scripts/prepare_build.sh41Bundler version 1.17.242Warning: 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`.43The Gemfile's dependencies are satisfied44Successfully installed knapsack-1.18.0451 gem installed46CREATE ROLE47GRANT48Dropped database 'gitlabhq_test'49Created database 'gitlabhq_test'50-- enable_extension("pg_trgm")51 -> 0.0311s52-- enable_extension("plpgsql")53 -> 0.0027s54-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})55 -> 0.0083s56-- create_table("alerts_service_data", {:force=>:cascade})57 -> 0.0047s58-- create_table("allowed_email_domains", {:force=>:cascade})59 -> 0.0043s60-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})61 -> 0.0135s62-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})63 -> 0.0132s64-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})65 -> 0.0069s66-- create_table("analytics_repository_file_commits", {:force=>:cascade})67 -> 0.0061s68-- create_table("analytics_repository_file_edits", {:force=>:cascade})69 -> 0.0066s70-- create_table("analytics_repository_files", {:force=>:cascade})71 -> 0.0045s72-- create_table("appearances", {:id=>:serial, :force=>:cascade})73 -> 0.0036s74-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})75 -> 0.0025s76-- create_table("application_settings", {:id=>:serial, :force=>:cascade})77 -> 0.1217s78-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})79 -> 0.0062s80-- create_table("approval_merge_request_rules", {:force=>:cascade})81 -> 0.0149s82-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})83 -> 0.0062s84-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})85 -> 0.0060s86-- create_table("approval_merge_request_rules_users", {:force=>:cascade})87 -> 0.0060s88-- create_table("approval_project_rules", {:force=>:cascade})89 -> 0.0112s90-- create_table("approval_project_rules_groups", {:force=>:cascade})91 -> 0.0075s92-- create_table("approval_project_rules_users", {:force=>:cascade})93 -> 0.0064s94-- create_table("approvals", {:id=>:serial, :force=>:cascade})95 -> 0.0065s96-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})97 -> 0.0069s98-- create_table("approvers", {:id=>:serial, :force=>:cascade})99 -> 0.0066s100-- create_table("audit_events", {:id=>:serial, :force=>:cascade})101 -> 0.0070s102-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})103 -> 0.0069s104-- create_table("aws_roles", {:primary_key=>"user_id", :id=>:integer, :default=>nil, :force=>:cascade})105 -> 0.0058s106-- create_table("badges", {:id=>:serial, :force=>:cascade})107 -> 0.0069s108-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})109 -> 0.0058s110-- create_table("board_group_recent_visits", {:force=>:cascade})111 -> 0.0103s112-- create_table("board_labels", {:id=>:serial, :force=>:cascade})113 -> 0.0058s114-- create_table("board_project_recent_visits", {:force=>:cascade})115 -> 0.0104s116-- create_table("boards", {:id=>:serial, :force=>:cascade})117 -> 0.0098s118-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})119 -> 0.0052s120-- create_table("chat_names", {:id=>:serial, :force=>:cascade})121 -> 0.0069s122-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})123 -> 0.0046s124-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})125 -> 0.0049s126-- create_table("ci_build_trace_chunks", {:force=>:cascade})127 -> 0.0044s128-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})129 -> 0.0045s130-- create_table("ci_build_trace_sections", {:id=>false, :force=>:cascade})131 -> 0.0070s132-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})133 -> 0.0569s134-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})135 -> 0.0113s136-- create_table("ci_builds_runner_session", {:force=>:cascade})137 -> 0.0047s138-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})139 -> 0.0065s140-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})141 -> 0.0132s142-- create_table("ci_job_variables", {:force=>:cascade})143 -> 0.0074s144-- create_table("ci_pipeline_chat_data", {:force=>:cascade})145 -> 0.0067s146-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})147 -> 0.0055s148-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})149 -> 0.0094s150-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})151 -> 0.0072s152-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})153 -> 0.0327s154-- create_table("ci_resource_groups", {:force=>:cascade})155 -> 0.0047s156-- create_table("ci_resources", {:force=>:cascade})157 -> 0.0066s158-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})159 -> 0.0062s160-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})161 -> 0.0061s162-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})163 -> 0.0173s164-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})165 -> 0.0118s166-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})167 -> 0.0119s168-- create_table("ci_subscriptions_projects", {:force=>:cascade})169 -> 0.0059s170-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})171 -> 0.0068s172-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})173 -> 0.0067s174-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})175 -> 0.0087s176-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})177 -> 0.0060s178-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})179 -> 0.0051s180-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})181 -> 0.0062s182-- create_table("cluster_providers_aws", {:force=>:cascade})183 -> 0.0107s184-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})185 -> 0.0092s186-- create_table("clusters", {:id=>:serial, :force=>:cascade})187 -> 0.0115s188-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})189 -> 0.0049s190-- create_table("clusters_applications_crossplane", {:id=>:serial, :force=>:cascade})191 -> 0.0057s192-- create_table("clusters_applications_elastic_stacks", {:force=>:cascade})193 -> 0.0059s194-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})195 -> 0.0064s196-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})197 -> 0.0053s198-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})199 -> 0.0088s200-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})201 -> 0.0057s202-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})203 -> 0.0057s204-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})205 -> 0.0071s206-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})207 -> 0.0156s208-- create_table("commit_user_mentions", {:force=>:cascade})209 -> 0.0067s210-- create_table("container_expiration_policies", {:primary_key=>"project_id", :id=>:bigint, :default=>nil, :force=>:cascade})211 -> 0.0046s212-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})213 -> 0.0065s214-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})215 -> 0.0068s216-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})217 -> 0.0048s218-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})219 -> 0.0044s220-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})221 -> 0.0064s222-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})223 -> 0.0104s224-- create_table("deployment_merge_requests", {:id=>false, :force=>:cascade})225 -> 0.0068s226-- create_table("deployments", {:id=>:serial, :force=>:cascade})227 -> 0.0292s228-- create_table("description_versions", {:force=>:cascade})229 -> 0.0092s230-- create_table("design_management_designs", {:force=>:cascade})231 -> 0.0068s232-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})233 -> 0.0095s234-- create_table("design_management_versions", {:force=>:cascade})235 -> 0.0087s236-- create_table("design_user_mentions", {:force=>:cascade})237 -> 0.0064s238-- create_table("draft_notes", {:force=>:cascade})239 -> 0.0090s240-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})241 -> 0.0043s242-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})243 -> 0.0031s244-- create_table("emails", {:id=>:serial, :force=>:cascade})245 -> 0.0112s246-- create_table("environments", {:id=>:serial, :force=>:cascade})247 -> 0.0112s248-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})249 -> 0.0061s250-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})251 -> 0.0039s252-- create_table("epic_user_mentions", {:force=>:cascade})253 -> 0.0088s254-- create_table("epics", {:id=>:serial, :force=>:cascade})255 -> 0.0263s256-- create_table("events", {:id=>:serial, :force=>:cascade})257 -> 0.0164s258-- create_table("evidences", {:force=>:cascade})259 -> 0.0064s260-- create_table("external_pull_requests", {:force=>:cascade})261 -> 0.0049s262-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})263 -> 0.0048s264-- create_table("features", {:id=>:serial, :force=>:cascade})265 -> 0.0044s266-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})267 -> 0.0077s268-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})269 -> 0.0044s270-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})271 -> 0.0039s272-- create_table("geo_cache_invalidation_events", {:force=>:cascade})273 -> 0.0023s274-- create_table("geo_container_repository_updated_events", {:force=>:cascade})275 -> 0.0039s276-- create_table("geo_event_log", {:force=>:cascade})277 -> 0.0280s278-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})279 -> 0.0046s280-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})281 -> 0.0049s282-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})283 -> 0.0046s284-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})285 -> 0.0046s286-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})287 -> 0.0080s288-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})289 -> 0.0064s290-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})291 -> 0.0122s292-- create_table("geo_repositories_changed_events", {:force=>:cascade})293 -> 0.0053s294-- create_table("geo_repository_created_events", {:force=>:cascade})295 -> 0.0054s296-- create_table("geo_repository_deleted_events", {:force=>:cascade})297 -> 0.0058s298-- create_table("geo_repository_renamed_events", {:force=>:cascade})299 -> 0.0048s300-- create_table("geo_repository_updated_events", {:force=>:cascade})301 -> 0.0075s302-- create_table("geo_reset_checksum_events", {:force=>:cascade})303 -> 0.0040s304-- create_table("geo_upload_deleted_events", {:force=>:cascade})305 -> 0.0049s306-- create_table("gitlab_subscription_histories", {:force=>:cascade})307 -> 0.0045s308-- create_table("gitlab_subscriptions", {:force=>:cascade})309 -> 0.0076s310-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})311 -> 0.0089s312-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})313 -> 0.0090s314-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})315 -> 0.0134s316-- create_table("grafana_integrations", {:force=>:cascade})317 -> 0.0072s318-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})319 -> 0.0069s320-- create_table("group_deletion_schedules", {:primary_key=>"group_id", :id=>:bigint, :default=>nil, :force=>:cascade})321 -> 0.0088s322-- create_table("group_group_links", {:force=>:cascade})323 -> 0.0079s324-- create_table("historical_data", {:id=>:serial, :force=>:cascade})325 -> 0.0026s326-- create_table("identities", {:id=>:serial, :force=>:cascade})327 -> 0.0104s328-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})329 -> 0.0112s330-- create_table("import_failures", {:force=>:cascade})331 -> 0.0068s332-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})333 -> 0.0051s334-- create_table("insights", {:id=>:serial, :force=>:cascade})335 -> 0.0061s336-- create_table("internal_ids", {:force=>:cascade})337 -> 0.0102s338-- create_table("ip_restrictions", {:force=>:cascade})339 -> 0.0111s340-- create_table("issue_assignees", {:id=>false, :force=>:cascade})341 -> 0.0085s342-- create_table("issue_links", {:id=>:serial, :force=>:cascade})343 -> 0.0116s344-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})345 -> 0.0072s346-- create_table("issue_tracker_data", {:force=>:cascade})347 -> 0.0059s348-- create_table("issue_user_mentions", {:force=>:cascade})349 -> 0.0106s350-- create_table("issues", {:id=>:serial, :force=>:cascade})351 -> 0.0593s352-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})353 -> 0.0052s354-- create_table("issues_self_managed_prometheus_alert_events", {:id=>false, :force=>:cascade})355 -> 0.0053s356-- create_table("jira_connect_installations", {:force=>:cascade})357 -> 0.0046s358-- create_table("jira_connect_subscriptions", {:force=>:cascade})359 -> 0.0080s360-- create_table("jira_tracker_data", {:force=>:cascade})361 -> 0.0050s362-- create_table("keys", {:id=>:serial, :force=>:cascade})363 -> 0.0112s364-- create_table("label_links", {:id=>:serial, :force=>:cascade})365 -> 0.0079s366-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})367 -> 0.0100s368-- create_table("labels", {:id=>:serial, :force=>:cascade})369 -> 0.0188s370-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})371 -> 0.0028s372-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})373 -> 0.0070s374-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})375 -> 0.0064s376-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})377 -> 0.0061s378-- create_table("licenses", {:id=>:serial, :force=>:cascade})379 -> 0.0025s380-- create_table("list_user_preferences", {:force=>:cascade})381 -> 0.0081s382-- create_table("lists", {:id=>:serial, :force=>:cascade})383 -> 0.0132s384-- create_table("members", {:id=>:serial, :force=>:cascade})385 -> 0.0177s386-- create_table("merge_request_assignees", {:force=>:cascade})387 -> 0.0078s388-- create_table("merge_request_blocks", {:force=>:cascade})389 -> 0.0061s390-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})391 -> 0.0058s392-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})393 -> 0.0040s394-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})395 -> 0.0074s396-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})397 -> 0.0188s398-- create_table("merge_request_user_mentions", {:force=>:cascade})399 -> 0.0087s400-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})401 -> 0.0593s402-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})403 -> 0.0062s404-- create_table("merge_trains", {:force=>:cascade})405 -> 0.0112s406-- create_table("milestone_releases", {:id=>false, :force=>:cascade})407 -> 0.0054s408-- create_table("milestones", {:id=>:serial, :force=>:cascade})409 -> 0.0151s410-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})411 -> 0.0035s412-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})413 -> 0.0059s414-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})415 -> 0.0045s416-- create_table("namespaces", {:id=>:serial, :force=>:cascade})417 -> 0.0449s418-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})419 -> 0.0048s420-- create_table("notes", {:id=>:serial, :force=>:cascade})421 -> 0.0237s422-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})423 -> 0.0099s424-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})425 -> 0.0048s426-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})427 -> 0.0106s428-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})429 -> 0.0077s430-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})431 -> 0.0046s432-- create_table("operations_feature_flag_scopes", {:force=>:cascade})433 -> 0.0057s434-- create_table("operations_feature_flags", {:force=>:cascade})435 -> 0.0047s436-- create_table("operations_feature_flags_clients", {:force=>:cascade})437 -> 0.0045s438-- create_table("packages_conan_file_metadata", {:force=>:cascade})439 -> 0.0064s440-- create_table("packages_conan_metadata", {:force=>:cascade})441 -> 0.0045s442-- create_table("packages_dependencies", {:force=>:cascade})443 -> 0.0045s444-- create_table("packages_dependency_links", {:force=>:cascade})445 -> 0.0060s446-- create_table("packages_maven_metadata", {:force=>:cascade})447 -> 0.0048s448-- create_table("packages_package_files", {:force=>:cascade})449 -> 0.0048s450-- create_table("packages_package_tags", {:force=>:cascade})451 -> 0.0040s452-- create_table("packages_packages", {:force=>:cascade})453 -> 0.0087s454-- create_table("pages_domain_acme_orders", {:force=>:cascade})455 -> 0.0069s456-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})457 -> 0.0184s458-- create_table("path_locks", {:id=>:serial, :force=>:cascade})459 -> 0.0086s460-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})461 -> 0.0136s462-- create_table("plan_limits", {:force=>:cascade})463 -> 0.0052s464-- create_table("plans", {:id=>:serial, :force=>:cascade})465 -> 0.0045s466-- create_table("pool_repositories", {:force=>:cascade})467 -> 0.0085s468-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})469 -> 0.0046s470-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})471 -> 0.0021s472-- create_table("project_aliases", {:force=>:cascade})473 -> 0.0066s474-- create_table("project_authorizations", {:id=>false, :force=>:cascade})475 -> 0.0051s476-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})477 -> 0.0046s478-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})479 -> 0.0049s480-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})481 -> 0.0069s482-- create_table("project_daily_statistics", {:force=>:cascade})483 -> 0.0041s484-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})485 -> 0.0059s486-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})487 -> 0.0025s488-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})489 -> 0.0076s490-- create_table("project_features", {:id=>:serial, :force=>:cascade})491 -> 0.0051s492-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})493 -> 0.0068s494-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})495 -> 0.0047s496-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})497 -> 0.0031s498-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})499 -> 0.0019s500-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})501 -> 0.0153s502-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})503 -> 0.0056s504-- create_table("project_repositories", {:force=>:cascade})505 -> 0.0084s506-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})507 -> 0.0151s508-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})509 -> 0.0090s510-- create_table("project_tracing_settings", {:force=>:cascade})511 -> 0.0048s512-- create_table("projects", {:id=>:serial, :force=>:cascade})513 -> 0.0724s514-- create_table("prometheus_alert_events", {:force=>:cascade})515 -> 0.0069s516-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})517 -> 0.0088s518-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})519 -> 0.0115s520-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})521 -> 0.0085s522-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})523 -> 0.0084s524-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})525 -> 0.0083s526-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})527 -> 0.0072s528-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})529 -> 0.0085s530-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})531 -> 0.0066s532-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})533 -> 0.0084s534-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})535 -> 0.0066s536-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})537 -> 0.0052s538-- create_table("push_rules", {:id=>:serial, :force=>:cascade})539 -> 0.0119s540-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})541 -> 0.0088s542-- create_table("release_links", {:force=>:cascade})543 -> 0.0069s544-- create_table("releases", {:id=>:serial, :force=>:cascade})545 -> 0.0070s546-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})547 -> 0.0078s548-- create_table("repository_languages", {:id=>false, :force=>:cascade})549 -> 0.0033s550-- create_table("resource_label_events", {:force=>:cascade})551 -> 0.0129s552-- create_table("reviews", {:force=>:cascade})553 -> 0.0085s554-- create_table("routes", {:id=>:serial, :force=>:cascade})555 -> 0.0088s556-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})557 -> 0.0057s558-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})559 -> 0.0047s560-- create_table("self_managed_prometheus_alert_events", {:force=>:cascade})561 -> 0.0068s562-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})563 -> 0.0047s564-- create_table("sentry_issues", {:force=>:cascade})565 -> 0.0040s566-- create_table("service_desk_settings", {:primary_key=>"project_id", :id=>:bigint, :default=>nil, :force=>:cascade})567 -> 0.0014s568-- create_table("services", {:id=>:serial, :force=>:cascade})569 -> 0.0164s570-- create_table("shards", {:id=>:serial, :force=>:cascade})571 -> 0.0044s572-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})573 -> 0.0068s574-- create_table("smartcard_identities", {:force=>:cascade})575 -> 0.0064s576-- create_table("snippet_user_mentions", {:force=>:cascade})577 -> 0.0085s578-- create_table("snippets", {:id=>:serial, :force=>:cascade})579 -> 0.0202s580-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})581 -> 0.0065s582-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})583 -> 0.0066s584-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})585 -> 0.0035s586-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})587 -> 0.0067s588-- create_table("suggestions", {:force=>:cascade})589 -> 0.0061s590-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})591 -> 0.0064s592-- create_table("taggings", {:id=>:serial, :force=>:cascade})593 -> 0.0107s594-- create_table("tags", {:id=>:serial, :force=>:cascade})595 -> 0.0071s596-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})597 -> 0.0086s598-- create_table("timelogs", {:id=>:serial, :force=>:cascade})599 -> 0.0103s600-- create_table("todos", {:id=>:serial, :force=>:cascade})601 -> 0.0212s602-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})603 -> 0.0041s604-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})605 -> 0.0070s606-- create_table("uploads", {:id=>:serial, :force=>:cascade})607 -> 0.0113s608-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})609 -> 0.0050s610-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})611 -> 0.0060s612-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})613 -> 0.0070s614-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})615 -> 0.0052s616-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})617 -> 0.0067s618-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})619 -> 0.0051s620-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})621 -> 0.0059s622-- create_table("users", {:id=>:serial, :force=>:cascade})623 -> 0.0678s624-- create_table("users_ops_dashboard_projects", {:force=>:cascade})625 -> 0.0066s626-- create_table("users_security_dashboard_projects", {:id=>false, :force=>:cascade})627 -> 0.0054s628-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})629 -> 0.0061s630-- create_table("vulnerabilities", {:force=>:cascade})631 -> 0.0268s632-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})633 -> 0.0150s634-- create_table("vulnerability_identifiers", {:force=>:cascade})635 -> 0.0049s636-- create_table("vulnerability_issue_links", {:force=>:cascade})637 -> 0.0087s638-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})639 -> 0.0061s640-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})641 -> 0.0061s642-- create_table("vulnerability_occurrences", {:force=>:cascade})643 -> 0.0128s644-- create_table("vulnerability_scanners", {:force=>:cascade})645 -> 0.0047s646-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})647 -> 0.0076s648-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})649 -> 0.0119s650-- create_table("zoom_meetings", {:force=>:cascade})651 -> 0.0107s652-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})653 -> 0.0023s654-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})655 -> 0.0022s656-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})657 -> 0.0019s658-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})659 -> 0.0012s660-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})661 -> 0.0014s662-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})663 -> 0.0014s664-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})665 -> 0.0012s666-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})667 -> 0.0028s668-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})669 -> 0.0014s670-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})671 -> 0.0016s672-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})673 -> 0.0014s674-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})675 -> 0.0016s676-- add_foreign_key("analytics_repository_file_edits", "analytics_repository_files", {:on_delete=>:cascade})677 -> 0.0015s678-- add_foreign_key("analytics_repository_file_edits", "projects", {:on_delete=>:cascade})679 -> 0.0018s680-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})681 -> 0.0016s682-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})683 -> 0.0031s684-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})685 -> 0.0024s686-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})687 -> 0.0024s688-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})689 -> 0.0033s690-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})691 -> 0.0018s692-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})693 -> 0.0015s694-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})695 -> 0.0026s696-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})697 -> 0.0014s698-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})699 -> 0.0015s700-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})701 -> 0.0013s702-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})703 -> 0.0013s704-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})705 -> 0.0014s706-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})707 -> 0.0015s708-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})709 -> 0.0016s710-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})711 -> 0.0013s712-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})713 -> 0.0014s714-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})715 -> 0.0013s716-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})717 -> 0.0015s718-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})719 -> 0.0015s720-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})721 -> 0.0014s722-- add_foreign_key("aws_roles", "users", {:on_delete=>:cascade})723 -> 0.0017s724-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})725 -> 0.0015s726-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})727 -> 0.0016s728-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})729 -> 0.0014s730-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})731 -> 0.0016s732-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})733 -> 0.0014s734-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})735 -> 0.0014s736-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})737 -> 0.0015s738-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})739 -> 0.0014s740-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})741 -> 0.0012s742-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})743 -> 0.0014s744-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})745 -> 0.0016s746-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})747 -> 0.0016s748-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})749 -> 0.0014s750-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})751 -> 0.0015s752-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})753 -> 0.0015s754-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})755 -> 0.0026s756-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})757 -> 0.0015s758-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})759 -> 0.0018s760-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})761 -> 0.0013s762-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})763 -> 0.0013s764-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})765 -> 0.0016s766-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})767 -> 0.0032s768-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})769 -> 0.0021s770-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})771 -> 0.0033s772-- add_foreign_key("ci_builds", "ci_resource_groups", {:column=>"resource_group_id", :name=>"fk_6661f4f0e8", :on_delete=>:nullify})773 -> 0.0027s774-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})775 -> 0.0021s776-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})777 -> 0.0028s778-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})779 -> 0.0025s780-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})781 -> 0.0017s782-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})783 -> 0.0016s784-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})785 -> 0.0015s786-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})787 -> 0.0017s788-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})789 -> 0.0017s790-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})791 -> 0.0015s792-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})793 -> 0.0014s794-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})795 -> 0.0013s796-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})797 -> 0.0014s798-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})799 -> 0.0016s800-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})801 -> 0.0018s802-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})803 -> 0.0014s804-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})805 -> 0.0013s806-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})807 -> 0.0012s808-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})809 -> 0.0016s810-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})811 -> 0.0027s812-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})813 -> 0.0023s814-- add_foreign_key("ci_resource_groups", "projects", {:on_delete=>:cascade})815 -> 0.0016s816-- add_foreign_key("ci_resources", "ci_builds", {:column=>"build_id", :on_delete=>:nullify})817 -> 0.0016s818-- add_foreign_key("ci_resources", "ci_resource_groups", {:column=>"resource_group_id", :on_delete=>:cascade})819 -> 0.0011s820-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})821 -> 0.0016s822-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})823 -> 0.0015s824-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})825 -> 0.0018s826-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})827 -> 0.0019s828-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})829 -> 0.0013s830-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})831 -> 0.0013s832-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})833 -> 0.0015s834-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})835 -> 0.0016s836-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})837 -> 0.0013s838-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})839 -> 0.0016s840-- add_foreign_key("ci_subscriptions_projects", "projects", {:column=>"downstream_project_id", :on_delete=>:cascade})841 -> 0.0016s842-- add_foreign_key("ci_subscriptions_projects", "projects", {:column=>"upstream_project_id", :on_delete=>:cascade})843 -> 0.0015s844-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})845 -> 0.0014s846-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})847 -> 0.0015s848-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})849 -> 0.0015s850-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})851 -> 0.0018s852-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})853 -> 0.0017s854-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})855 -> 0.0015s856-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})857 -> 0.0014s858-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})859 -> 0.0014s860-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})861 -> 0.0017s862-- add_foreign_key("cluster_providers_aws", "clusters", {:on_delete=>:cascade})863 -> 0.0016s864-- add_foreign_key("cluster_providers_aws", "users", {:column=>"created_by_user_id", :on_delete=>:nullify})865 -> 0.0017s866-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})867 -> 0.0014s868-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})869 -> 0.0017s870-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})871 -> 0.0016s872-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})873 -> 0.0014s874-- add_foreign_key("clusters_applications_crossplane", "clusters", {:on_delete=>:cascade})875 -> 0.0013s876-- add_foreign_key("clusters_applications_elastic_stacks", "clusters", {:on_delete=>:cascade})877 -> 0.0014s878-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})879 -> 0.0014s880-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})881 -> 0.0014s882-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})883 -> 0.0015s884-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})885 -> 0.0015s886-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})887 -> 0.0014s888-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})889 -> 0.0013s890-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})891 -> 0.0014s892-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})893 -> 0.0018s894-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})895 -> 0.0016s896-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})897 -> 0.0013s898-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})899 -> 0.0015s900-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})901 -> 0.0020s902-- add_foreign_key("commit_user_mentions", "notes", {:on_delete=>:cascade})903 -> 0.0019s904-- add_foreign_key("container_expiration_policies", "projects", {:on_delete=>:cascade})905 -> 0.0018s906-- add_foreign_key("container_repositories", "projects")907 -> 0.0017s908-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})909 -> 0.0016s910-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})911 -> 0.0015s912-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})913 -> 0.0018s914-- add_foreign_key("deployment_merge_requests", "deployments", {:on_delete=>:cascade})915 -> 0.0019s916-- add_foreign_key("deployment_merge_requests", "merge_requests", {:on_delete=>:cascade})917 -> 0.0014s918-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})919 -> 0.0013s920-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})921 -> 0.0017s922-- add_foreign_key("description_versions", "epics", {:on_delete=>:cascade})923 -> 0.0030s924-- add_foreign_key("description_versions", "issues", {:on_delete=>:cascade})925 -> 0.0025s926-- add_foreign_key("description_versions", "merge_requests", {:on_delete=>:cascade})927 -> 0.0015s928-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})929 -> 0.0015s930-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})931 -> 0.0017s932-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})933 -> 0.0012s934-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})935 -> 0.0014s936-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})937 -> 0.0015s938-- add_foreign_key("design_management_versions", "users", {:column=>"author_id", :name=>"fk_c1440b4896", :on_delete=>:nullify})939 -> 0.0017s940-- add_foreign_key("design_user_mentions", "design_management_designs", {:column=>"design_id", :on_delete=>:cascade})941 -> 0.0013s942-- add_foreign_key("design_user_mentions", "notes", {:on_delete=>:cascade})943 -> 0.0013s944-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})945 -> 0.0017s946-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})947 -> 0.0017s948-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})949 -> 0.0015s950-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})951 -> 0.0018s952-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})953 -> 0.0019s954-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})955 -> 0.0015s956-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})957 -> 0.0014s958-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})959 -> 0.0014s960-- add_foreign_key("epic_user_mentions", "epics", {:on_delete=>:cascade})961 -> 0.0015s962-- add_foreign_key("epic_user_mentions", "notes", {:on_delete=>:cascade})963 -> 0.0013s964-- add_foreign_key("epics", "epics", {:column=>"due_date_sourcing_epic_id", :name=>"fk_013c9f36ca", :on_delete=>:nullify})965 -> 0.0014s966-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})967 -> 0.0013s968-- add_foreign_key("epics", "epics", {:column=>"start_date_sourcing_epic_id", :name=>"fk_9d480c64b2", :on_delete=>:nullify})969 -> 0.0013s970-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})971 -> 0.0017s972-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})973 -> 0.0016s974-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})975 -> 0.0017s976-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})977 -> 0.0017s978-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})979 -> 0.0017s980-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})981 -> 0.0018s982-- add_foreign_key("events", "projects", {:on_delete=>:cascade})983 -> 0.0019s984-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})985 -> 0.0022s986-- add_foreign_key("evidences", "releases", {:on_delete=>:cascade})987 -> 0.0024s988-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})989 -> 0.0025s990-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})991 -> 0.0020s992-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})993 -> 0.0027s994-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})995 -> 0.0021s996-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})997 -> 0.0017s998-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})999 -> 0.0018s1000-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})1001 -> 0.0014s1002-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})1003 -> 0.0018s1004-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})1005 -> 0.0013s1006-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})1007 -> 0.0016s1008-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})1009 -> 0.0013s1010-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})1011 -> 0.0013s1012-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})1013 -> 0.0013s1014-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})1015 -> 0.0013s1016-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})1017 -> 0.0014s1018-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})1019 -> 0.0013s1020-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})1021 -> 0.0015s1022-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})1023 -> 0.0013s1024-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})1025 -> 0.0013s1026-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})1027 -> 0.0019s1028-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})1029 -> 0.0017s1030-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})1031 -> 0.0016s1032-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})1033 -> 0.0017s1034-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})1035 -> 0.0017s1036-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})1037 -> 0.0013s1038-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})1039 -> 0.0018s1040-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})1041 -> 0.0025s1042-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})1043 -> 0.0019s1044-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})1045 -> 0.0017s1046-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})1047 -> 0.0017s1048-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})1049 -> 0.0014s1050-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})1051 -> 0.0015s1052-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})1053 -> 0.0017s1054-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})1055 -> 0.0015s1056-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})1057 -> 0.0012s1058-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})1059 -> 0.0020s1060-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})1061 -> 0.0027s1062-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1063 -> 0.0017s1064-- add_foreign_key("group_deletion_schedules", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1065 -> 0.0015s1066-- add_foreign_key("group_deletion_schedules", "users", {:name=>"fk_11e3ebfcdd", :on_delete=>:cascade})1067 -> 0.0017s1068-- add_foreign_key("group_group_links", "namespaces", {:column=>"shared_group_id", :on_delete=>:cascade})1069 -> 0.0016s1070-- add_foreign_key("group_group_links", "namespaces", {:column=>"shared_with_group_id", :on_delete=>:cascade})1071 -> 0.0014s1072-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})1073 -> 0.0015s1074-- add_foreign_key("import_export_uploads", "namespaces", {:column=>"group_id", :name=>"fk_83319d9721", :on_delete=>:cascade})1075 -> 0.0015s1076-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})1077 -> 0.0018s1078-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})1079 -> 0.0019s1080-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})1081 -> 0.0016s1082-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})1083 -> 0.0016s1084-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})1085 -> 0.0018s1086-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})1087 -> 0.0017s1088-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1089 -> 0.0015s1090-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})1091 -> 0.0015s1092-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})1093 -> 0.0016s1094-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})1095 -> 0.0015s1096-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})1097 -> 0.0014s1098-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})1099 -> 0.0015s1100-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})1101 -> 0.0015s1102-- add_foreign_key("issue_user_mentions", "issues", {:on_delete=>:cascade})1103 -> 0.0015s1104-- add_foreign_key("issue_user_mentions", "notes", {:on_delete=>:cascade})1105 -> 0.0014s1106-- add_foreign_key("issues", "epics", {:column=>"promoted_to_epic_id", :name=>"fk_df75a7c8b8", :on_delete=>:nullify})1107 -> 0.0015s1108-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})1109 -> 0.0014s1110-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})1111 -> 0.0016s1112-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})1113 -> 0.0014s1114-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})1115 -> 0.0021s1116-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})1117 -> 0.0019s1118-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})1119 -> 0.0018s1120-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})1121 -> 0.0019s1122-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})1123 -> 0.0017s1124-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})1125 -> 0.0014s1126-- add_foreign_key("issues_self_managed_prometheus_alert_events", "issues", {:on_delete=>:cascade})1127 -> 0.0015s1128-- add_foreign_key("issues_self_managed_prometheus_alert_events", "self_managed_prometheus_alert_events", {:on_delete=>:cascade})1129 -> 0.0015s1130-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})1131 -> 0.0014s1132-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})1133 -> 0.0017s1134-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})1135 -> 0.0014s1136-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})1137 -> 0.0014s1138-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})1139 -> 0.0014s1140-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})1141 -> 0.0018s1142-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1143 -> 0.0015s1144-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})1145 -> 0.0017s1146-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})1147 -> 0.0018s1148-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})1149 -> 0.0016s1150-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})1151 -> 0.0016s1152-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})1153 -> 0.0017s1154-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})1155 -> 0.0013s1156-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})1157 -> 0.0013s1158-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})1159 -> 0.0013s1160-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})1161 -> 0.0016s1162-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})1163 -> 0.0019s1164-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})1165 -> 0.0016s1166-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})1167 -> 0.0015s1168-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})1169 -> 0.0016s1170-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})1171 -> 0.0013s1172-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})1173 -> 0.0016s1174-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})1175 -> 0.0013s1176-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})1177 -> 0.0015s1178-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1179 -> 0.0018s1180-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})1181 -> 0.0015s1182-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})1183 -> 0.0016s1184-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})1185 -> 0.0016s1186-- add_foreign_key("merge_request_user_mentions", "merge_requests", {:on_delete=>:cascade})1187 -> 0.0016s1188-- add_foreign_key("merge_request_user_mentions", "notes", {:on_delete=>:cascade})1189 -> 0.0013s1190-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})1191 -> 0.0017s1192-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})1193 -> 0.0015s1194-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})1195 -> 0.0015s1196-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})1197 -> 0.0019s1198-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})1199 -> 0.0020s1200-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})1201 -> 0.0019s1202-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})1203 -> 0.0018s1204-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})1205 -> 0.0019s1206-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})1207 -> 0.0018s1208-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})1209 -> 0.0022s1210-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})1211 -> 0.0015s1212-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1213 -> 0.0016s1214-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})1215 -> 0.0018s1216-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})1217 -> 0.0017s1218-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})1219 -> 0.0016s1220-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})1221 -> 0.0014s1222-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})1223 -> 0.0013s1224-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})1225 -> 0.0017s1226-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})1227 -> 0.0018s1228-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})1229 -> 0.0015s1230-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})1231 -> 0.0015s1232-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})1233 -> 0.0014s1234-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})1235 -> 0.0017s1236-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})1237 -> 0.0015s1238-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})1239 -> 0.0021s1240-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})1241 -> 0.0014s1242-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})1243 -> 0.0019s1244-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})1245 -> 0.0014s1246-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})1247 -> 0.0019s1248-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_77114b3b09", :on_delete=>:cascade})1249 -> 0.0016s1250-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})1251 -> 0.0013s1252-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})1253 -> 0.0018s1254-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})1255 -> 0.0017s1256-- add_foreign_key("packages_conan_file_metadata", "packages_package_files", {:column=>"package_file_id", :on_delete=>:cascade})1257 -> 0.0013s1258-- add_foreign_key("packages_conan_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1259 -> 0.0014s1260-- add_foreign_key("packages_dependency_links", "packages_dependencies", {:column=>"dependency_id", :on_delete=>:cascade})1261 -> 0.0013s1262-- add_foreign_key("packages_dependency_links", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1263 -> 0.0011s1264-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})1265 -> 0.0012s1266-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})1267 -> 0.0011s1268-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})1269 -> 0.0013s1270-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})1271 -> 0.0018s1272-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})1273 -> 0.0017s1274-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})1275 -> 0.0022s1276-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})1277 -> 0.0019s1278-- add_foreign_key("path_locks", "users")1279 -> 0.0019s1280-- add_foreign_key("personal_access_tokens", "users")1281 -> 0.0018s1282-- add_foreign_key("plan_limits", "plans", {:on_delete=>:cascade})1283 -> 0.0013s1284-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})1285 -> 0.0018s1286-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})1287 -> 0.0013s1288-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})1289 -> 0.0017s1290-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})1291 -> 0.0019s1292-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})1293 -> 0.0018s1294-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})1295 -> 0.0017s1296-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})1297 -> 0.0018s1298-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})1299 -> 0.0019s1300-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})1301 -> 0.0019s1302-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})1303 -> 0.0019s1304-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})1305 -> 0.0018s1306-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})1307 -> 0.0018s1308-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})1309 -> 0.0018s1310-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})1311 -> 0.0018s1312-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})1313 -> 0.0018s1314-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})1315 -> 0.0019s1316-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})1317 -> 0.0018s1318-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})1319 -> 0.0018s1320-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})1321 -> 0.0018s1322-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})1323 -> 0.0021s1324-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})1325 -> 0.0018s1326-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})1327 -> 0.0020s1328-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})1329 -> 0.0013s1330-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})1331 -> 0.0021s1332-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})1333 -> 0.0020s1334-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})1335 -> 0.0018s1336-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})1337 -> 0.0027s1338-- add_foreign_key("projects", "users", {:column=>"marked_for_deletion_by_user_id", :name=>"fk_25d8780d11", :on_delete=>:nullify})1339 -> 0.0023s1340-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})1341 -> 0.0018s1342-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})1343 -> 0.0014s1344-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})1345 -> 0.0013s1346-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})1347 -> 0.0017s1348-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})1349 -> 0.0014s1350-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})1351 -> 0.0017s1352-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})1353 -> 0.0016s1354-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})1355 -> 0.0015s1356-- add_foreign_key("protected_branch_merge_access_levels", "users")1357 -> 0.0017s1358-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})1359 -> 0.0021s1360-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})1361 -> 0.0012s1362-- add_foreign_key("protected_branch_push_access_levels", "users")1363 -> 0.0016s1364-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1365 -> 0.0017s1366-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})1367 -> 0.0012s1368-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})1369 -> 0.0017s1370-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})1371 -> 0.0018s1372-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1373 -> 0.0016s1374-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})1375 -> 0.0014s1376-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})1377 -> 0.0017s1378-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})1379 -> 0.0018s1380-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})1381 -> 0.0018s1382-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})1383 -> 0.0015s1384-- add_foreign_key("protected_tag_create_access_levels", "users")1385 -> 0.0017s1386-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})1387 -> 0.0019s1388-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})1389 -> 0.0014s1390-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})1391 -> 0.0021s1392-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})1393 -> 0.0013s1394-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})1395 -> 0.0018s1396-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})1397 -> 0.0019s1398-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})1399 -> 0.0020s1400-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})1401 -> 0.0018s1402-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})1403 -> 0.0017s1404-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})1405 -> 0.0017s1406-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})1407 -> 0.0016s1408-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})1409 -> 0.0016s1410-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})1411 -> 0.0017s1412-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})1413 -> 0.0015s1414-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})1415 -> 0.0018s1416-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})1417 -> 0.0016s1418-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1419 -> 0.0015s1420-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1421 -> 0.0016s1422-- add_foreign_key("self_managed_prometheus_alert_events", "environments", {:on_delete=>:cascade})1423 -> 0.0013s1424-- add_foreign_key("self_managed_prometheus_alert_events", "projects", {:on_delete=>:cascade})1425 -> 0.0017s1426-- add_foreign_key("sentry_issues", "issues", {:on_delete=>:cascade})1427 -> 0.0016s1428-- add_foreign_key("service_desk_settings", "projects", {:on_delete=>:cascade})1429 -> 0.0018s1430-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})1431 -> 0.0018s1432-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})1433 -> 0.0015s1434-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})1435 -> 0.0020s1436-- add_foreign_key("snippet_user_mentions", "notes", {:on_delete=>:cascade})1437 -> 0.0016s1438-- add_foreign_key("snippet_user_mentions", "snippets", {:on_delete=>:cascade})1439 -> 0.0017s1440-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})1441 -> 0.0019s1442-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})1443 -> 0.0020s1444-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})1445 -> 0.0014s1446-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})1447 -> 0.0019s1448-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})1449 -> 0.0015s1450-- add_foreign_key("system_note_metadata", "description_versions", {:name=>"fk_fbd87415c9", :on_delete=>:nullify})1451 -> 0.0016s1452-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})1453 -> 0.0023s1454-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})1455 -> 0.0022s1456-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})1457 -> 0.0022s1458-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})1459 -> 0.0023s1460-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})1461 -> 0.0020s1462-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})1463 -> 0.0025s1464-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})1465 -> 0.0015s1466-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})1467 -> 0.0020s1468-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})1469 -> 0.0018s1470-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})1471 -> 0.0016s1472-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})1473 -> 0.0019s1474-- add_foreign_key("u2f_registrations", "users")1475 -> 0.0018s1476-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})1477 -> 0.0024s1478-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})1479 -> 0.0018s1480-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})1481 -> 0.0033s1482-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})1483 -> 0.0023s1484-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})1485 -> 0.0025s1486-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})1487 -> 0.0021s1488-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})1489 -> 0.0020s1490-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})1491 -> 0.0019s1492-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})1493 -> 0.0024s1494-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})1495 -> 0.0024s1496-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})1497 -> 0.0019s1498-- add_foreign_key("users_security_dashboard_projects", "projects", {:on_delete=>:cascade})1499 -> 0.0024s1500-- add_foreign_key("users_security_dashboard_projects", "users", {:on_delete=>:cascade})1501 -> 0.0020s1502-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})1503 -> 0.0024s1504-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})1505 -> 0.0022s1506-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})1507 -> 0.0016s1508-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})1509 -> 0.0014s1510-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})1511 -> 0.0016s1512-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})1513 -> 0.0031s1514-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})1515 -> 0.0021s1516-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})1517 -> 0.0019s1518-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})1519 -> 0.0019s1520-- add_foreign_key("vulnerabilities", "users", {:column=>"resolved_by_id", :name=>"fk_76bc5f5455", :on_delete=>:nullify})1521 -> 0.0019s1522-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})1523 -> 0.0018s1524-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})1525 -> 0.0019s1526-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})1527 -> 0.0021s1528-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})1529 -> 0.0024s1530-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})1531 -> 0.0023s1532-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})1533 -> 0.0021s1534-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})1535 -> 0.0017s1536-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})1537 -> 0.0030s1538-- add_foreign_key("vulnerability_issue_links", "issues", {:on_delete=>:cascade})1539 -> 0.0025s1540-- add_foreign_key("vulnerability_issue_links", "vulnerabilities", {:on_delete=>:cascade})1541 -> 0.0017s1542-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})1543 -> 0.0015s1544-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1545 -> 0.0016s1546-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})1547 -> 0.0016s1548-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})1549 -> 0.0013s1550-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})1551 -> 0.0024s1552-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})1553 -> 0.0016s1554-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})1555 -> 0.0014s1556-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})1557 -> 0.0017s1558-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})1559 -> 0.0025s1560-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})1561 -> 0.0020s1562-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})1563 -> 0.0026s1564-- add_foreign_key("zoom_meetings", "issues", {:on_delete=>:cascade})1565 -> 0.0023s1566-- add_foreign_key("zoom_meetings", "projects", {:on_delete=>:cascade})1567 -> 0.0025s1568$ date1569Fri Dec 13 08:37:52 UTC 20191570$ source scripts/rspec_helpers.sh1571$ rspec_paralellized_job "--tag ~quarantine --tag ~geo"1572KNAPSACK_TEST_FILE_PATTERN: spec/{bin,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,migrations,models,policies,presenters,rack_servers,routing,rubocop,serializers,services,sidekiq,tasks,uploaders,validators,views,workers,elastic_integration}{,/**/}*_spec.rb1573Checking gitaly-ruby Gemfile...1574Checking gitaly-ruby bundle...1575Warning: 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`.1576The Gemfile's dependencies are satisfied1577Trying to connect to gitaly: ...... OK1578Report specs:1579spec/models/member_spec.rb1580spec/models/issue_spec.rb1581spec/models/note_spec.rb1582spec/services/issuable/bulk_update_service_spec.rb1583spec/models/group_spec.rb1584spec/services/projects/fork_service_spec.rb1585spec/lib/gitlab/import_export/relation_rename_service_spec.rb1586spec/lib/gitlab/usage_data_spec.rb1587spec/models/project_wiki_spec.rb1588spec/lib/gitlab/user_access_spec.rb1589spec/lib/gitlab/cycle_analytics/group_stage_summary_spec.rb1590spec/serializers/build_details_entity_spec.rb1591spec/lib/gitlab/import_export/group_tree_saver_spec.rb1592spec/services/members/approve_access_request_service_spec.rb1593spec/finders/runner_jobs_finder_spec.rb1594spec/lib/gitlab/data_builder/push_spec.rb1595spec/lib/gitlab/git/wiki_spec.rb1596spec/finders/environments_finder_spec.rb1597spec/lib/gitlab/background_migration/remove_restricted_todos_spec.rb1598spec/models/release_spec.rb1599spec/lib/gitlab/ci/status/build/play_spec.rb1600spec/lib/gitlab/hook_data/issuable_builder_spec.rb1601spec/models/concerns/discussion_on_diff_spec.rb1602spec/views/projects/edit.html.haml_spec.rb1603spec/lib/gitlab/chat/command_spec.rb1604spec/services/search/global_service_spec.rb1605spec/lib/banzai/reference_parser/commit_parser_spec.rb1606spec/lib/gitlab/legacy_github_import/project_creator_spec.rb1607spec/finders/branches_finder_spec.rb1608spec/lib/gitlab/discussions_diff/file_collection_spec.rb1609spec/services/issues/reopen_service_spec.rb1610spec/services/todos/destroy/confidential_issue_service_spec.rb1611spec/lib/gitlab/checks/diff_check_spec.rb1612spec/presenters/release_presenter_spec.rb1613spec/services/projects/hashed_storage/rollback_repository_service_spec.rb1614spec/presenters/clusterable_presenter_spec.rb1615spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb1616spec/services/projects/update_pages_service_spec.rb1617spec/lib/gitlab/ci/trace/chunked_io_spec.rb1618spec/lib/gitlab/import_export/lfs_restorer_spec.rb1619spec/serializers/discussion_diff_file_entity_spec.rb1620spec/views/notify/pipeline_success_email.html.haml_spec.rb1621spec/lib/backup/repository_spec.rb1622spec/workers/pipeline_metrics_worker_spec.rb1623spec/lib/banzai/reference_parser/label_parser_spec.rb1624spec/lib/gitlab/ci/status/external/common_spec.rb1625spec/graphql/features/authorization_spec.rb1626spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb1627spec/lib/gitlab/cycle_analytics/review_event_fetcher_spec.rb1628spec/lib/gitlab/object_hierarchy_spec.rb1629spec/migrations/migrate_forbidden_redirect_uris_spec.rb1630spec/services/ci/ensure_stage_service_spec.rb1631spec/views/projects/tree/show.html.haml_spec.rb1632spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb1633spec/lib/gitlab/slash_commands/run_spec.rb1634spec/helpers/avatars_helper_spec.rb1635spec/views/projects/show.html.haml_spec.rb1636spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb1637spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb1638spec/models/ci/job_variable_spec.rb1639spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb1640spec/tasks/gitlab/web_hook_rake_spec.rb1641spec/services/projects/lfs_pointers/lfs_link_service_spec.rb1642spec/models/pool_repository_spec.rb1643spec/services/clusters/aws/finalize_creation_service_spec.rb1644spec/lib/gitlab/gitaly_client/wiki_service_spec.rb1645spec/finders/resource_label_event_finder_spec.rb1646spec/models/ci/build_trace_section_name_spec.rb1647spec/models/project_services/asana_service_spec.rb1648spec/models/project_services/assembla_service_spec.rb1649spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb1650spec/services/tags/destroy_service_spec.rb1651spec/migrations/schedule_digest_personal_access_tokens_spec.rb1652spec/tasks/gitlab/uploads/check_rake_spec.rb1653spec/lib/gitlab/cleanup/remote_uploads_spec.rb1654spec/finders/autocomplete/project_finder_spec.rb1655spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb1656spec/migrations/set_issue_id_for_all_versions_spec.rb1657spec/models/blob_viewer/readme_spec.rb1658spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb1659spec/migrations/schedule_to_archive_legacy_traces_spec.rb1660spec/models/project_services/packagist_service_spec.rb1661spec/workers/new_note_worker_spec.rb1662spec/lib/gitlab/ci/status/build/skipped_spec.rb1663spec/policies/protected_branch_policy_spec.rb1664spec/workers/build_success_worker_spec.rb1665spec/routing/group_routing_spec.rb1666spec/lib/gitlab/gitaly_client/blob_service_spec.rb1667spec/lib/gitlab/cleanup/orphan_job_artifact_files_spec.rb1668spec/policies/clusters/instance_policy_spec.rb1669spec/services/reset_project_cache_service_spec.rb1670spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb1671spec/models/snippet_blob_spec.rb1672spec/services/protected_branches/destroy_service_spec.rb1673spec/lib/gitlab/background_migration/reset_merge_status_spec.rb1674spec/services/protected_tags/update_service_spec.rb1675spec/tasks/tokens_spec.rb1676spec/lib/gitlab/exclusive_lease_helpers_spec.rb1677spec/initializers/direct_upload_support_spec.rb1678spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb1679spec/lib/gitlab/diff/line_mapper_spec.rb1680spec/initializers/rest-client-hostname_override_spec.rb1681spec/lib/gitlab/utils/override_spec.rb1682spec/migrations/migrate_update_head_pipeline_for_merge_request_sidekiq_queue_spec.rb1683spec/tasks/gitlab/shell_rake_spec.rb1684spec/workers/new_release_worker_spec.rb1685spec/serializers/merge_request_user_entity_spec.rb1686spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb1687spec/serializers/container_repository_entity_spec.rb1688spec/lib/gitlab/danger/helper_spec.rb1689spec/services/protected_tags/create_service_spec.rb1690spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb1691spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb1692spec/lib/gitlab/auth/ldap/authentication_spec.rb1693spec/lib/gitlab/ci/ansi2json/style_spec.rb1694spec/db/development/import_common_metrics_spec.rb1695spec/lib/gitlab/ci/ansi2html_spec.rb1696spec/models/concerns/blob_language_from_git_attributes_spec.rb1697spec/lib/gitlab/utils/sanitize_node_link_spec.rb1698spec/models/ci/sources/pipeline_spec.rb1699spec/helpers/page_layout_helper_spec.rb1700spec/rubocop/cop/code_reuse/presenter_spec.rb1701spec/helpers/ci_status_helper_spec.rb1702spec/lib/safe_zip/entry_spec.rb1703spec/lib/gitlab/config/entry/validatable_spec.rb1704spec/lib/gitlab/ci/config/external/context_spec.rb1705spec/lib/gitlab/ci/config/entry/image_spec.rb1706spec/lib/gitlab/sherlock/transaction_spec.rb1707spec/lib/gitlab/slash_commands/application_help_spec.rb1708spec/lib/gitlab/kubernetes_spec.rb1709spec/graphql/mutations/todos/mark_all_done_spec.rb1710spec/lib/gitlab/database/grant_spec.rb1711spec/validators/namespace_path_validator_spec.rb1712spec/rubocop/cop/code_reuse/serializer_spec.rb1713spec/lib/gitlab/file_detector_spec.rb1714spec/helpers/recaptcha_experiment_helper_spec.rb1715spec/lib/gitlab/popen/runner_spec.rb1716spec/lib/google_api/cloud_platform/client_spec.rb1717spec/models/user_mentions/merge_request_user_mention_spec.rb1718spec/lib/json_web_token/rsa_token_spec.rb1719spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb1720spec/lib/gitlab/metrics/rack_middleware_spec.rb1721spec/lib/gitlab/gitaly_client/diff_spec.rb1722spec/lib/gitlab/patch/prependable_spec.rb1723spec/tasks/gitlab/ldap_rake_spec.rb1724spec/lib/gitlab/health_checks/puma_check_spec.rb1725spec/rubocop/cop/code_reuse/service_class_spec.rb1726spec/models/user_mentions/commit_user_mention_spec.rb1727spec/lib/gitlab/ci/pipeline/duration_spec.rb1728spec/lib/gitlab/themes_spec.rb1729spec/lib/gitlab/graphql/query_analyzers/logger_analyzer_spec.rb1730spec/lib/gitlab/diff/line_spec.rb1731spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb1732spec/lib/gitlab/import_export/config_spec.rb1733spec/lib/gitlab/middleware/rails_queue_duration_spec.rb1734spec/lib/serializers/json_spec.rb1735spec/lib/gitlab/lazy_spec.rb1736spec/lib/gitlab/github_import/issuable_finder_spec.rb1737spec/lib/gitlab/config/entry/undefined_spec.rb1738spec/lib/gitlab/chat_name_token_spec.rb1739spec/lib/gitlab/config/entry/boolean_spec.rb1740spec/lib/gitlab/ci/status/success_spec.rb1741spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb1742spec/rubocop/cop/group_public_or_visible_to_user_spec.rb1743spec/lib/gitlab/kubernetes/service_account_token_spec.rb1744spec/config/smime_signature_settings_spec.rb1745spec/serializers/namespace_basic_entity_spec.rb1746spec/lib/gitlab/git/bundle_file_spec.rb1747spec/serializers/test_case_entity_spec.rbKnapsack report generator started!1748Run options:1749 include {:focus=>true}1750 exclude {:quarantine=>true, :geo=>true}1751All examples were filtered out; ignoring {:focus=>true}1752==> Setting up Gitaly...1753 Gitaly set up in 0.103075423 seconds...1754Member1755 Associations1756 should belong to user required:1757 Validation1758 should validate that :user cannot be empty/falsy1759 should validate that :source cannot be empty/falsy1760 should validate that :access_level is either ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›1761 behaves like an object with email-formated attributes1762 specifically its :invite_email attribute1763 with a value of 'info@example.com'1764 is valid1765 with a value of 'info+test@example.com'1766 is valid1767 with a value of 'o'reilly@example.com'1768 is valid1769 with a value of 'mailto:test@example.com'1770 is valid1771 with a value of 'lol!'+=?><#$%^&*()@gmail.com'1772 is valid1773 with a value of 'foobar'1774 is invalid1775 with a value of 'test@test@example.com'1776 is invalid1777 when an invite email is provided1778 doesn't require a user1779 requires a valid invite email1780 requires a unique invite email scoped to this source1781 is valid otherwise1782 when an invite email is not provided1783 requires a user1784 is valid otherwise1785 when a child member inherits its access level1786 requires a higher level1787 is valid with an equal level1788 is valid with a higher level1789 Scopes & finders1790 .access_for_user_ids1791 returns the right access levels1792 .invite1793 should not include #<ProjectMember id: 29, access_level: 40, source_id: 16, source_type: "Project", user_id: 39, notific...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1794 should include #<ProjectMember id: 39, access_level: 30, source_id: 17, source_type: "Project", user_id: 50, notific...6328...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1795 should not include #<ProjectMember id: 48, access_level: 30, source_id: 18, source_type: "Project", user_id: 61, notific...ccepted_at: "2019-12-13 08:38:37", requested_at: nil, expires_at: nil, ldap: false, override: false>1796 should not include #<ProjectMember id: 57, access_level: 30, source_id: 19, source_type: "Project", user_id: 71, notific...ccepted_at: nil, requested_at: "2019-12-13 08:38:38", expires_at: nil, ldap: false, override: false>1797 should not include #<ProjectMember id: 66, access_level: 30, source_id: 20, source_type: "Project", user_id: 81, notific...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1798 .non_invite1799 should include #<ProjectMember id: 69, access_level: 40, source_id: 21, source_type: "Project", user_id: 84, notific...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1800 should not include #<ProjectMember id: 79, access_level: 30, source_id: 22, source_type: "Project", user_id: 95, notific...51ee...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1801 should include #<ProjectMember id: 88, access_level: 30, source_id: 23, source_type: "Project", user_id: 106, notifi...ccepted_at: "2019-12-13 08:38:41", requested_at: nil, expires_at: nil, ldap: false, override: false>1802 should include #<ProjectMember id: 97, access_level: 30, source_id: 24, source_type: "Project", user_id: 116, notifi...ccepted_at: nil, requested_at: "2019-12-13 08:38:42", expires_at: nil, ldap: false, override: false>1803 should include #<ProjectMember id: 106, access_level: 30, source_id: 25, source_type: "Project", user_id: 126, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1804 .request1805 should not include #<ProjectMember id: 109, access_level: 40, source_id: 26, source_type: "Project", user_id: 129, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1806 should not include #<ProjectMember id: 119, access_level: 30, source_id: 27, source_type: "Project", user_id: 140, notif...43f1...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1807 should not include #<ProjectMember id: 128, access_level: 30, source_id: 28, source_type: "Project", user_id: 151, notif...ccepted_at: "2019-12-13 08:38:46", requested_at: nil, expires_at: nil, ldap: false, override: false>1808 should include #<ProjectMember id: 137, access_level: 30, source_id: 29, source_type: "Project", user_id: 161, notif...ccepted_at: nil, requested_at: "2019-12-13 08:38:47", expires_at: nil, ldap: false, override: false>1809 should not include #<ProjectMember id: 146, access_level: 30, source_id: 30, source_type: "Project", user_id: 171, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1810 .non_request1811 should include #<ProjectMember id: 149, access_level: 40, source_id: 31, source_type: "Project", user_id: 174, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1812 should include #<ProjectMember id: 159, access_level: 30, source_id: 32, source_type: "Project", user_id: 185, notif...9bef...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1813 should include #<ProjectMember id: 168, access_level: 30, source_id: 33, source_type: "Project", user_id: 196, notif...ccepted_at: "2019-12-13 08:38:50", requested_at: nil, expires_at: nil, ldap: false, override: false>1814 should not include #<ProjectMember id: 177, access_level: 30, source_id: 34, source_type: "Project", user_id: 206, notif...ccepted_at: nil, requested_at: "2019-12-13 08:38:52", expires_at: nil, ldap: false, override: false>1815 should include #<ProjectMember id: 186, access_level: 30, source_id: 35, source_type: "Project", user_id: 216, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1816 .search_invite_email1817 returns only members the matching e-mail1818 .developers1819 should not include #<GroupMember id: 197, access_level: 50, source_id: 257, source_type: "Namespace", user_id: 228, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1820 should not include #<ProjectMember id: 206, access_level: 40, source_id: 38, source_type: "Project", user_id: 238, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1821 should include #<ProjectMember id: 216, access_level: 30, source_id: 39, source_type: "Project", user_id: 249, notif...bcd1...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1822 should include #<ProjectMember id: 225, access_level: 30, source_id: 40, source_type: "Project", user_id: 260, notif...ccepted_at: "2019-12-13 08:38:57", requested_at: nil, expires_at: nil, ldap: false, override: false>1823 should not include #<ProjectMember id: 234, access_level: 30, source_id: 41, source_type: "Project", user_id: 270, notif...ccepted_at: nil, requested_at: "2019-12-13 08:38:58", expires_at: nil, ldap: false, override: false>1824 should include #<ProjectMember id: 243, access_level: 30, source_id: 42, source_type: "Project", user_id: 280, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1825 should not include nil1826 should not include #<ProjectMember id: 255, access_level: 30, source_id: 44, source_type: "Project", user_id: 293, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1827 .owners_and_maintainers1828 should include #<GroupMember id: 261, access_level: 50, source_id: 337, source_type: "Namespace", user_id: 300, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1829 should include #<ProjectMember id: 270, access_level: 40, source_id: 46, source_type: "Project", user_id: 310, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1830 should not include #<ProjectMember id: 280, access_level: 30, source_id: 47, source_type: "Project", user_id: 321, notif...b2a5...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1831 should not include #<ProjectMember id: 289, access_level: 30, source_id: 48, source_type: "Project", user_id: 332, notif...ccepted_at: "2019-12-13 08:39:04", requested_at: nil, expires_at: nil, ldap: false, override: false>1832 should not include #<ProjectMember id: 298, access_level: 30, source_id: 49, source_type: "Project", user_id: 342, notif...ccepted_at: nil, requested_at: "2019-12-13 08:39:05", expires_at: nil, ldap: false, override: false>1833 should not include #<ProjectMember id: 307, access_level: 30, source_id: 50, source_type: "Project", user_id: 352, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1834 should not include nil1835 .has_access1836 should include #<GroupMember id: 317, access_level: 50, source_id: 407, source_type: "Namespace", user_id: 363, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1837 should include #<ProjectMember id: 326, access_level: 40, source_id: 53, source_type: "Project", user_id: 373, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1838 should include #<ProjectMember id: 336, access_level: 30, source_id: 54, source_type: "Project", user_id: 384, notif...06a8...", invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1839 should include #<ProjectMember id: 345, access_level: 30, source_id: 55, source_type: "Project", user_id: 395, notif...ccepted_at: "2019-12-13 08:39:11", requested_at: nil, expires_at: nil, ldap: false, override: false>1840 should not include #<ProjectMember id: 354, access_level: 30, source_id: 56, source_type: "Project", user_id: 405, notif...ccepted_at: nil, requested_at: "2019-12-13 08:39:12", expires_at: nil, ldap: false, override: false>1841 should include #<ProjectMember id: 363, access_level: 30, source_id: 57, source_type: "Project", user_id: 415, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1842 should not include nil1843 should not include #<ProjectMember id: 375, access_level: 30, source_id: 59, source_type: "Project", user_id: 428, notif...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1844 Delegate methods1845 should respond to #user_name1846 should respond to #user_email1847 .add_user1848 when source is a project1849 returns a <Source>Member object1850 sets members.created_by to the given current_user1851 sets members.expires_at to the given expires_at1852 accepts the :guest symbol as access level1853 accepts the 10 integer as access level1854 accepts the :reporter symbol as access level1855 accepts the 20 integer as access level1856 accepts the :developer symbol as access level1857 accepts the 30 integer as access level1858 accepts the :maintainer symbol as access level1859 accepts the 40 integer as access level1860 with no current_user1861 when called with a known user id1862 adds the user as a member1863 when called with an unknown user id1864 adds the user as a member1865 when called with a user object1866 adds the user as a member1867 when called with a requester user object1868 adds the requester as a member1869 when called with a known user email1870 adds the user as a member1871 when called with an unknown user email1872 creates an invited member1873 when current_user can update member1874 creates the member1875 when called with a requester user object1876 adds the requester as a member1877 when current_user cannot update member1878 does not create the member1879 when called with a requester user object1880 does not destroy the requester1881 when member already exists1882 with no current_user1883 updates the member1884 when current_user can update member1885 updates the member1886 when current_user cannot update member1887 does not update the member1888 when source is a group1889 returns a <Source>Member object1890 sets members.created_by to the given current_user1891 sets members.expires_at to the given expires_at1892 accepts the :guest symbol as access level1893 accepts the 10 integer as access level1894 accepts the :reporter symbol as access level1895 accepts the 20 integer as access level1896 accepts the :developer symbol as access level1897 accepts the 30 integer as access level1898 accepts the :maintainer symbol as access level1899 accepts the 40 integer as access level1900 with no current_user1901 when called with a known user id1902 adds the user as a member1903 when called with an unknown user id1904 adds the user as a member1905 when called with a user object1906 adds the user as a member1907 when called with a requester user object1908 adds the requester as a member1909 when called with a known user email1910 adds the user as a member1911 when called with an unknown user email1912 creates an invited member1913 when current_user can update member1914 creates the member1915 when called with a requester user object1916 adds the requester as a member1917 when current_user cannot update member1918 does not create the member1919 when called with a requester user object1920 does not destroy the requester1921 when member already exists1922 with no current_user1923 updates the member1924 when current_user can update member1925 updates the member1926 when current_user cannot update member1927 does not update the member1928 .add_users1929 when source is a project1930 returns a <Source>Member objects1931 returns an empty array1932 supports differents formats1933 when source is a group1934 returns a <Source>Member objects1935 returns an empty array1936 supports differents formats1937 #accept_request1938 should be truthy1939 clears requested_at1940 calls #after_accept_request1941 #invite?1942 should be invite1943 #request?1944 should be request1945 #pending?1946 should be invite1947 should be pending1948 #accept_invite!1949 resets the invite token1950 sets the invite accepted timestamp1951 sets the user1952 calls #after_accept_invite1953 refreshes user's authorized projects1954 #decline_invite!1955 destroys the member1956 calls #after_decline_invite1957 #generate_invite_token1958 sets the invite token1959 destroying a record1960 refreshes user's authorized projects1961Issue1962 Associations1963 should belong to milestone required:1964 should belong to project required:1965 should belong to moved_to class_name => Issue required:1966 should belong to duplicated_to class_name => Issue required:1967 should belong to closed_by class_name => User required:1968 should have many assignees1969 should have many user_mentions class_name => IssueUserMention1970 should have one sentry_issue1971 modules1972 should includes the Issuable module1973 should includes the Referable module1974 should includes the Sortable module1975 should includes the Taskable module1976 behaves like AtomicInternalId1977 .has_internal_id1978 Module inclusion1979 should includes the AtomicInternalId module1980 Validation1981 when presence validation is required1982 validates presence1983 when presence validation is not required1984 does not validate presence (PENDING: No reason given)1985 Creating an instance1986 saves a new instance properly1987 internal id generation1988 calls InternalId.generate_next and sets internal id attribute1989 does not overwrite an existing internal id1990 when the instance has an internal ID set1991 calls InternalId.update_last_value and sets the `last_value` to that of the instance1992 #reset_scope_internal_id_attribute1993 rewinds the allocated IID1994 allocates the same IID1995 callbacks1996 #ensure_metrics1997 creates metrics after saving1998 does not create duplicate metrics for an issue1999 records current metrics2000 locking2001 lock_version: 02002 works when an issue has a NULL lock_version2003 lock_version: "0"2004 works when an issue has a NULL lock_version2005 #order_by_position_and_priority2006 returns ordered list2007 #sort2008 by relative_position2009 sorts asc with nulls at the end2010 #card_attributes2011 includes the author name2012 includes the assignee name2013 #close2014 sets closed_at to Time.now when an issue is closed2015 changes the state to closed2016 #reopen2017 sets closed_at to nil when an issue is reopend2018 sets closed_by to nil when an issue is reopend2019 changes the state to opened2020 #to_reference2021 supports a cross-project reference2022 when nil argument2023 returns issue id2024 when full is true2025 returns complete path to the issue2026 when same project argument2027 returns issue id2028 when cross namespace project argument2029 returns complete path to the issue2030 when same namespace / cross-project argument2031 returns path to the issue with the project name2032 when different namespace / cross-project argument2033 returns full path to the issue2034 when argument is a namespace2035 with same project path2036 returns path to the issue with the project name2037 with different project path2038 returns full path to the issue2039 #assignee_or_author?2040 returns true for a user that is assigned to an issue2041 returns true for a user that is the author of an issue2042 returns false for a user that is not the assignee or author2043 #can_move?2044 user is not a member of project issue belongs to2045 should eq false2046 user is reporter in project issue belongs to2047 should eq true2048 issue not persisted2049 should eq false2050 checking destination project also2051 destination project allowed2052 should eq true2053 destination project not allowed2054 should eq false2055 #moved?2056 issue not moved2057 should eq false2058 issue already moved2059 should eq true2060 #duplicated?2061 issue not duplicated2062 should eq false2063 issue already duplicated2064 should eq true2065 #suggested_branch_name2066 #to_branch_name does not exists2067 returns #to_branch_name2068 #to_branch_name exists not ending with -index2069 returns #to_branch_name ending with -22070 #to_branch_name exists ending with -index2071 returns #to_branch_name ending with max index + 12072 #has_related_branch?2073 branch found2074 should eq true2075 branch not found2076 should eq false2077 behaves like an editable mentionable2078 creates new cross-reference notes when the mentionable text is edited2079 behaves like a mentionable2080 generates a descriptive back-reference2081 extracts references from its reference property2082 creates cross-reference notes2083 when there are cached markdown fields2084 sends in cached markdown fields when appropriate2085 when there are cached markdown fields2086 refreshes markdown cache if necessary2087 behaves like a Taskable2088 with multiple tasks2089 returns the correct task status2090 #tasks?2091 returns true when object has tasks2092 returns false when object has no tasks2093 with nested tasks2094 returns the correct task status2095 with an incomplete task2096 returns the correct task status2097 with tasks that are not formatted correctly2098 returns the correct task status2099 with a complete task2100 returns the correct task status2101 with tasks in blockquotes2102 returns the correct task status2103 #to_branch_name2104 starts with the issue iid2105 contains the issue title if not confidential2106 does not contain the issue title if confidential2107 issue title longer than 100 characters2108 truncates branch name to at most 100 characters2109 truncates dangling parts of the branch name2110 #can_be_worked_on?2111 should be can be worked on2112 is closed2113 should not be can be worked on2114 project is forked2115 should not be can be worked on2116 #participants2117 using a public project2118 includes the issue author2119 includes the authors of the notes2120 using a private project2121 does not include mentioned users that do not have access to the project2122 cached counts2123 updates when assignees change2124 #visible_to_user?2125 without a user2126 returns true when the issue is publicly visible2127 returns false when the issue is not publicly visible2128 with a user2129 returns true when the issue is readable2130 returns false when the issue is not readable2131 returns false when feature is disabled2132 returns false when restricted for members2133 with a regular user that is not a team member2134 using a public project2135 returns true for a regular issue2136 returns false for a confidential issue2137 using an internal project2138 using an internal user2139 returns true for a regular issue2140 returns false for a confidential issue2141 using an external user2142 returns false for a regular issue2143 returns false for a confidential issue2144 using a private project2145 returns false for a regular issue2146 returns false for a confidential issue2147 when the user is the project owner2148 returns true for a regular issue2149 returns true for a confidential issue2150 with a regular user that is a team member2151 using a public project2152 returns true for a regular issue2153 returns true for a confidential issue2154 using an internal project2155 returns true for a regular issue2156 returns true for a confidential issue2157 using a private project2158 returns true for a regular issue2159 returns true for a confidential issue2160 with an admin user2161 returns true for a regular issue2162 returns true for a confidential issue2163 #publicly_visible?2164 using a public project2165 returns true for a regular issue2166 returns false for a confidential issue2167 using an internal project2168 returns false for a regular issue2169 returns false for a confidential issue2170 using a private project2171 returns false for a regular issue2172 returns false for a confidential issue2173 #hook_attrs2174 delegates to Gitlab::HookData::IssueBuilder#build2175 #check_for_spam?2176 visibility_level: 20, confidential: false, new_attributes: {:description=>"woo"}, check_for_spam?: true2177 checks for spam on issues that can be seen anonymously2178 visibility_level: 20, confidential: false, new_attributes: {:title=>"woo"}, check_for_spam?: true2179 checks for spam on issues that can be seen anonymously2180 visibility_level: 20, confidential: true, new_attributes: {:confidential=>false}, check_for_spam?: true2181 checks for spam on issues that can be seen anonymously2182 visibility_level: 20, confidential: true, new_attributes: {:description=>"woo"}, check_for_spam?: false2183 checks for spam on issues that can be seen anonymously2184 visibility_level: 20, confidential: false, new_attributes: {:title=>"woo", :confidential=>true}, check_for_spam?: false2185 checks for spam on issues that can be seen anonymously2186 visibility_level: 20, confidential: false, new_attributes: {:description=>"original description"}, check_for_spam?: false2187 checks for spam on issues that can be seen anonymously2188 visibility_level: 10, confidential: false, new_attributes: {:description=>"woo"}, check_for_spam?: false2189 checks for spam on issues that can be seen anonymously2190 visibility_level: 0, confidential: false, new_attributes: {:description=>"woo"}, check_for_spam?: false2191 checks for spam on issues that can be seen anonymously2192 removing an issue2193 refreshes the number of open issues of the project2194 .public_only2195 only returns public issues2196 .confidential_only2197 only returns confidential_only issues2198 behaves like throttled touch2199 #touch2200 updates the updated_at timestamp2201 updates the object at most once per minute2202 when an external authentication service2203 #visible_to_user?2204 is `false` when an external authorization service is enabled2205 checks the external service to determine if an issue is readable by a user2206 does not check the external service if a user does not have access to the project2207 does not check the external webservice for admins2208 #labels_hook_attrs2209 returns a list of label hook attributes2210 relative positioning2211 behaves like a class that supports relative positioning2212 .move_nulls_to_end2213 moves items with null relative_position to the end2214 moves the item near the start position when there are no existing positions2215 does not perform any moves if all items have their relative_position set2216 #max_relative_position2217 returns maximum position2218 #prev_relative_position2219 returns previous position if there is an item above2220 returns nil if there is no item above2221 #next_relative_position2222 returns next position if there is an item below2223 returns nil if there is no item below2224 #move_before2225 moves item before2226 when there is no space2227 moves items correctly2228 #move_after2229 moves item after2230 when there is no space2231 moves items correctly2232 #move_to_end2233 moves item to the end2234 #move_between2235 positions item between two other2236 positions item between on top2237 positions item between to end2238 positions items even when after and before positions are the same2239 positions items between other two if distance is 12240 positions item in the middle of other two if distance is big enough2241 positions item closer to the middle if we are at the very top2242 positions item closer to the middle if we are at the very bottom2243 positions item in the middle of other two if distance is not big enough2244 positions item in the middle of other two is there is no place2245 uses rebalancing if there is no place2246 positions item right if we pass none-sequential parameters2247 avoids N+1 queries when rebalancing other items2248 #move_sequence_before2249 moves the whole sequence of items to the middle of the nearest gap2250 finds a gap if there are unused positions2251 #move_sequence_after2252 moves the whole sequence of items to the middle of the nearest gap2253 finds a gap if there are unused positions2254 behaves like versioned description2255 associations2256 should have many description_versions2257 save_description_version2258 when feature is enabled2259 when description was changed2260 saves the old and new description for the first update2261 only saves the new description for subsequent updates2262 sets the new description version to `saved_description_version`2263 clears `saved_description_version` after another save that does not change description2264 when description was not changed2265 does not save any description version2266 when feature is disabled2267 does not save any description version2268Note2269 associations2270 should belong to project required:2271 should belong to noteable required:2272 should belong to author class_name => User required:2273 should have many todos2274 modules2275 should includes the Participable module2276 should includes the Mentionable module2277 should includes the Awardable module2278 validation2279 should validate that the length of :note is at most 10000002280 should validate that :note cannot be empty/falsy2281 should validate that :project cannot be empty/falsy2282 when note is on commit2283 should validate that :commit_id cannot be empty/falsy2284 should not validate that :noteable_id cannot be empty/falsy2285 when note is not on commit2286 should not validate that :commit_id cannot be empty/falsy2287 should validate that :noteable_id cannot be empty/falsy2288 when noteable and note project differ2289 should be invalid2290 when noteable and note project are the same2291 should be valid2292 when project is missing for a project related note2293 should be invalid2294 when noteable is a personal snippet2295 is valid without project2296 max notes limit2297 when creating a system note2298 should be valid2299 when creating a user note2300 should not be valid2301 when updating an existing note on a noteable that already exceeds the limit2302 should be valid2303 Commit notes2304 is accessible through #noteable2305 saves a valid note2306 is recognized by #for_commit?2307 keeps the commit around2308 does not generate N+1 queries for participants2309 authorization2310 read2311 should be falsey2312 should be truthy2313 should be falsey2314 write2315 should be falsey2316 should be truthy2317 should be falsey2318 admin2319 should be falsey2320 should be truthy2321 should be falsey2322 behaves like an editable mentionable2323 creates new cross-reference notes when the mentionable text is edited2324 behaves like a mentionable2325 generates a descriptive back-reference2326 extracts references from its reference property2327 creates cross-reference notes2328 when there are cached markdown fields2329 sends in cached markdown fields when appropriate2330 when there are cached markdown fields2331 refreshes markdown cache if necessary2332 #all_references2333 reads the rendered note body from the cache2334 editable?2335 returns true2336 returns false2337 edited?2338 with updated_by2339 returns true2340 without updated_by2341 returns false2342 confidential?2343 delegates to noteable2344 is falsey when noteable can't be confidential2345 #visible_for?2346 cross_reference_visible: true, system_note_viewable: true, result: false2347 returns expected result2348 cross_reference_visible: false, system_note_viewable: true, result: true2349 returns expected result2350 cross_reference_visible: false, system_note_viewable: false, result: false2351 returns expected result2352 #system_note_viewable_by?(user)2353 when system_note_metadata is not present2354 returns true2355 system_note_metadata isn't of type 'branch'2356 returns true2357 user doesn't have :download_code ability2358 returns false2359 user has the :download_code ability2360 returns true2361 cross_reference_not_visible_for?2362 when there is one reference in note2363 behaves like checks references2364 returns true2365 returns false2366 returns false if user visible reference count set2367 returns true if ref count is 02368 when there are two references in note2369 returns true if user visible reference count set and there is a private reference2370 behaves like checks references2371 returns true2372 returns false2373 returns false if user visible reference count set2374 returns true if ref count is 02375 #cross_reference?2376 falsey for user-generated notes2377 when the note might contain cross references2378 delegates to the cross-reference regex2379 delegates to the cross-reference regex2380 delegates to the cross-reference regex2381 delegates to the cross-reference regex2382 delegates to the cross-reference regex2383 delegates to the cross-reference regex2384 delegates to the cross-reference regex2385 delegates to the cross-reference regex2386 when the note cannot contain cross references2387 scan for a `mentioned in` prefix2388 when system note metadata is not present2389 delegates to the system note service2390 with a system note2391 with :label action2392 should be falsy2393 behaves like system_note_metadata includes note action2394 delegates to the cross-reference regex2395 with cross reference label note2396 should be truthy2397 with :milestone action2398 should be falsy2399 behaves like system_note_metadata includes note action2400 delegates to the cross-reference regex2401 with cross reference milestone note2402 should be truthy2403 clear_blank_line_code!2404 clears a blank line code before validation2405 #participants2406 includes the note author2407 #start_of_discussion?2408 returns true when note is the start of a discussion2409 returns false when note is a reply2410 .find_discussion2411 returns a discussion with multiple notes2412 .grouped_diff_discussions2413 active diff discussions2414 includes active discussions2415 doesn't include outdated discussions2416 groups the discussions by line code2417 with image discussions2418 groups image discussions by file identifier2419 groups text discussions by line code2420 diff discussions for older diff refs2421 for diff refs a discussion was created at2422 includes discussions that were created then2423 groups the discussions by original line code2424 for diff refs a discussion was last active at2425 includes discussions that were last active2426 groups the discussions by line code2427 #for_personal_snippet?2428 returns false for a project snippet note2429 returns true for a personal snippet note2430 #to_ability_name2431 returns note2432 #noteable_ability_name2433 returns project_snippet for a project snippet note2434 returns personal_snippet for a personal snippet note2435 returns merge_request for an MR note2436 returns issue for an issue note2437 returns commit for a commit note2438 #cache_markdown_field2439 note for a project snippet2440 creates a note2441 note for a personal snippet2442 creates a note2443 #can_be_discussion_note?2444 for a note on a merge request2445 returns true2446 for a note on an issue2447 returns true2448 for a note on a commit2449 returns true2450 for a note on a snippet2451 returns true2452 for a diff note on merge request2453 returns false2454 for a diff note on commit2455 returns false2456 for a discussion note2457 returns false2458 #discussion_class2459 when the note is displayed out of context2460 returns OutOfContextDiscussion2461 when the note is displayed in the original context2462 returns IndividualNoteDiscussion2463 #discussion_id2464 when it is newly created2465 has a discussion id2466 when it didn't store a discussion id before2467 has a discussion id2468 when the note is displayed out of context2469 overrides the discussion id2470 #to_discussion2471 returns a discussion with just this note2472 #discussion2473 when the note is part of a discussion2474 returns the discussion this note is in2475 when the note is not part of a discussion2476 returns a discussion with just this note2477 #part_of_discussion?2478 for a regular note2479 returns false2480 for a diff note2481 returns true2482 for a discussion note2483 returns true2484 #in_reply_to?2485 for a note2486 when part of a discussion2487 checks if the note is in reply to the other discussion2488 when not part of a discussion2489 checks if the note is in reply to the other noteable2490 for a discussion2491 when part of the same discussion2492 returns true2493 when not part of the same discussion2494 returns false2495 for a noteable2496 when a comment on the same noteable2497 returns true2498 when not a comment on the same noteable2499 returns false2500 #references2501 when part of a discussion2502 references all earlier notes in the discussion2503 when not part of a discussion2504 returns the noteable2505 expiring ETag cache2506 expires cache for note's issue when note is saved2507 expires cache for note's issue when note is destroyed2508 when issuable etag caching is disabled2509 does not store cache key2510 for merge requests2511 when adding a note to the MR2512 expires the MR note etag cache2513 when adding a note to a commit on the MR2514 expires the MR note etag cache2515 #with_notes_filter2516 when notes filter is nil2517 should include #<Note id: 150, note: "My title 561", noteable_type: "Issue", author_id: 997, created_at: "2019-12-13......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil> and #<Note id: 151, note: "My title 563", noteable_type: "Issue", author_id: 998, created_at: "2019-12-13......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2518 when notes filter is set to all notes2519 should include #<Note id: 152, note: "My title 565", noteable_type: "Issue", author_id: 999, created_at: "2019-12-13......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil> and #<Note id: 153, note: "My title 567", noteable_type: "Issue", author_id: 1000, created_at: "2019-12-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2520 when notes filter is set to only comments2521 should include #<Note id: 154, note: "My title 569", noteable_type: "Issue", author_id: 1001, created_at: "2019-12-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2522 should not include #<Note id: 157, note: "My title 575", noteable_type: "Issue", author_id: 1004, created_at: "2019-12-1......", cached_markdown_version: 1179648, change_position: nil, resolved_by_push: nil, review_id: nil>2523 #special_role=2524 assigns role2525 does not assign unknown role2526 #parent2527 returns project for project notes2528 returns nil for personal snippet note2529 scopes2530 #for_note_or_capitalized_note2531 returns the expected matching note2532 returns the expected capitalized note2533 does not support pattern matching2534 #like_note_or_capitalized_note2535 returns the expected matching note2536 returns the expected capitalized note2537 supports pattern matching2538Issuable::BulkUpdateService2539 with issuables at a project level2540 close issues2541 succeeds and returns the correct number of issues updated2542 closes all the issues passed2543 reopen issues2544 succeeds and returns the correct number of issues updated2545 reopens all the issues passed2546 updating merge request assignee2547 when the new assignee ID is a valid user2548 succeeds2549 updates the assignee to the user ID passed2550 when the new assignee ID is 02551 unassigns the issues2552 when the new assignee ID is not present2553 does not unassign2554 updating issue assignee2555 when the new assignee ID is a valid user2556 succeeds2557 updates the assignee to the user ID passed2558 when the new assignee ID is 02559 unassigns the issues2560 when the new assignee ID is not present2561 does not unassign2562 updating milestones2563 behaves like updates milestones2564 succeeds2565 updates the issuables milestone2566 updating labels2567 behaves like updating labels2568 when label_ids are passed2569 updates the labels of all issues passed to the labels passed2570 does not update issues not passed in2571 when those label IDs are empty2572 updates the issues passed to have no labels2573 when add_label_ids are passed2574 adds those label IDs to all issues passed2575 does not update issues not passed in2576 when remove_label_ids are passed2577 removes those label IDs from all issues passed2578 does not update issues not passed in2579 when add_label_ids and remove_label_ids are passed2580 adds the label IDs to all issues passed2581 removes the label IDs from all issues passed2582 does not update issues not passed in2583 when add_label_ids and label_ids are passed2584 adds the label IDs to all issues passed2585 ignores the label IDs parameter2586 does not update issues not passed in2587 when remove_label_ids and label_ids are passed2588 removes the label IDs from all issues passed2589 ignores the label IDs parameter2590 does not update issues not passed in2591 when add_label_ids, remove_label_ids, and label_ids are passed2592 adds the label IDs to all issues passed2593 removes the label IDs from all issues passed2594 ignores the label IDs parameter2595 does not update issues not passed in2596 subscribe to issues2597 subscribes the given user2598 unsubscribe from issues2599 unsubscribes the given user2600 updating issues from external project2601 updates only issues that belong to the parent project2602 with issuables at a group level2603 updating milestones2604 when issues2605 behaves like updates milestones2606 succeeds2607 updates the issuables milestone2608 when merge requests2609 behaves like updates milestones2610 succeeds2611 updates the issuables milestone2612 updating labels2613 behaves like updating labels2614 when label_ids are passed2615 updates the labels of all issues passed to the labels passed2616 does not update issues not passed in2617 when those label IDs are empty2618 updates the issues passed to have no labels2619 when add_label_ids are passed2620 adds those label IDs to all issues passed2621 does not update issues not passed in2622 when remove_label_ids are passed2623 removes those label IDs from all issues passed2624 does not update issues not passed in2625 when add_label_ids and remove_label_ids are passed2626 adds the label IDs to all issues passed2627 removes the label IDs from all issues passed2628 does not update issues not passed in2629 when add_label_ids and label_ids are passed2630 adds the label IDs to all issues passed2631 ignores the label IDs parameter2632 does not update issues not passed in2633 when remove_label_ids and label_ids are passed2634 removes the label IDs from all issues passed2635 ignores the label IDs parameter2636 does not update issues not passed in2637 when add_label_ids, remove_label_ids, and label_ids are passed2638 adds the label IDs to all issues passed2639 removes the label IDs from all issues passed2640 ignores the label IDs parameter2641 does not update issues not passed in2642 with issues from external group2643 updates issues that belong to the parent group or descendants2644Group2645 associations2646 should have many projects2647 should have many group_members dependent => destroy2648 should have many users through group_members2649 should have many owners through group_members2650 should have many requesters dependent => destroy2651 should have many members_and_requesters2652 should have many project_group_links dependent => destroy2653 should have many shared_projects through project_group_links2654 should have many notification_settings dependent => destroy2655 should have many labels class_name => GroupLabel2656 should have many variables class_name => Ci::GroupVariable2657 should have many uploads2658 should have one chat_team2659 should have many custom_attributes class_name => GroupCustomAttribute2660 should have many badges class_name => GroupBadge2661 should have many cluster_groups class_name => Clusters::Group2662 should have many clusters class_name => Clusters::Cluster2663 should have many container_repositories2664 #members & #requesters2665 behaves like members and requesters associations2666 #members_and_requesters2667 includes members and requesters2668 #members2669 includes members and exclude requesters2670 #requesters2671 does not include requesters2672 modules2673 should includes the Referable module2674 validations2675 should validate that :name cannot be empty/falsy2676 should validate that :path cannot be empty/falsy2677 should not validate that :owner cannot be empty/falsy2678 should validate that :two_factor_grace_period cannot be empty/falsy2679 should validate that :two_factor_grace_period looks like a number greater than or equal to 02680 path validation2681 rejects paths reserved on the root namespace when the group has no parent2682 allows root paths when the group has a parent2683 rejects any wildcard paths when not a top level group2684 #notification_settings2685 also gets notification settings from parent groups2686 when sub group is deleted2687 does not delete parent notification settings2688 #notification_email_for2689 when both group notification emails are set2690 returns subgroup notification email2691 when subgroup notification email is blank2692 returns parent group notification email2693 when only the parent group notification email is set2694 returns parent group notification email2695 #visibility_level_allowed_by_parent2696 without a parent2697 is valid2698 with a parent2699 when visibility of sub group is greater than the parent2700 is invalid2701 when visibility of sub group is lower or equal to the parent2702 is valid2703 is valid2704 #visibility_level_allowed_by_projects2705 when group has a lower visibility2706 is invalid2707 when group has a higher visibility2708 is valid2709 #visibility_level_allowed_by_sub_groups2710 when parent group has a lower visibility2711 is invalid2712 when parent group has a higher visibility2713 is valid2714 .public_or_visible_to_user2715 when user is nil2716 should contain exactly #<Group id:1315 @group174>2717 when user2718 when user does not have access to any private group2719 should contain exactly #<Group id:1320 @group179> and #<Group id:1318 @group177>2720 when user is a member of private group2721 should contain exactly #<Group id:1323 @group181>, #<Group id:1324 @group182>, and #<Group id:1322 @group180>2722 when user is a member of private subgroup2723 should contain exactly #<Group id:1330 @group184/group186>, #<Group id:1328 @group185>, and #<Group id:1326 @group183>2724 scopes2725 public_only2726 should eq [#<Group id:1331 @group187>]2727 public_and_internal_only2728 should contain exactly #<Group id:1334 @group190> and #<Group id:1336 @group192>2729 non_public_only2730 should contain exactly #<Group id:1338 @group194> and #<Group id:1339 @group195>2731 #to_reference2732 returns a String reference to the object2733 #users2734 should eq #<ActiveRecord::Associations::CollectionProxy []>2735 #human_name2736 should eq "group198"2737 #add_user2738 should include #<User id:1149 @user1164>2739 #add_users2740 updates the group permission2741 #avatar_type2742 is true if avatar is image2743 is false if avatar is html page2744 #avatar_url2745 when avatar file is uploaded2746 shows correct avatar url2747 .search2748 returns groups with a matching name2749 returns groups with a partially matching name2750 returns groups with a matching name regardless of the casing2751 returns groups with a matching path2752 returns groups with a partially matching path2753 returns groups with a matching path regardless of the casing2754 #has_owner?2755 should be truthy2756 should be falsey2757 should be falsey2758 should be falsey2759 should be falsey2760 should be falsey2761 should be falsey2762 #has_maintainer?2763 should be falsey2764 should be truthy2765 should be falsey2766 should be falsey2767 should be falsey2768 should be falsey2769 should be falsey2770 #last_owner?2771 should be truthy2772 with two owners2773 should be falsy2774 with owners from a parent2775 should be falsy2776 #lfs_enabled?2777 LFS enabled globally2778 returns true when nothing is set2779 returns false when set to false2780 returns true when set to true2781 LFS disabled globally2782 returns false when nothing is set2783 returns false when set to false2784 returns false when set to true2785 #owners2786 returns the owners of a Group2787 #web_url2788 returns the canonical URL2789 nested group2790 should include "groups/group238/group237"2791 nested group2792 should be valid2793 should be a kind of Group(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_at: d...disabled: boolean, max_pages_size: integer, max_artifacts_size: integer, mentions_disabled: boolean)2794 #max_member_access_for_user2795 group shared with another group2796 when feature flag share_group_with_group is enabled2797 with user in the group2798 returns correct access level2799 with user in the parent group2800 returns correct access level2801 with user in the child group2802 returns correct access level2803 when feature flag share_group_with_group is disabled2804 with user in the group2805 returns correct access level2806 with user in the parent group2807 returns correct access level2808 with user in the child group2809 returns correct access level2810 multiple groups shared with group2811 returns correct access level2812 #members_with_parents2813 returns parents members2814 #direct_and_indirect_members2815 returns parents members2816 returns descendant members2817 #users_with_descendants2818 returns member users on every nest level without duplication2819 #direct_and_indirect_users2820 returns member users on every nest level without duplication2821 does not return members of projects belonging to ancestor groups2822 #project_users_with_descendants2823 returns members of all projects in group and subgroups2824 #user_ids_for_project_authorizations2825 returns the user IDs for which to refresh authorizations2826 #update_two_factor_requirement2827 group membership2828 is called when require_two_factor_authentication is changed2829 is called when two_factor_grace_period is changed2830 is not called when other attributes are changed2831 calls #update_two_factor_requirement on each group member2832 sub groups and projects2833 enables two_factor_requirement for group member2834 expanded group members2835 enables two_factor_requirement for subgroup member2836 does not enable two_factor_requirement for ancestor group member2837 project members2838 does not enable two_factor_requirement for child project member2839 does not enable two_factor_requirement for subgroup child project member2840 #path_changed_hook2841 for a new group2842 does not trigger system hook2843 for an existing group2844 when the path is changed2845 triggers the rename system hook2846 when the path is not changed2847 does not trigger system hook2848 #ci_variables_for2849 when the ref is not protected2850 contains only the CI variables2851 when the ref is a protected branch2852 behaves like ref is protected2853 contains all the variables2854 when the ref is a protected tag2855 behaves like ref is protected2856 contains all the variables2857 when group has children2858 returns all variables belong to the group and parent groups2859 #highest_group_member2860 when the user is not a member of any group in the hierarchy2861 returns nil2862 when the user is only a member of one group in the hierarchy2863 returns that group member2864 when the user is a member of several groups in the hierarchy2865 returns the group member with the highest access level2866 with uploads2867 behaves like model with uploads2868 .destroy2869 with mounted uploader2870 deletes remote uploads2871 with not mounted uploads2872 with local files2873 deletes any FileUploader uploads which are not mounted2874 deletes local files2875 with remote files2876 deletes any FileUploader uploads which are not mounted2877 deletes remote files2878 #first_auto_devops_config2879 instance_value: true, group_value: nil, config: {:status=>true, :scope=>:instance}2880 should eq {:scope=>:instance, :status=>true}2881 instance_value: true, group_value: true, config: {:status=>true, :scope=>:group}2882 should eq {:scope=>:group, :status=>true}2883 instance_value: true, group_value: false, config: {:status=>false, :scope=>:group}2884 should eq {:scope=>:group, :status=>false}2885 instance_value: false, group_value: nil, config: {:status=>false, :scope=>:instance}2886 should eq {:scope=>:instance, :status=>false}2887 instance_value: false, group_value: true, config: {:status=>true, :scope=>:group}2888 should eq {:scope=>:group, :status=>true}2889 instance_value: false, group_value: false, config: {:status=>false, :scope=>:group}2890 should eq {:scope=>:group, :status=>false}2891 with parent groups2892 instance_value: true, parent_value: nil, group_value: nil, config: {:status=>true, :scope=>:instance}2893 should eq {:scope=>:instance, :status=>true}2894 instance_value: true, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}2895 should eq {:scope=>:group, :status=>true}2896 instance_value: true, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}2897 should eq {:scope=>:group, :status=>false}2898 instance_value: true, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}2899 should eq {:scope=>:group, :status=>true}2900 instance_value: true, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}2901 should eq {:scope=>:group, :status=>true}2902 instance_value: true, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}2903 should eq {:scope=>:group, :status=>false}2904 instance_value: true, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}2905 should eq {:scope=>:group, :status=>false}2906 instance_value: true, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}2907 should eq {:scope=>:group, :status=>true}2908 instance_value: true, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}2909 should eq {:scope=>:group, :status=>false}2910 instance_value: false, parent_value: nil, group_value: nil, config: {:status=>false, :scope=>:instance}2911 should eq {:scope=>:instance, :status=>false}2912 instance_value: false, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}2913 should eq {:scope=>:group, :status=>true}2914 instance_value: false, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}2915 should eq {:scope=>:group, :status=>false}2916 instance_value: false, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}2917 should eq {:scope=>:group, :status=>true}2918 instance_value: false, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}2919 should eq {:scope=>:group, :status=>true}2920 instance_value: false, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}2921 should eq {:scope=>:group, :status=>false}2922 instance_value: false, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}2923 should eq {:scope=>:group, :status=>false}2924 instance_value: false, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}2925 should eq {:scope=>:group, :status=>true}2926 instance_value: false, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}2927 should eq {:scope=>:group, :status=>false}2928 #auto_devops_enabled?2929 when auto devops is explicitly enabled on group2930 should be truthy2931 when auto devops is explicitly disabled on group2932 should be falsy2933 when auto devops is implicitly enabled or disabled2934 when auto devops is enabled on root group2935 should be truthy2936 when auto devops is disabled on root group2937 should be falsy2938 when auto devops is disabled on parent group and enabled on root group2939 should be falsy2940 project_creation_level2941 outputs the default one if it is nil2942 subgroup_creation_level2943 defaults to maintainers2944 #access_request_approvers_to_be_notified2945 returns a maximum of ten, active, non_requested owners of the group in recent_sign_in descending order2946 .groups_including_descendants_by2947 returns the expected groups for a group and its descendants2948Projects::ForkService2949 when forking a new project2950 fork by user2951 fork project2952 when forker is a guest2953 should not be persisted2954 should eq ["is forbidden"]2955 does not create a fork network2956 successfully creates project in the user namespace2957 should be persisted2958 should be empty2959 should eq #<User id:1375 @user1390>2960 should eq #<Namespace id: 1756, name: "John Doe1392", path: "user1392", owner_id: 1377, created_at: "2019-12-13...evel: 1, emails_disabled: nil, max_pages_size: nil, max_artifacts_size: nil, mentions_disabled: nil>2961 should be zero2962 should eq "wow such project"2963 should be exists2964 should eq nil2965 after forking the from-project still has its avatar2966 flushes the forks count cache of the source project2967 creates a fork network with the new project and the root project set2968 imports the repository of the forked project2969 creating a fork of a fork2970 sets the root of the network to the root project2971 sets the forked_from_project on the membership2972 project already exists2973 fails due to validation, not transaction failure2974 repository in legacy storage already exists2975 does not allow creation2976 when repository disk validation is explicitly skipped2977 allows fork project creation2978 GitLab CI is enabled2979 forks and enables CI for fork2980 CI/CD settings2981 when origin has git depth specified2982 inherits default_git_depth from the origin project2983 when origin does not define git depth2984 the fork has git depth set to 02985 when project has restricted visibility level2986 and only one visibility level is restricted2987 creates fork with lowest level2988 and all visibility levels are restricted2989 creates fork with private visibility levels2990 fork to namespace2991 fork project for group2992 group owner successfully forks project into the group2993 fork project for group when user not owner2994 group developer fails to fork project into the group2995 project already exists in group2996 fails due to validation, not transaction failure2997 when the namespace has a lower visibility level than the project2998 creates the project with the lower visibility level2999 when forking with object pools3000 when no pool exists3001 creates a new object pool3002 when a pool already exists3003 joins the object pool3004 when linking fork to an existing project3005 if project is already forked3006 does not create fork relation3007 if project is not forked3008 creates fork relation3009 flushes the forks count cache of the source project3010 leaves no LFS objects dangling3011 if the fork is not allowed3012 does not delete the LFS objects3013Gitlab::ImportExport::RelationRenameService3014 when importing3015 when the file has only old relationship names3016 renames old relationships to the new name3017 when the file has both the old and new relationships3018 uses the new relationships and removes the old ones from the hash3019 when the file has only new relationship names3020 uses the new relationships3021 when exporting3022 adds old relationships to the exported file3023Gitlab::UsageData3024 #data3025unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.3026unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.3027 gathers usage data3028 gathers usage counts3029 gathers projects data correctly3030 works when queries time out3031 #usage_data_counters3032 should all respond to #totals3033 does not have any conflicts3034 the results of calling #totals on all objects in the array3035 should all be a kind of Hash3036 should all have attributes {:keys => (all be a kind of Symbol), :values => (all be a kind of Integer)}3037 #features_usage_data_ce3038 gathers feature usage data3039 #components_usage_data3040 gathers components usage data3041 #ingress_modsecurity_usage3042 gathers variable data3043 #license_usage_data3044 gathers license data3045 #count3046 returns the count when counting succeeds3047 returns the count for count_by when provided3048 returns the fallback value when counting fails3049 #approximate_counts3050 gets approximate counts for selected models3051 returns default values if counts can not be retrieved3052ProjectWiki3053 should delegate #repository_storage to the #project object3054 should delegate #hashed_storage? to the #project object3055 #full_path3056 returns the project path with namespace with the .wiki extension3057 returns the same value as #full_path3058 #web_url3059 returns the full web URL to the wiki3060 #url_to_repo3061 returns the correct ssh url to the repo3062 #ssh_url_to_repo3063 equals #url_to_repo3064 #http_url_to_repo3065 when a custom HTTP clone URL root is not set3066 returns the full http url to the repo3067 when a custom HTTP clone URL root is set3068 returns the full http url to the repo, with the root replaced with the custom one3069 #wiki_base_path3070 returns the wiki base path3071 #wiki3072 contains a Gitlab::Git::Wiki instance3073 creates a new wiki repo if one does not yet exist3074 creates a new wiki repo with a default commit message3075 raises CouldNotCreateWikiError if it can't create the wiki repository3076 #empty?3077 when the wiki repository is empty3078 #empty?3079 should be truthy3080 when the wiki has pages3081 #empty?3082 should be falsey3083 only instantiates a Wiki page once3084 #list_pages3085 returns an array of WikiPage instances3086 does not load WikiPage content by default3087 returns all pages by default3088 with limit option3089 returns limited set of pages3090 with sorting options3091 returns pages sorted by title by default3092 returns pages sorted by created_at3093 with load_content option3094 loads WikiPage content3095 #find_page3096 returns the latest version of the page if it exists3097 returns nil if the page does not exist3098 can find a page by slug3099 returns a WikiPage instance3100 pages with multibyte-character title3101 can find a page by slug3102 pages with invalidly-encoded content3103 can find the page3104 #find_sidebar3105 finds the page defined as _sidebar3106 #find_file3107 returns the latest version of the file if it exists3108 returns nil if the page does not exist3109 returns a Gitlab::Git::WikiFile instance3110 returns the whole file3111 #create_page3112 creates a new wiki page3113 returns false when a duplicate page exists3114 stores an error message when a duplicate page exists3115 sets the correct commit message3116 sets the correct commit email3117 updates project activity3118 #update_page3119 updates the content of the page3120 sets the correct commit message3121 sets the correct commit email3122 updates project activity3123 #delete_page3124 deletes the page3125 sets the correct commit email3126 updates project activity3127 #create_repo!3128 creates a repository3129 #ensure_repository3130 creates the repository if it not exist3131 does not create the repository if it exists3132 #hook_attrs3133 returns a hash with values3134Gitlab::UserAccess3135 #can_push_to_branch?3136 push to none protected branch3137 returns true if user is a maintainer3138 returns true if user is a developer3139 returns false if user is a reporter3140 push to empty project3141 returns true for admins3142 returns true if user is maintainer3143 returns false if user is developer and project is fully protected3144 returns false if user is developer and it is not allowed to push new commits but can merge into branch3145 returns true if user is developer and project is unprotected3146 returns true if user is developer and project grants developers permission3147 push to protected branch3148 returns true for admins3149 returns true if user is a maintainer3150 returns false if user is a developer3151 returns false if user is a reporter3152 returns false if branch does not exist3153 push to protected branch if allowed for developers3154 returns true if user is a maintainer3155 returns true if user is a developer3156 returns false if user is a reporter3157 allowing pushes to maintainers of forked projects3158 allows users that have push access to the canonical project to push to the MR branch3159 does not allow the user to push to other branches3160 does not allow the user to push if he does not have push access to the canonical project3161 merge to protected branch if allowed for developers3162 returns true if user is a maintainer3163 returns true if user is a developer3164 returns false if user is a reporter3165 #can_create_tag?3166 push to none protected tag3167 returns true if user is a maintainer3168 returns true if user is a developer3169 returns false if user is a reporter3170 push to protected tag3171 returns true if user is a maintainer3172 returns false if user is a developer3173 returns false if user is a reporter3174 push to protected tag if allowed for developers3175 returns true if user is a maintainer3176 returns true if user is a developer3177 returns false if user is a reporter3178 #can_delete_branch?3179 delete unprotected branch3180 returns true if user is a maintainer3181 returns true if user is a developer3182 returns false if user is a reporter3183 delete protected branch3184 returns true if user is a maintainer3185 returns false if user is a developer3186 returns false if user is a reporter3187Gitlab::CycleAnalytics::GroupStageSummary3188 #new_issues3189 with from date3190 finds the number of issues created after it3191 with subgroups3192 finds issues from them3193 with projects specified in options3194 finds issues from those projects3195 when `from` and `to` parameters are provided3196 finds issues from 5 days ago3197 with other projects3198 doesn't find issues from them3199 #deploys3200 with from date3201 finds the number of deploys made created after it3202 with subgroups3203 finds deploys from them3204 with projects specified in options3205 shows deploys from those projects3206 when `from` and `to` parameters are provided3207 finds deployments from 5 days ago3208 with other projects3209 doesn't find deploys from them3210BuildDetailsEntity3211 inherits from JobEntity3212 #as_json3213 contains the needed key value pairs3214 when the user has access to issues and merge requests3215 when merge request orginates from the same project3216 contains the needed key value pairs3217 exposes correct details of the merge request3218 has a correct merge request path3219 when merge request is from a fork3220 contains the needed key value pairs3221 exposes details of the merge request3222 has a merge request path to a target project3223 when the build has not been erased3224 exposes a build erase path3225 when the build has been erased3226 exposes the user who erased the build3227 when the user can only read the build3228 won't display the paths to issues and merge requests3229 when the build has failed3230 should include {:failure_reason => "unmet_prerequisites"}3231 should include {:callout_message => "The job failed to complete prerequisite tasks"}3232 when the build has failed due to a missing dependency3233 should include {:failure_reason => "missing_dependency_failure"}3234 includes the failing dependencies in the callout message3235 when a build has environment with latest deployment3236 does not serialize latest deployment commit and associated builds3237 when the build has reports3238 exposes the report artifacts3239Gitlab::ImportExport::GroupTreeSaver3240 saves the group tree into a json object3241 saves group successfully3242 :export_fast_serialize feature flag checks3243 when :export_fast_serialize feature is enabled3244 uses FastHashSerializer3245 when :export_fast_serialize feature is disabled3246 is serialized via built-in `as_json`3247 JSON3248 saves the correct json3249 has milestones3250 has labels3251 has boards3252 has group members3253 has priorities associated to labels3254 has badges3255 group children3256 exports group children3257 exports group children of children3258 group members3259 exports group members as group owner3260 as admin3261 exports group members as admin3262 exports group members3263 group attributes3264 does not contain the runners token3265Members::ApproveAccessRequestService3266 when an access requester is found3267 when current user is nil3268 and :ldap option is not given3269 behaves like a service raising Gitlab::Access::AccessDeniedError3270 raises Gitlab::Access::AccessDeniedError3271 behaves like a service raising Gitlab::Access::AccessDeniedError3272 raises Gitlab::Access::AccessDeniedError3273 and :skip_authorization option is false3274 behaves like a service raising Gitlab::Access::AccessDeniedError3275 raises Gitlab::Access::AccessDeniedError3276 behaves like a service raising Gitlab::Access::AccessDeniedError3277 raises Gitlab::Access::AccessDeniedError3278 and :skip_authorization option is true3279 behaves like a service approving an access request3280 succeeds3281 returns a <Source>Member3282 with a custom access level3283 returns a ProjectMember with the custom access level3284 behaves like a service approving an access request3285 succeeds3286 returns a <Source>Member3287 with a custom access level3288 returns a ProjectMember with the custom access level3289 when current user cannot approve access request to the project3290 behaves like a service raising Gitlab::Access::AccessDeniedError3291 raises Gitlab::Access::AccessDeniedError3292 behaves like a service raising Gitlab::Access::AccessDeniedError3293 raises Gitlab::Access::AccessDeniedError3294 when current user can approve access request to the project3295 behaves like a service approving an access request3296 succeeds3297 returns a <Source>Member3298 with a custom access level3299 returns a ProjectMember with the custom access level3300 behaves like a service approving an access request3301 succeeds3302 returns a <Source>Member3303 with a custom access level3304 returns a ProjectMember with the custom access level3305RunnerJobsFinder3306 #execute3307 when params is empty3308 returns all jobs assigned to Runner3309 when params contains status3310 when status is created3311 returns matched job3312 when status is preparing3313 returns matched job3314 when status is pending3315 returns matched job3316 when status is running3317 returns matched job3318 when status is success3319 returns matched job3320 when status is failed3321 returns matched job3322 when status is canceled3323 returns matched job3324 when status is skipped3325 returns matched job3326 when status is manual3327 returns matched job3328 when status is scheduled3329 returns matched job3330 when order_by and sort are specified3331 when order_by id and sort is asc3332 sorts as id: :asc3333 when order_by is specified and sort is not specified3334 when order_by id and sort is not specified3335 sorts as id: :desc3336Gitlab::DataBuilder::Push3337 .build3338 with changed files3339 returns commit hook data3340 without changed files3341 returns commit hook data without include deltas3342 .build_sample3343 should be a kind of Hash3344 should eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"3345 should eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3346 should eq "refs/heads/master"3347 should eq 33348 should eq 33349 should eq ["bar/branch-test.txt"]3350 should eq []3351 should eq []3352 contains project data3353 contains deprecated repository data3354 .sample_data3355 should be a kind of Hash3356 should eq "95790bf891e76fee5e1747ab589903a6a1f80f22"3357 should eq "da1560886d4f094c3e6c9ef40349f7d38b5d27d7"3358 should eq "refs/heads/master"3359 should eq 153360 should eq 13361 should eq 13362 contains project data3363 .build3364 should be a kind of Hash3365 should eq "0000000000000000000000000000000000000000"3366 should eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"3367 should eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"3368 should eq "refs/tags/v1.1.0"3369 should eq nil3370 should eq "John Doe1988"3371 should eq "user1980"3372 should eq "public-email@example.com"3374 should eq 9313375 should be a kind of Hash3376 should be empty3377 should be zero3378 contains project data3379 contains deprecated repository data3380 does not raise an error when given nil commits3381 .build_bulk3382 should eq {:action=>:created, :ref_count=>2, :ref_type=>:branch}3383Gitlab::Git::Wiki3384 #pages3385 returns all the pages3386 returns only one page3387 #page3388 returns the right page3389 #delete_page3390 only removes the page with the same path3391 #preview_slug3392 title: "The Best Thing", format: :markdown, expected_slug: "The-Best-Thing"3393 should eq "The-Best-Thing"3394 matches the slug generated by gitaly3395 title: "The Best Thing", format: :md, expected_slug: "The-Best-Thing"3396 should eq "The-Best-Thing"3397 matches the slug generated by gitaly3398 title: "The Best Thing", format: :txt, expected_slug: "The-Best-Thing"3399 should eq "The-Best-Thing"3400 matches the slug generated by gitaly3401 title: "A Subject/Title Here", format: :txt, expected_slug: "A-Subject/Title-Here"3402 should eq "A-Subject/Title-Here"3403 matches the slug generated by gitaly3404 title: "A subject", format: :txt, expected_slug: "A-subject"3405 should eq "A-subject"3406 matches the slug generated by gitaly3407 title: "A 1/B 2/C 3", format: :txt, expected_slug: "A-1/B-2/C-3"3408 should eq "A-1/B-2/C-3"3409 matches the slug generated by gitaly3410 title: "subject/title", format: :txt, expected_slug: "subject/title"3411 should eq "subject/title"3412 matches the slug generated by gitaly3413 title: "subject/title.md", format: :txt, expected_slug: "subject/title.md"3414 should eq "subject/title.md"3415 matches the slug generated by gitaly3416 title: "foo<bar>+baz", format: :txt, expected_slug: "foo-bar--baz"3417 should eq "foo-bar--baz"3418 matches the slug generated by gitaly3419 title: "foo%2Fbar", format: :txt, expected_slug: "foo%2Fbar"3420 should eq "foo%2Fbar"3421 matches the slug generated by gitaly3422 title: "", format: :markdown, expected_slug: ".md"3423 should eq ".md"3424 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3425 title: "", format: :md, expected_slug: ".md"3426 should eq ".md"3427 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3428 title: "", format: :txt, expected_slug: ".txt"3429 should eq ".txt"3430 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3431EnvironmentsFinder3432 #execute3433 tagged deployment3434 returns environment when with_tags is set3435 does not return environment when no with_tags is set3436 does not return environment when commit is not part of deployment3437 branch deployment3438 returns environment when ref is set3439 does not environment when ref is different3440 does not return environment when commit is not part of deployment3441 returns environment when commit constraint is not set3442 commit deployment3443 returns environment3444 recently updated3445 when last deployment to environment is the most recent one3446 finds recently updated environment3447 when last deployment to environment is not the most recent3448 does not find environment3449 when there are two environments that deploy to the same branch3450 finds both environments3451Gitlab::BackgroundMigration::RemoveRestrictedTodos3452NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping3453NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping3454NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3455NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping3456NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3457NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3458 when a project is private3459 removes todos of users without project access3460 with a confidential issue3461 removes todos of users without project access and guests for confidential issues3462 when a project is public3463 when all features have the same visibility as the project, no confidential issues3464 does not remove any todos3465 with confidential issues3466 removes confidential issue todos for non authorized users3467 features visibility restrictions3468 when issues are restricted to project members3469 removes non members issue todos3470 when merge requests are restricted to project members3471 removes non members issue todos3472 when repository and merge requests are restricted to project members3473 removes non members commit and merge requests todos3474NOTICE: table "design_management_designs" does not exist, skipping3475NOTICE: table "design_management_designs_versions" does not exist, skipping3476NOTICE: table "design_management_versions" does not exist, skipping3477NOTICE: table "geo_container_repository_updated_events" does not exist, skipping3478NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping3479NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping3480NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping3481NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping3482NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping3483NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping3484Release3485 should be valid3486 associations3487 should belong to project required:3488 should belong to author class_name => User required:3489 should have many links class_name => Releases::Link3490 should have many milestones3491 should have many milestone_releases3492 should have one evidence3493 validation3494 should validate that :project cannot be empty/falsy3495 should validate that :description cannot be empty/falsy3496 should validate that :tag cannot be empty/falsy3497 when a release exists in the database without a name3498 does not require name3499 when a release is tied to a milestone for another project3500WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<ActiveRecord::RecordInvalid: Validation failed: does not have the same project as the milestone>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/scop/gitlab/spec/models/release_spec.rb:44:in `block (4 levels) in <top (required)>'.3501 creates a validation error3502 when a release is tied to a milestone linked to the same project3503 successfully links this release to this milestone3504 callbacks3505 creates a new Evidence object on after_commit3506 #assets_count3507 returns the number of sources3508 when a links exists3509 counts the link as an asset3510 excludes sources count when asked3511 #sources3512 returns sources3513 #upcoming_release?3514 during the backfill migration when released_at could be nil3515 handles a nil released_at value and returns false3516 evidence3517 #create_evidence!3518 when a release is created3519 creates one Evidence object too3520 when a release is deleted3521 also deletes the associated evidence3522 #notify_new_release3523 when a release is created3524 instantiates NewReleaseWorker to send notifications3525 when a release is updated3526 does not send any new notification3527 #name3528 name is nil3529 returns tag3530 #evidence_sha3531 when a release was created before evidence collection existed3532 should be nil3533 when a release was created with evidence collection3534 should eq "09f2b75eb73e4c84f1153eb18eef5048763dbe34ba2d"3535 #evidence_summary3536 when a release was created before evidence collection existed3537 should eq {}3538 when a release was created with evidence collection3539 should eq {"release"=>{"created_at"=>"2019-12-13T08:44:57.543Z", "description"=>"Awesome release", "id"=>19, "m...-12-13T08:44:57.450Z", "description"=>nil, "id"=>1007, "name"=>"project975"}, "tag_name"=>"v1.1.0"}}3540Gitlab::Ci::Status::Build::Play3541 #label3542 has a label that says it is a manual action3543 #status_tooltip3544 does not override status status_tooltip3545 #badge_tooltip3546 does not override status badge_tooltip3547 #has_action?3548 when user is allowed to update build3549 when user is allowed to trigger protected action3550 should have action3551 when user can not push to the branch3552 should not have action3553 when user is not allowed to update build3554 should not have action3555 #action_path3556 should include "86/play"3557 #action_icon3558 should eq "play"3559 #action_title3560 should eq "Play"3561 #action_button_title3562 should eq "Trigger this manual action"3563 .matches?3564 when build is playable3565 when build stops an environment3566 does not match3567 when build does not stop an environment3568 is a correct match3569 when build is not playable3570 does not match3571Gitlab::HookData::IssuableBuilder3572 #build3573 behaves like issuable hook data3574 contains project data3575 contains deprecated repository data3576 with a issue3577 contains issuable data3578 does not contain certain keys3579 changes are given3580 populates the :changes hash3581 does not contain certain keys3582 behaves like issuable hook data3583 contains project data3584 contains deprecated repository data3585 with a merge_request3586 contains issuable data3587 does not contain certain keys3588 changes are given3589 populates the :changes hash3590 does not contain certain keys3591 issue is assigned3592 returns correct hook data3593 merge_request is assigned3594 returns correct hook data3595DiscussionOnDiff3596 #truncated_diff_lines3597 when diff is greater than allowed number of truncated diff lines3598 returns fewer lines3599 with truncated diff lines diff limit set3600 when diff limit is higher than default3601 returns fewer lines than the default3602 when diff_limit is lower than default3603 returns fewer lines than the default3604 when some diff lines are meta3605 returns no meta lines3606 when the diff line does not exist on a legacy diff note3607 returns an empty array3608 when the discussion is on an image3609 returns an empty array3610 #line_code_in_diffs3611 when the discussion is active in the diff3612 returns the current line code3613 when the discussion was created in the diff3614 returns the original line code3615 when the discussion is unrelated to the diff3616 returns nil3617projects/edit3618 project export disabled3619 does not display the project export option3620 forking3621 project is not a fork3622 hides the remove fork relationship settings3623 project is a fork3624 shows the remove fork relationship settings to an authorized user3625 hides the fork relationship settings from an unauthorized user3626 hides the fork source from an unauthorized user3627 shows the fork source to an authorized user3628Gitlab::Chat::Command3629 #try_create_pipeline3630 returns nil when the command is not valid3631 tries to create the pipeline when a command is valid3632 #create_pipeline3633 creates the pipeline3634 creates the chat data for the pipeline3635 stores the chat name ID in the chat data3636 stores the response URL in the chat data3637 creates the environment variables for the pipeline3638Search::GlobalService3639 #execute3640 unauthenticated3641 returns public projects only3642 authenticated3643 returns public, internal and private projects3644 returns only public & internal projects3645 project name is searchable3646 does not return archived projects3647Banzai::ReferenceParser::CommitParser3648 #nodes_visible_to_user3649 when the link has a data-issue attribute3650 behaves like referenced feature visibility3651 when feature is disabled3652 does not create reference3653 when feature is enabled only for team members3654 does not create reference for non member3655 creates reference for member3656 when feature is enabled3657 creates reference3658 #referenced_by3659 when the link has a data-project attribute3660 when the link has a data-commit attribute3661 returns an Array of commits3662 returns an empty Array when the commit could not be found3663 skips projects without valid repositories3664 when the link does not have a data-commit attribute3665 returns an empty Array3666 when the link does not have a data-project attribute3667 returns an empty Array3668 #commit_ids_per_project3669 returns a Hash containing commit IDs per project3670 does not add a project when the data-commit attribute is empty3671 #find_commits3672 returns an Array of commit objects3673 skips commit IDs for which no commit could be found3674 when checking commits on another projects3675 behaves like no project N+1 queries3676 avoids N+1 queries in #nodes_visible_to_user3677Gitlab::LegacyGithubImport::ProjectCreator3678 #execute3679 creates a project3680 handle GitHub credentials3681 when GitHub project is private3682 sets project visibility to private3683 when GitHub project is public3684 sets project visibility to namespace visibility level3685 when importing into a user namespace3686 sets project visibility to user namespace visibility level3687 when visibility level is restricted3688 when GitHub project is private3689 sets project visibility to the default project visibility3690 when GitHub project is public3691 sets project visibility to the default project visibility3692 when GitHub project has wiki3693 does not create the wiki repository3694 when GitHub project does not have wiki3695 creates the wiki repository3696BranchesFinder3697 #execute3698 sort only3699 sorts by name3700 sorts by recently_updated3701 sorts by last_updated3702 filter only3703 filters branches by name3704 filters branches by name ignoring letter case3705 does not find any branch with that name3706 filters branches by provided names3707 filters branches by name that begins with3708 filters branches by name that ends with3709 filters branches by nonexistent name that begins with3710 filters branches by nonexistent name that ends with3711 filter and sort3712 filters branches by name and sorts by recently_updated3713 filters branches by name and sorts by recently_updated, with exact matches first3714 filters branches by name and sorts by last_updated3715Gitlab::DiscussionsDiff::FileCollection3716 #load_highlight3717 writes uncached diffs highlight3718 does not write cache for already cached file3719 does not write cache for empty mapping3720 does not write cache for resolved notes3721 loaded diff files have highlighted lines loaded3722 not loaded diff files does not have highlighted lines loaded3723Issues::ReopenService3724 #execute3725 when user is not authorized to reopen issue3726 does not reopen the issue3727 when user is authorized to reopen issue3728 invalidates counter cache for assignees3729 refreshes the number of opened issues3730 when issue is not confidential3731 executes issue hooks3732 when issue is confidential3733 executes confidential issue hooks3734Todos::Destroy::ConfidentialIssueService3735 #execute3736 when issue_id parameter is present3737 when provided issue is confidential3738 removes issue todos for users who can not access the confidential issue3739 when provided issue is not confidential3740 does not remove any todos3741 when project_id parameter is present3742 removes issues todos for users that cannot access confidential issues3743Gitlab::Checks::DiffCheck3744 #validate!3745 with LFS not enabled3746 does not invoke :lfs_file_locks_validation3747 with LFS enabled3748 when change is sent by a different user3749 raises an error if the user is not allowed to update the file3750 when change is sent by the author of the lock3751 doesn't raise any error3752 commit diff validations3753 when request store is inactive3754 are run for every commit3755 when request store is active3756 are cached for every commit3757 are run for not cached commits3758ReleasePresenter3759 #commit_path3760 returns commit path3761 when commit is not found3762 should be nil3763 when user is guest3764 should be nil3765 #tag_path3766 returns tag path3767 when user is guest3768 should be nil3769 #merge_requests_url3770 returns merge requests url3771 when release_mr_issue_urls feature flag is disabled3772 should be nil3773 #issues_url3774 returns merge requests url3775 when release_mr_issue_urls feature flag is disabled3776 should be nil3777 #edit_url3778 returns release edit url3779 when a user is not allowed to update a release3780 should be nil3781Projects::HashedStorage::RollbackRepositoryService3782 #execute3783 works even when project validation fails3784 repository lock3785 tries to lock the repository3786 fails when a git operation is in progress3787 when repository doesnt exist on disk3788 skips the disk change but decrease the version3789 when succeeds3790 renames project and wiki repositories3791 updates project to be legacy and not read-only3792 move operation is called for both repositories3793 writes project full path to .git/config3794 when one move fails3795 rolls repositories back to original name3796 when rollback fails3797 does not try to move nil repository over existing3798ClusterablePresenter3799 .fabricate3800 creates an object from a descendant presenter3801 #can_create_cluster?3802 when clusterable is a group3803 behaves like appropriate member permissions3804 with a developer3805 should be falsy3806 with a maintainer3807 should be truthy3808 when clusterable is a project3809 behaves like appropriate member permissions3810 with a developer3811 should be falsy3812 with a maintainer3813 should be truthy3814 #can_add_cluster?3815 when clusterable is a group3816 behaves like appropriate member permissions3817 with a developer3818 should be falsy3819 with a maintainer3820 should be truthy3821 when clusterable is a project3822 behaves like appropriate member permissions3823 with a developer3824 should be falsy3825 with a maintainer3826 should be truthy3827 #environments_cluster_path3828 should be nil3829Gitlab::Email::Handler::UnsubscribeHandler3830 when email key3831 matches the new format3832 matches the legacy format3833 doesn't match either format3834 when notification concerns a commit3835 handler does not raise an error3836 user is unsubscribed3837 leaves user unsubscribed3838 user is subscribed3839 unsubscribes user from notable3840 when using old style unsubscribe link3841 unsubscribes user from notable3842 when the noteable could not be found3843 raises a NoteableNotFoundError3844 when no sent notification for the mail key could be found3845 raises a SentNotificationNotFoundError3846Projects::UpdatePagesService3847 fails to remove project pages when no pages is deployed3848 fails if no artifacts3849 fails for invalid archive3850 ::TMP_EXTRACT_PATH3851 should not match /\A(?-mix:(?:[a-zA-Z0-9_\.][a-zA-Z0-9_\-\.]*[a-zA-Z0-9_\-]|[a-zA-Z0-9_])(?-mix:(?<!\.git|\.atom)))\z/3852 for new artifacts3853 for a valid job3854 succeeds3855 limits pages size3856 removes pages after destroy3857 fails if sha on branch is not latest3858 pages artifacts3859 doesn't delete artifacts after deploying3860 when using empty file3861 fails to extract3862 when using pages with non-writeable public3863 when using RubyZip3864 succeeds to extract3865 when timeout happens by DNS error3866 raises an error3867 when failed to extract zip artifacts3868 raises an error3869 when missing artifacts metadata3870 does not raise an error as failed job3871 maximum pages artifacts size3872 when maximum pages size is set to zero3873 when page size does not exceed internal maximum3874 updates pages correctly3875 when pages size does exceed internal maximum3876 behaves like pages size limit exceeded3877 limits the maximum size of gitlab pages3878 when pages size is greater than max size setting3879 behaves like pages size limit exceeded3880 limits the maximum size of gitlab pages3881 when max size setting is greater than internal max size3882 behaves like pages size limit exceeded3883 limits the maximum size of gitlab pages3884Gitlab::Ci::Trace::ChunkedIO3885 #initialize3886 when a chunk exists3887 should eq 33888 when two chunks exist3889 should eq 63890 when no chunks exists3891 should eq 03892 #seek3893 when moves pos to end of the file3894 should eq 1927113895 when moves pos to middle of the file3896 should eq 963553897 when moves pos around3898 matches the result3899 #eof?3900 when current pos is at end of the file3901 should be truthy3902 when current pos is not at end of the file3903 should be falsey3904 #each_line3905 when buffer size is smaller than file size3906 yields lines3907 when buffer size is larger than file size3908 calls get_chunk only once3909 when buffer consist of many empty lines3910 yields lines3911 #read3912 when read the whole size3913 when buffer size is smaller than file size3914 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3915 when buffer size is larger than file size3916 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3917 when chunk is missing data3918 raises an error3919 when read only first 100 bytes3920 when buffer size is smaller than file size3921 reads a trace3922 when buffer size is larger than file size3923 reads a trace3924 when tries to read oversize3925 when buffer size is smaller than file size3926 reads a trace3927 when buffer size is larger than file size3928 reads a trace3929 when tries to read 0 bytes3930 when buffer size is smaller than file size3931 reads a trace3932 when buffer size is larger than file size3933 reads a trace3934 #readline3935 when buffer size is smaller than file size3936 behaves like all line matching3937 should eq "\e[0;m\n"3938 when buffer size is larger than file size3939 behaves like all line matching3940 should eq "\e[0;m\n"3941 when pos is at middle of the file3942 reads from pos3943 when chunk is missing data3944 raises an error3945 when utf-8 is being used3946 has known length3947 behaves like all line matching3948 should eq "\xF0\x9F\x98\xBA"3949 #write3950 when data does not exist3951 when buffer size is smaller than file size3952 behaves like writes a trace3953 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3954 when buffer size is larger than file size3955 behaves like writes a trace3956 should eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3957 when data already exists3958 when buffer size is smaller than file size3959 behaves like appends a trace3960 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3961 when buffer size is larger than file size3962 behaves like appends a trace3963 should eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"3964 #truncate3965 when data does not exist3966 when buffer size is smaller than file size3967 behaves like truncates a trace3968 should eq "\e[0KRunnin"3969 when buffer size is larger than file size3970 behaves like truncates a trace3971 should eq "\e[0KRunnin"3972 #destroy!39732019-12-13T08:45:59.585Z 88 TID-gq7izi8zo WARN: {:message=>"The job does not have archived trace but going to be destroyed.", :job_id=>115}3974 deletes3975 when the job does not have archived trace39762019-12-13T08:45:59.620Z 88 TID-gq7izi8zo WARN: {:message=>"The job does not have archived trace but going to be destroyed.", :job_id=>115}3977 leaves a message in sidekiq log3978Gitlab::ImportExport::LfsRestorer3979 #restore3980 when the archive contains lfs files3981 succeeds3982 does not create a new `LfsObject` records, as one already exists3983 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`3984 restores the correct `LfsObject` records3985 restores the correct `LfsObjectsProject` records for the project3986 assigns the file correctly3987 when there is not an existing `LfsObject`3988 creates a new lfs object3989 stores the upload3990 when there is no lfs-objects.json file3991 restores the correct `LfsObject` records3992 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`3993 without any LFS-objects3994 succeeds3995DiscussionDiffFileEntity3996 when there is no merge request3997 behaves like diff file discussion entity3998 behaves like diff file base entity3999 exposes essential attributes4000 when diff file does not have a blob and content sha4001 exposes some attributes as nil4002 when there is a merge request4003 exposes additional attributes4004 exposes no diff lines4005 behaves like diff file discussion entity4006 behaves like diff file base entity4007 exposes essential attributes4008 when diff file does not have a blob and content sha4009 exposes some attributes as nil4010notify/pipeline_success_email.html.haml4011 pipeline with user4012 renders the email correctly4013 behaves like correct pipeline information for pipelines for merge requests4014 when pipeline for merge request4015 renders a source ref of the pipeline4016 pipeline without user4017 renders the email correctly4018Backup::Repository4019 #dump4020 repo failure4021 does not raise error4022 #restore4023 command failure4024 hashed storage4025 shows the appropriate error4026 legacy storage4027 shows the appropriate error4028 restoring object pools4029 schedules restoring of the pool4030 #empty_repo?4031 for a wiki4032 invalidates the emptiness cache4033 wiki repo has content4034 returns true, regardless of bad cache value4035 wiki repo does not have content4036 returns true, regardless of bad cache value4037PipelineMetricsWorker4038 #perform4039 when pipeline is running4040 records the build start time4041 clears the build end time4042 records the pipeline4043 when pipeline succeeded4044 records the build end time4045 records the pipeline4046Banzai::ReferenceParser::LabelParser4047 #nodes_visible_to_user4048 when the link has a data-issue attribute4049 behaves like referenced feature visibility4050 when feature is disabled4051 does not create reference4052 when feature is enabled only for team members4053 does not create reference for non member4054 creates reference for member4055 when feature is enabled4056 creates reference4057 #referenced_by4058 when the link has a data-label attribute4059 using an existing label ID4060 returns an Array of labels4061 using a non-existing label ID4062 returns an empty Array4063Gitlab::Ci::Status::External::Common4064 #label4065 returns description4066 when description is nil4067 uses core status label4068 when description is empty string4069 uses core status label4070 #has_action?4071 should not have action4072 #has_details?4073 when user has access to read commit status4074 should have details4075 when user does not have access to read commit status4076 should not have details4077 #details_path4078 links to the external target URL4079Gitlab::Graphql::Authorization4080 Field authorizations4081 with a single permission4082 returns the protected field when user has permission4083 returns nil when user is not authorized4084 with a collection of permissions4085 returns the protected field when user has all permissions4086 returns nil when user only has one of the permissions4087 returns nil when user only has none of the permissions4088 Field authorizations when field is a built in type4089 with a single permission4090 returns the protected field when user has permission4091 returns nil when user is not authorized4092 with a collection of permissions4093 returns the protected field when user has all permissions4094 returns nil when user only has one of the permissions4095 returns nil when user only has none of the permissions4096 Type authorizations4097 with a single permission4098 returns the protected field when user has permission4099 returns nil when user is not authorized4100 with a collection of permissions4101 returns the protected field when user has all permissions4102 returns nil when user only has one of the permissions4103 returns nil when user only has none of the permissions4104 type and field authorizations together4105 returns the protected field when user has all permissions4106 returns nil when user only has one of the permissions4107 returns nil when user only has none of the permissions4108 type authorizations when applied to a relay connection4109 returns only the elements visible to the user4110 returns nil when user is not authorized4111 limiting connections with multiple objects4112 only checks permissions for the first object4113 type authorizations when applied to a basic connection4114 returns the protected field when user has permission4115 returns nil when user is not authorized4116 Authorizations on active record relations4117 renders the issues the user has access to4118 does not check access on fields that will not be rendered4119Gitlab::Analytics::CycleAnalytics::RecordsFetcher4120 #serialized_records4121 for issue based stage4122 returns all records4123 when records are loaded by guest4124 filters out confidential issues4125 for merge request based stage4126 returns all records4127 special case4128 returns build records4129 when requesting records for default test stage4130 orders by `latest_build_finished_at`4131 when requesting records for default staging stage4132 orders by `latest_build_finished_at`4133Gitlab::CycleAnalytics::ReviewEventFetcher4134 behaves like default query config4135 has the stage attribute4136 has the projection attributes4137Gitlab::ObjectHierarchy4138 #base_and_ancestors4139 includes the base rows4140 includes all of the ancestors4141 can find ancestors upto a certain level4142 uses ancestors_base #initialize argument4143 does not allow the use of #update_all4144 hierarchy_order option4145 :asc4146 orders by child to parent4147 :desc4148 orders by parent to child4149 #base_and_descendants4150 includes the base rows4151 includes all the descendants4152 uses descendants_base #initialize argument4153 does not allow the use of #update_all4154 when with_depth is true4155 includes depth in the results4156 #descendants4157 includes only the descendants4158 #max_descendants_depth4159 when base relation is empty4160 should be nil4161 when base has no children4162 should eq 14163 when base has grandchildren4164 should eq 34165 #ancestors4166 includes only the ancestors4167 can find ancestors upto a certain level4168 #all_objects4169 includes the base rows4170 includes the ancestors4171 includes the descendants4172 uses ancestors_base #initialize argument for ancestors4173 uses descendants_base #initialize argument for descendants4174 does not allow the use of #update_all4175MigrateForbiddenRedirectUris4176NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4177NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4178NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4179NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4180NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4181NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4182 oauth application4183 migrates forbidden javascript URI4184 migrates forbidden VBScript URI4185 does not migrate a valid URI4186 access grant4187 migrates forbidden VBScript URI4188 does not migrate a valid URI4189NOTICE: table "design_management_designs" does not exist, skipping4190NOTICE: table "design_management_designs_versions" does not exist, skipping4191NOTICE: table "design_management_versions" does not exist, skipping4192NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4193NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4194NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4195NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4196NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4197NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4198NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4199Ci::EnsureStageService#execute4200 when build has a stage assigned4201 does not create a new stage4202 when build does not have a stage assigned4203 creates a new stage4204 when build is invalid4205 does not create a new stage4206 when new stage can not be created because of an exception4207 retries up to two times4208projects/tree/show4209 for branch names ending on .json4210 displays correctly4211 commit signatures4212 with vue tree view disabled4213 rendered via js-signature-container4214 with vue tree view enabled4215 are not rendered via js-signature-container4216Gitlab::BackgroundMigration::BackfillLegacyProjectRepositories4217NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4218NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4219NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4220NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4221NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4222NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4223 behaves like backfill migration for project repositories4224 #perform4225 creates a project_repository row for projects on legacy storage that needs one4226 does nothing for projects on legacy storage that have already a project_repository row4227 does nothing for projects on hashed storage4228 inserts rows in a single query4229NOTICE: table "design_management_designs" does not exist, skipping4230NOTICE: table "design_management_designs_versions" does not exist, skipping4231NOTICE: table "design_management_versions" does not exist, skipping4232NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4233NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4234NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4235NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4236NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4237NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4238NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4239Gitlab::SlashCommands::Run4240 .available?4241 returns true when builds are enabled for the project4242 returns false when builds are disabled for the project4243 returns false when chatops is not available4244 .allowed?4245 returns true when the user can create a pipeline4246 returns false when the user can not create a pipeline4247 #execute4248 when a pipeline could not be scheduled4249 returns an error4250 when a pipeline could be created but the chat service was not supported4251 returns an error4252 using a valid pipeline4253 schedules the pipeline4254AvatarsHelper4255 #project_icon & #group_icon4256 when providing a project4257 behaves like resource with a default avatar4258 returns a default avatar div4259 behaves like resource with a custom avatar4260 returns a custom avatar image4261 when providing a group4262 behaves like resource with a default avatar4263 returns a default avatar div4264 behaves like resource with a custom avatar4265 returns a custom avatar image4266 #avatar_icon_for4267 prefers the user to retrieve the avatar_url4268 falls back to email lookup if no user given4269 #avatar_icon_for_email4270 using an email4271 when there is a matching user4272 returns a relative URL for the avatar4273 when no user exists for the email4274 calls gravatar_icon4275 without an email passed4276 calls gravatar_icon4277 #avatar_icon_for_user4278 with a user object passed4279 returns a relative URL for the avatar4280 without a user object passed4281 calls gravatar_icon4282 #gravatar_icon4283 with Gravatar disabled4284 returns a generic avatar4285 with Gravatar enabled4286 returns a generic avatar when email is blank4287 returns a valid Gravatar URL4288 uses HTTPs when configured4289 returns custom gravatar path when gravatar_url is set4290 accepts a custom size argument4291 defaults size to 40@2x when given an invalid size4292 accepts a scaling factor4293 ignores case and surrounding whitespace4294 #user_avatar4295 links to the user's profile4296 has the user's name as title4297 contains the user's avatar image4298 #user_avatar_without_link4299 displays user avatar4300 with css_class parameter4301 uses provided css_class4302 with size parameter4303 uses provided size4304 with url parameter4305 uses provided url4306 with lazy parameter4307 adds `lazy` class to class list, sets `data-src` with avatar URL and `src` with placeholder image4308 with has_tooltip parameter4309 with has_tooltip set to true4310 adds has-tooltip4311 with has_tooltip set to false4312 does not add has-tooltip or data container4313 with user_name parameter4314 uses user_name and user_email parameter if user is not present4315 with user parameter4316 prefers user parameter4317 with only_path parameter set to false4318 with user parameter4319 will return avatar with a full path4320 with user_name and user_email4321 will return avatar with a full path4322 with unregistered email address4323 will return default alt text for avatar4324projects/show.html.haml4325 commit signatures4326 with vue tree view enabled4327 are not rendered via js-signature-container4328 with vue tree view disabled4329 rendered via js-signature-container4330Gitlab::GitalyClient::ConflictsService4331 #list_conflict_files4332 sends an RPC request4333 #resolve_conflicts4334 sends an RPC request4335 raises a relevant exception if resolution_error is present4336 with branches with UTF-8 characters4337 handles commit messages with UTF-8 characters4338ScheduleSyncIssuablesStateIdWhereNil4339NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4340NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4341NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4342NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4343NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4344NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4345 #up4346 issues4347 behaves like scheduling migrations4348 correctly schedules issuable sync background migration4349 merge requests4350 behaves like scheduling migrations4351 correctly schedules issuable sync background migration4352NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4353NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4354NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4355NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4356NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4357NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4358NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4359Ci::JobVariable4360 should belong to job required:4361 should validate that :key is case-sensitively unique within the scope of :job_id4362 behaves like CI variable4363 should includes the HasVariable module4364 strips whitespaces when assigning key4365 can convert to runner variable4366 variable type4367 defines variable types4368 defaults variable type to env_var4369 supports variable type file4370RemoveUnreferencedLfsObjectsWorker4371 #perform4372 removes unreferenced lfs objects4373 leaves referenced lfs objects4374 removes unreferenced lfs objects after project removal4375gitlab:web_hook namespace rake tasks4376 gitlab:web_hook:add4377 adds a web hook to all projects4378 adds a web hook to projects in the specified namespace4379 raises an error if an unknown namespace is specified4380 gitlab:web_hook:rm4381 removes a web hook from all projects by URL4382 removes a web hook from projects in the specified namespace by URL4383 raises an error if an unknown namespace is specified4384 gitlab:web_hook:list4385 lists all web hooks4386 lists web hooks in a particular namespace4387Projects::LfsPointers::LfsLinkService4388 #execute4389 raises an error when trying to link too many objects at once4390 links existing lfs objects to the project4391 returns linked oids4392 links in batches4393 only queries for the batch that will be processed4394 only queries 3 times4395PoolRepository4396 associations4397 should belong to shard required:4398 should belong to source_project required:4399 should have many member_projects4400 validations4401 should validate that :shard cannot be empty/falsy4402 should validate that :source_project cannot be empty/falsy4403 #disk_path4404 sets the hashed disk_path4405 #mark_obsolete_if_last4406 when the last member leaves4407 schedules pool removal4408 when the second member leaves4409 does not schedule pool removal4410Clusters::Aws::FinalizeCreationService4411 #execute4412 configures the provider and platform4413 calls the create_service_account_service4414 configures cluster node authentication4415 error handling4416 failed to request stack details from AWS4417 sets the status to :errored with an appropriate error message4418 failed to create auth config map4419 sets the status to :errored with an appropriate error message4420 failed to save records4421 sets the status to :errored with an appropriate error message4422Gitlab::GitalyClient::WikiService4423 #find_page4424 sends a wiki_find_page message4425 concatenates the raw data and returns a pair of WikiPage and WikiPageVersion4426 #load_all_pages4427 sends a wiki_get_all_pages message4428 sends a limit of 0 to wiki_get_all_pages4429 concatenates the raw data and returns a pair of WikiPage and WikiPageVersion for each page4430 with limits4431 sends a request with the limit4432ResourceLabelEventFinder4433 #execute4434 returns events with labels accessible by user4435 filters events with public project labels if issues and MRs are private4436 filters events with project labels not accessible by user4437 filters events with group labels not accessible by user4438 paginates results4439Ci::BuildTraceSectionName4440 should belong to project required:4441 should have many trace_sections4442 should validate that :project cannot be empty/falsy4443 should validate that :name cannot be empty/falsy4444 should validate that :name is case-sensitively unique within the scope of :project_id4445AsanaService4446 Associations4447 should belong to project required:4448 should have one service_hook4449 Validations4450 active4451 should validate that :api_key cannot be empty/falsy4452 Execute4453 calls Asana service to create a story4454 calls Asana service to create a story and close a task4455 is able to close via url4456 allows multiple matches per line4457AssemblaService4458 Associations4459 should belong to project required:4460 should have one service_hook4461 Execute4462 calls Assembla API4463Gitlab::Cleanup::OrphanJobArtifactFilesBatch4464 no dry run4465 deletes only orphan job artifacts from disk4466 does not mix up job ID and artifact ID4467 with dry run4468 does not remove files4469Tags::DestroyService4470 #execute4471 removes the tag4472 when there is an associated release on the tag4473 destroys the release4474ScheduleDigestPersonalAccessTokens4475NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4476NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4477NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4478NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4479NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4480NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4481DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/scop/gitlab/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb:20)4482DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/scop/gitlab/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb:20)4483 correctly schedules background migrations4484DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/scop/gitlab/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb:20)4485DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "MIN(id)", "MAX(id)". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql(). (called from block in up at /builds/scop/gitlab/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb:20)4486 schedules background migrations4487NOTICE: table "design_management_designs" does not exist, skipping4488NOTICE: table "design_management_designs_versions" does not exist, skipping4489NOTICE: table "design_management_versions" does not exist, skipping4490NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4491NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4492NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4493NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4494NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4495NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4496NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4497gitlab:uploads rake tasks4498 check4499 outputs the integrity check for each batch4500 errors out about missing files on the file system4501 errors out about invalid checksum4502Gitlab::Cleanup::RemoteUploads4503 when object_storage is enabled4504 when dry_run is set to false4505 moves files that are not in uploads table4506 when dry_run is set to true4507 does not move filese4508 when object_storage is not enabled4509 does not connect to any storage4510Autocomplete::ProjectFinder4511 #execute4512 without a project ID4513 returns nil4514 with an empty String as the project ID4515 returns nil4516 with a project ID4517 raises ActiveRecord::RecordNotFound if the project does not exist4518 raises ActiveRecord::RecordNotFound if the user can not read the project4519 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project4520 returns the project if it exists and is readable4521Gitlab::LegacyGithubImport::ReleaseFormatter4522 #attributes4523 returns formatted attributes4524 with a nil published_at date4525 inserts a timestamp for released_at4526 #valid4527 when release is not a draft4528 returns true4529 when release is draft4530 returns false4531SetIssueIdForAllVersions4532NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4533NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4534NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4535NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4536NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4537NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4538 correctly sets issue_id4539NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4540NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4541NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4542NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4543NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4544NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4545BlobViewer::Readme4546 #render_error4547 when there is no wiki4548 returns :no_wiki4549 when there is an external wiki4550 returns nil4551 when there is a local wiki4552 when the wiki is empty4553 returns :no_wiki4554 when the wiki is not empty4555 returns nil4556Gitlab::BitbucketImport::WikiFormatter4557 #disk_path4558 appends .wiki to disk path4559 #full_path4560 appends .wiki to project path4561 #import_url4562 returns URL of the wiki repository4563ScheduleToArchiveLegacyTraces4564NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4565NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4566NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4567NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4568NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4569NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4570 correctly archive legacy traces4571NOTICE: table "design_management_designs" does not exist, skipping4572NOTICE: table "design_management_designs_versions" does not exist, skipping4573NOTICE: table "design_management_versions" does not exist, skipping4574NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4575NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4576NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4577NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4578NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4579NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4580NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4581PackagistService4582 Associations4583 should belong to project required:4584 should have one service_hook4585 #execute4586 calls Packagist API4587NewNoteWorker4588 when Note found4589 calls NotificationService#new_note4590 calls Notes::PostProcessService#execute4591 when Note not found4592 logs NewNoteWorker process skipping4593 does not raise errors4594 does not call NotificationService4595 does not call Notes::PostProcessService4596Gitlab::Ci::Status::Build::Skipped4597 #illustration4598 should include :image, :size, and :title4599 .matches?4600 when build is skipped4601 is a correct match4602 when build is not skipped4603 does not match4604ProtectedBranchPolicy4605 branches can be updated via project maintainers4606 branches can't be updated by guests4607BuildSuccessWorker4608 #perform4609 when build exists4610 when the build will stop an environment4611 stops the environment4612 when build does not exist4613 does not raise exception4614Groups routing4615 to #show4616 also supports nested groups4617 also display group#show on the short path4618 to #details4619 to #activity4620 to #issues4621 to #members4622 to #labels4623 to #milestones4624 routes to the avatars controller4625 routes to the boards controller4626Gitlab::GitalyClient::BlobService4627 #get_new_lfs_pointers4628 sends a get_new_lfs_pointers message4629 with not_in = :all4630 sends the correct message4631 #get_all_lfs_pointers4632 sends a get_all_lfs_pointers message4633Gitlab::Cleanup::OrphanJobArtifactFiles4634 passes on dry_run4635 errors when invalid niceness is given4636 finds artifacts on disk4637 stops when limit is reached4638 cleans even if batch is not full4639 cleans in batches4640Clusters::InstancePolicy4641 rules4642 when user4643 should be disallowed :read_cluster4644 should be disallowed :add_cluster4645 should be disallowed :create_cluster4646 should be disallowed :update_cluster4647 should be disallowed :admin_cluster4648 when admin4649 should be allowed :read_cluster4650 should be allowed :add_cluster4651 should be allowed :create_cluster4652 should be allowed :update_cluster4653 should be allowed :admin_cluster4654ResetProjectCacheService4655 when project cache_index is nil4656 sets project cache_index to one4657 when project cache_index is a numeric value4658 increments project cache index4659Gitlab::BackgroundMigration::SetConfidentialNoteEventsOnWebhooks4660NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4661NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4662NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4663NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4664NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4665NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4666NOTICE: trigger "trigger_f1016db1483e" for relation "users" does not exist, skipping4667 #perform4668 migrates hooks where note_events is true4669 ignores hooks where note_events is false4670 ignores hooks where confidential_note_events has already been set4671NOTICE: trigger "trigger_7dc952250ffd" for relation "users" does not exist, skipping4672NOTICE: table "design_management_designs" does not exist, skipping4673NOTICE: table "design_management_designs_versions" does not exist, skipping4674NOTICE: table "design_management_versions" does not exist, skipping4675NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4676NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4677NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4678NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4679NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4680NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4681NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4682SnippetBlob4683 #id4684 returns the snippet ID4685 #name4686 returns the snippet file name4687 #size4688 returns the data size4689 #data4690 returns the snippet content4691 #rendered_markup4692 when the content is GFM4693 returns the rendered GFM4694 when the content is not GFM4695 returns nil4696ProtectedBranches::DestroyService4697 #execute4698 destroys a protected branch4699 when a policy restricts rule deletion4700 prevents deletion of the protected branch rule4701Gitlab::BackgroundMigration::ResetMergeStatus4702NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4703NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4704NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4705NOTICE: trigger "trigger_36edafd19664" for relation "epics" does not exist, skipping4706NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4707NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4708 correctly updates opened mergeable MRs to unchecked4709NOTICE: table "geo_container_repository_updated_events" does not exist, skipping4710NOTICE: trigger "trigger_806273a4d8be" for relation "application_settings" does not exist, skipping4711NOTICE: trigger "trigger_dd1443fbd36e" for relation "application_settings" does not exist, skipping4712NOTICE: trigger "trigger_84853438aac0" for relation "epics" does not exist, skipping4713NOTICE: trigger "trigger_97893debd1d4" for relation "design_management_versions" does not exist, skipping4714NOTICE: trigger "trigger_4821f661bf92" for relation "application_settings" does not exist, skipping4715NOTICE: trigger "trigger_5299882abc4c" for relation "software_license_policies" does not exist, skipping4716The application_settings table has 1201 columns.4717Recreating the database4718Dropped database 'gitlabhq_test'4719Created database 'gitlabhq_test'4720-- enable_extension("pg_trgm")4721 -> 0.0316s4722-- enable_extension("plpgsql")4723 -> 0.0034s4724-- create_table("abuse_reports", {:id=>:serial, :force=>:cascade})4725 -> 0.0094s4726-- create_table("alerts_service_data", {:force=>:cascade})4727 -> 0.0073s4728-- create_table("allowed_email_domains", {:force=>:cascade})4729 -> 0.0060s4730-- create_table("analytics_cycle_analytics_group_stages", {:force=>:cascade})4731 -> 0.0174s4732-- create_table("analytics_cycle_analytics_project_stages", {:force=>:cascade})4733 -> 0.0161s4734-- create_table("analytics_language_trend_repository_languages", {:id=>false, :force=>:cascade})4735 -> 0.0088s4736-- create_table("analytics_repository_file_commits", {:force=>:cascade})4737 -> 0.0073s4738-- create_table("analytics_repository_file_edits", {:force=>:cascade})4739 -> 0.0076s4740-- create_table("analytics_repository_files", {:force=>:cascade})4741 -> 0.0054s4742-- create_table("appearances", {:id=>:serial, :force=>:cascade})4743 -> 0.0040s4744-- create_table("application_setting_terms", {:id=>:serial, :force=>:cascade})4745 -> 0.0032s4746-- create_table("application_settings", {:id=>:serial, :force=>:cascade})4747 -> 0.1394s4748-- create_table("approval_merge_request_rule_sources", {:force=>:cascade})4749 -> 0.0070s4750-- create_table("approval_merge_request_rules", {:force=>:cascade})4751 -> 0.0163s4752-- create_table("approval_merge_request_rules_approved_approvers", {:force=>:cascade})4753 -> 0.0069s4754-- create_table("approval_merge_request_rules_groups", {:force=>:cascade})4755 -> 0.0070s4756-- create_table("approval_merge_request_rules_users", {:force=>:cascade})4757 -> 0.0069s4758-- create_table("approval_project_rules", {:force=>:cascade})4759 -> 0.0109s4760-- create_table("approval_project_rules_groups", {:force=>:cascade})4761 -> 0.0087s4762-- create_table("approval_project_rules_users", {:force=>:cascade})4763 -> 0.0069s4764-- create_table("approvals", {:id=>:serial, :force=>:cascade})4765 -> 0.0071s4766-- create_table("approver_groups", {:id=>:serial, :force=>:cascade})4767 -> 0.0074s4768-- create_table("approvers", {:id=>:serial, :force=>:cascade})4769 -> 0.0078s4770-- create_table("audit_events", {:id=>:serial, :force=>:cascade})4771 -> 0.0076s4772-- create_table("award_emoji", {:id=>:serial, :force=>:cascade})4773 -> 0.0077s4774-- create_table("aws_roles", {:primary_key=>"user_id", :id=>:integer, :default=>nil, :force=>:cascade})4775 -> 0.0067s4776-- create_table("badges", {:id=>:serial, :force=>:cascade})4777 -> 0.0074s4778-- create_table("board_assignees", {:id=>:serial, :force=>:cascade})4779 -> 0.0065s4780-- create_table("board_group_recent_visits", {:force=>:cascade})4781 -> 0.0110s4782-- create_table("board_labels", {:id=>:serial, :force=>:cascade})4783 -> 0.0067s4784-- create_table("board_project_recent_visits", {:force=>:cascade})4785 -> 0.0111s4786-- create_table("boards", {:id=>:serial, :force=>:cascade})4787 -> 0.0098s4788-- create_table("broadcast_messages", {:id=>:serial, :force=>:cascade})4789 -> 0.0060s4790-- create_table("chat_names", {:id=>:serial, :force=>:cascade})4791 -> 0.0077s4792-- create_table("chat_teams", {:id=>:serial, :force=>:cascade})4793 -> 0.0054s4794-- create_table("ci_build_needs", {:id=>:serial, :force=>:cascade})4795 -> 0.0056s4796-- create_table("ci_build_trace_chunks", {:force=>:cascade})4797 -> 0.0050s4798-- create_table("ci_build_trace_section_names", {:id=>:serial, :force=>:cascade})4799 -> 0.0050s4800-- create_table("ci_build_trace_sections", {:id=>false, :force=>:cascade})4801 -> 0.0080s4802-- create_table("ci_builds", {:id=>:serial, :force=>:cascade})4803 -> 0.0648s4804-- create_table("ci_builds_metadata", {:id=>:serial, :force=>:cascade})4805 -> 0.0125s4806-- create_table("ci_builds_runner_session", {:force=>:cascade})4807 -> 0.0056s4808-- create_table("ci_group_variables", {:id=>:serial, :force=>:cascade})4809 -> 0.0068s4810-- create_table("ci_job_artifacts", {:id=>:serial, :force=>:cascade})4811 -> 0.0155s4812-- create_table("ci_job_variables", {:force=>:cascade})4813 -> 0.0079s4814-- create_table("ci_pipeline_chat_data", {:force=>:cascade})4815 -> 0.0071s4816-- create_table("ci_pipeline_schedule_variables", {:id=>:serial, :force=>:cascade})4817 -> 0.0058s4818-- create_table("ci_pipeline_schedules", {:id=>:serial, :force=>:cascade})4819 -> 0.0102s4820-- create_table("ci_pipeline_variables", {:id=>:serial, :force=>:cascade})4821 -> 0.0080s4822-- create_table("ci_pipelines", {:id=>:serial, :force=>:cascade})4823 -> 0.0351s4824-- create_table("ci_resource_groups", {:force=>:cascade})4825 -> 0.0049s4826-- create_table("ci_resources", {:force=>:cascade})4827 -> 0.0072s4828-- create_table("ci_runner_namespaces", {:id=>:serial, :force=>:cascade})4829 -> 0.0071s4830-- create_table("ci_runner_projects", {:id=>:serial, :force=>:cascade})4831 -> 0.0078s4832-- create_table("ci_runners", {:id=>:serial, :force=>:cascade})4833 -> 0.0198s4834-- create_table("ci_sources_pipelines", {:id=>:serial, :force=>:cascade})4835 -> 0.0140s4836-- create_table("ci_stages", {:id=>:serial, :force=>:cascade})4837 -> 0.0125s4838-- create_table("ci_subscriptions_projects", {:force=>:cascade})4839 -> 0.0069s4840-- create_table("ci_trigger_requests", {:id=>:serial, :force=>:cascade})4841 -> 0.0079s4842-- create_table("ci_triggers", {:id=>:serial, :force=>:cascade})4843 -> 0.0079s4844-- create_table("ci_variables", {:id=>:serial, :force=>:cascade})4845 -> 0.0101s4846-- create_table("cluster_groups", {:id=>:serial, :force=>:cascade})4847 -> 0.0078s4848-- create_table("cluster_platforms_kubernetes", {:id=>:serial, :force=>:cascade})4849 -> 0.0056s4850-- create_table("cluster_projects", {:id=>:serial, :force=>:cascade})4851 -> 0.0070s4852-- create_table("cluster_providers_aws", {:force=>:cascade})4853 -> 0.0113s4854-- create_table("cluster_providers_gcp", {:id=>:serial, :force=>:cascade})4855 -> 0.0094s4856-- create_table("clusters", {:id=>:serial, :force=>:cascade})4857 -> 0.0131s4858-- create_table("clusters_applications_cert_managers", {:id=>:serial, :force=>:cascade})4859 -> 0.0054s4860-- create_table("clusters_applications_crossplane", {:id=>:serial, :force=>:cascade})4861 -> 0.0055s4862-- create_table("clusters_applications_elastic_stacks", {:force=>:cascade})4863 -> 0.0054s4864-- create_table("clusters_applications_helm", {:id=>:serial, :force=>:cascade})4865 -> 0.0055s4866-- create_table("clusters_applications_ingress", {:id=>:serial, :force=>:cascade})4867 -> 0.0054s4868-- create_table("clusters_applications_jupyter", {:id=>:serial, :force=>:cascade})4869 -> 0.0077s4870-- create_table("clusters_applications_knative", {:id=>:serial, :force=>:cascade})4871 -> 0.0056s4872-- create_table("clusters_applications_prometheus", {:id=>:serial, :force=>:cascade})4873 -> 0.0053s4874-- create_table("clusters_applications_runners", {:id=>:serial, :force=>:cascade})4875 -> 0.0079s4876-- create_table("clusters_kubernetes_namespaces", {:force=>:cascade})4877 -> 0.0169s4878-- create_table("commit_user_mentions", {:force=>:cascade})4879 -> 0.0101s4880-- create_table("container_expiration_policies", {:primary_key=>"project_id", :id=>:bigint, :default=>nil, :force=>:cascade})4881 -> 0.0064s4882-- create_table("container_repositories", {:id=>:serial, :force=>:cascade})4883 -> 0.0093s4884-- create_table("conversational_development_index_metrics", {:id=>:serial, :force=>:cascade})4885 -> 0.0107s4886-- create_table("dependency_proxy_blobs", {:id=>:serial, :force=>:cascade})4887 -> 0.0075s4888-- create_table("dependency_proxy_group_settings", {:id=>:serial, :force=>:cascade})4889 -> 0.0062s4890-- create_table("deploy_keys_projects", {:id=>:serial, :force=>:cascade})4891 -> 0.0088s4892-- create_table("deploy_tokens", {:id=>:serial, :force=>:cascade})4893 -> 0.0118s4894-- create_table("deployment_merge_requests", {:id=>false, :force=>:cascade})4895 -> 0.0056s4896-- create_table("deployments", {:id=>:serial, :force=>:cascade})4897 -> 0.0291s4898-- create_table("description_versions", {:force=>:cascade})4899 -> 0.0094s4900-- create_table("design_management_designs", {:force=>:cascade})4901 -> 0.0070s4902-- create_table("design_management_designs_versions", {:id=>false, :force=>:cascade})4903 -> 0.0102s4904-- create_table("design_management_versions", {:force=>:cascade})4905 -> 0.0092s4906-- create_table("design_user_mentions", {:force=>:cascade})4907 -> 0.0069s4908-- create_table("draft_notes", {:force=>:cascade})4909 -> 0.0096s4910-- create_table("elasticsearch_indexed_namespaces", {:id=>false, :force=>:cascade})4911 -> 0.0033s4912-- create_table("elasticsearch_indexed_projects", {:id=>false, :force=>:cascade})4913 -> 0.0033s4914-- create_table("emails", {:id=>:serial, :force=>:cascade})4915 -> 0.0089s4916-- create_table("environments", {:id=>:serial, :force=>:cascade})4917 -> 0.0127s4918-- create_table("epic_issues", {:id=>:serial, :force=>:cascade})4919 -> 0.0063s4920-- create_table("epic_metrics", {:id=>:serial, :force=>:cascade})4921 -> 0.0044s4922-- create_table("epic_user_mentions", {:force=>:cascade})4923 -> 0.0092s4924-- create_table("epics", {:id=>:serial, :force=>:cascade})4925 -> 0.0272s4926-- create_table("events", {:id=>:serial, :force=>:cascade})4927 -> 0.0179s4928-- create_table("evidences", {:force=>:cascade})4929 -> 0.0055s4930-- create_table("external_pull_requests", {:force=>:cascade})4931 -> 0.0053s4932-- create_table("feature_gates", {:id=>:serial, :force=>:cascade})4933 -> 0.0051s4934-- create_table("features", {:id=>:serial, :force=>:cascade})4935 -> 0.0048s4936-- create_table("fork_network_members", {:id=>:serial, :force=>:cascade})4937 -> 0.0086s4938-- create_table("fork_networks", {:id=>:serial, :force=>:cascade})4939 -> 0.0049s4940-- create_table("forked_project_links", {:id=>:serial, :force=>:cascade})4941 -> 0.0043s4942-- create_table("geo_cache_invalidation_events", {:force=>:cascade})4943 -> 0.0025s4944-- create_table("geo_container_repository_updated_events", {:force=>:cascade})4945 -> 0.0043s4946-- create_table("geo_event_log", {:force=>:cascade})4947 -> 0.0295s4948-- create_table("geo_hashed_storage_attachments_events", {:force=>:cascade})4949 -> 0.0048s4950-- create_table("geo_hashed_storage_migrated_events", {:force=>:cascade})4951 -> 0.0050s4952-- create_table("geo_job_artifact_deleted_events", {:force=>:cascade})4953 -> 0.0048s4954-- create_table("geo_lfs_object_deleted_events", {:force=>:cascade})4955 -> 0.0046s4956-- create_table("geo_node_namespace_links", {:id=>:serial, :force=>:cascade})4957 -> 0.0083s4958-- create_table("geo_node_statuses", {:id=>:serial, :force=>:cascade})4959 -> 0.0064s4960-- create_table("geo_nodes", {:id=>:serial, :force=>:cascade})4961 -> 0.0129s4962-- create_table("geo_repositories_changed_events", {:force=>:cascade})4963 -> 0.0045s4964-- create_table("geo_repository_created_events", {:force=>:cascade})4965 -> 0.0049s4966-- create_table("geo_repository_deleted_events", {:force=>:cascade})4967 -> 0.0048s4968-- create_table("geo_repository_renamed_events", {:force=>:cascade})4969 -> 0.0049s4970-- create_table("geo_repository_updated_events", {:force=>:cascade})4971 -> 0.0076s4972-- create_table("geo_reset_checksum_events", {:force=>:cascade})4973 -> 0.0041s4974-- create_table("geo_upload_deleted_events", {:force=>:cascade})4975 -> 0.0048s4976-- create_table("gitlab_subscription_histories", {:force=>:cascade})4977 -> 0.0045s4978-- create_table("gitlab_subscriptions", {:force=>:cascade})4979 -> 0.0077s4980-- create_table("gpg_key_subkeys", {:id=>:serial, :force=>:cascade})4981 -> 0.0092s4982-- create_table("gpg_keys", {:id=>:serial, :force=>:cascade})4983 -> 0.0091s4984-- create_table("gpg_signatures", {:id=>:serial, :force=>:cascade})4985 -> 0.0138s4986-- create_table("grafana_integrations", {:force=>:cascade})4987 -> 0.0073s4988-- create_table("group_custom_attributes", {:id=>:serial, :force=>:cascade})4989 -> 0.0070s4990-- create_table("group_deletion_schedules", {:primary_key=>"group_id", :id=>:bigint, :default=>nil, :force=>:cascade})4991 -> 0.0055s4992-- create_table("group_group_links", {:force=>:cascade})4993 -> 0.0068s4994-- create_table("historical_data", {:id=>:serial, :force=>:cascade})4995 -> 0.0021s4996-- create_table("identities", {:id=>:serial, :force=>:cascade})4997 -> 0.0092s4998-- create_table("import_export_uploads", {:id=>:serial, :force=>:cascade})4999 -> 0.0089s5000-- create_table("import_failures", {:force=>:cascade})5001 -> 0.0069s5002-- create_table("index_statuses", {:id=>:serial, :force=>:cascade})5003 -> 0.0048s5004-- create_table("insights", {:id=>:serial, :force=>:cascade})5005 -> 0.0060s5006-- create_table("internal_ids", {:force=>:cascade})5007 -> 0.0104s5008-- create_table("ip_restrictions", {:force=>:cascade})5009 -> 0.0046s5010-- create_table("issue_assignees", {:id=>false, :force=>:cascade})5011 -> 0.0052s5012-- create_table("issue_links", {:id=>:serial, :force=>:cascade})5013 -> 0.0088s5014-- create_table("issue_metrics", {:id=>:serial, :force=>:cascade})5015 -> 0.0066s5016-- create_table("issue_tracker_data", {:force=>:cascade})5017 -> 0.0050s5018-- create_table("issue_user_mentions", {:force=>:cascade})5019 -> 0.0087s5020-- create_table("issues", {:id=>:serial, :force=>:cascade})5021 -> 0.0533s5022-- create_table("issues_prometheus_alert_events", {:id=>false, :force=>:cascade})5023 -> 0.0055s5024-- create_table("issues_self_managed_prometheus_alert_events", {:id=>false, :force=>:cascade})5025 -> 0.0055s5026-- create_table("jira_connect_installations", {:force=>:cascade})5027 -> 0.0052s5028-- create_table("jira_connect_subscriptions", {:force=>:cascade})5029 -> 0.0085s5030-- create_table("jira_tracker_data", {:force=>:cascade})5031 -> 0.0051s5032-- create_table("keys", {:id=>:serial, :force=>:cascade})5033 -> 0.0117s5034-- create_table("label_links", {:id=>:serial, :force=>:cascade})5035 -> 0.0070s5036-- create_table("label_priorities", {:id=>:serial, :force=>:cascade})5037 -> 0.0110s5038-- create_table("labels", {:id=>:serial, :force=>:cascade})5039 -> 0.0186s5040-- create_table("ldap_group_links", {:id=>:serial, :force=>:cascade})5041 -> 0.0028s5042-- create_table("lfs_file_locks", {:id=>:serial, :force=>:cascade})5043 -> 0.0069s5044-- create_table("lfs_objects", {:id=>:serial, :force=>:cascade})5045 -> 0.0067s5046-- create_table("lfs_objects_projects", {:id=>:serial, :force=>:cascade})5047 -> 0.0064s5048-- create_table("licenses", {:id=>:serial, :force=>:cascade})5049 -> 0.0026s5050-- create_table("list_user_preferences", {:force=>:cascade})5051 -> 0.0087s5052-- create_table("lists", {:id=>:serial, :force=>:cascade})5053 -> 0.0141s5054-- create_table("members", {:id=>:serial, :force=>:cascade})5055 -> 0.0186s5056-- create_table("merge_request_assignees", {:force=>:cascade})5057 -> 0.0084s5058-- create_table("merge_request_blocks", {:force=>:cascade})5059 -> 0.0066s5060-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})5061 -> 0.0062s5062-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})5063 -> 0.0045s5064-- create_table("merge_request_diffs", {:id=>:serial, :force=>:cascade})5065 -> 0.0074s5066-- create_table("merge_request_metrics", {:id=>:serial, :force=>:cascade})5067 -> 0.0194s5068-- create_table("merge_request_user_mentions", {:force=>:cascade})5069 -> 0.0092s5070-- create_table("merge_requests", {:id=>:serial, :force=>:cascade})5071 -> 0.0624s5072-- create_table("merge_requests_closing_issues", {:id=>:serial, :force=>:cascade})5073 -> 0.0064s5074-- create_table("merge_trains", {:force=>:cascade})5075 -> 0.0117s5076-- create_table("milestone_releases", {:id=>false, :force=>:cascade})5077 -> 0.0054s5078-- create_table("milestones", {:id=>:serial, :force=>:cascade})5079 -> 0.0157s5080-- create_table("namespace_aggregation_schedules", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})5081 -> 0.0036s5082-- create_table("namespace_root_storage_statistics", {:primary_key=>"namespace_id", :id=>:integer, :default=>nil, :force=>:cascade})5083 -> 0.0064s5084-- create_table("namespace_statistics", {:id=>:serial, :force=>:cascade})5085 -> 0.0048s5086-- create_table("namespaces", {:id=>:serial, :force=>:cascade})5087 -> 0.0460s5088-- create_table("note_diff_files", {:id=>:serial, :force=>:cascade})5089 -> 0.0053s5090-- create_table("notes", {:id=>:serial, :force=>:cascade})5091 -> 0.0283s5092-- create_table("notification_settings", {:id=>:serial, :force=>:cascade})5093 -> 0.0129s5094-- create_table("oauth_access_grants", {:id=>:serial, :force=>:cascade})5095 -> 0.0054s5096-- create_table("oauth_access_tokens", {:id=>:serial, :force=>:cascade})5097 -> 0.0114s5098-- create_table("oauth_applications", {:id=>:serial, :force=>:cascade})5099 -> 0.0080s5100-- create_table("oauth_openid_requests", {:id=>:serial, :force=>:cascade})5101 -> 0.0047s5102-- create_table("operations_feature_flag_scopes", {:force=>:cascade})5103 -> 0.0061s5104-- create_table("operations_feature_flags", {:force=>:cascade})5105 -> 0.0050s5106-- create_table("operations_feature_flags_clients", {:force=>:cascade})5107 -> 0.0048s5108-- create_table("packages_conan_file_metadata", {:force=>:cascade})5109 -> 0.0060s5110-- create_table("packages_conan_metadata", {:force=>:cascade})5111 -> 0.0055s5112-- create_table("packages_dependencies", {:force=>:cascade})5113 -> 0.0057s5114-- create_table("packages_dependency_links", {:force=>:cascade})5115 -> 0.0076s5116-- create_table("packages_maven_metadata", {:force=>:cascade})5117 -> 0.0053s5118-- create_table("packages_package_files", {:force=>:cascade})5119 -> 0.0055s5120-- create_table("packages_package_tags", {:force=>:cascade})5121 -> 0.0045s5122-- create_table("packages_packages", {:force=>:cascade})5123 -> 0.0100s5124-- create_table("pages_domain_acme_orders", {:force=>:cascade})5125 -> 0.0075s5126-- create_table("pages_domains", {:id=>:serial, :force=>:cascade})5127 -> 0.0214s5128-- create_table("path_locks", {:id=>:serial, :force=>:cascade})5129 -> 0.0093s5130-- create_table("personal_access_tokens", {:id=>:serial, :force=>:cascade})5131 -> 0.0114s5132-- create_table("plan_limits", {:force=>:cascade})5133 -> 0.0054s5134-- create_table("plans", {:id=>:serial, :force=>:cascade})5135 -> 0.0047s5136-- create_table("pool_repositories", {:force=>:cascade})5137 -> 0.0087s5138-- create_table("programming_languages", {:id=>:serial, :force=>:cascade})5139 -> 0.0047s5140-- create_table("project_alerting_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})5141 -> 0.0021s5142-- create_table("project_aliases", {:force=>:cascade})5143 -> 0.0067s5144-- create_table("project_authorizations", {:id=>false, :force=>:cascade})5145 -> 0.0052s5146-- create_table("project_auto_devops", {:id=>:serial, :force=>:cascade})5147 -> 0.0046s5148-- create_table("project_ci_cd_settings", {:id=>:serial, :force=>:cascade})5149 -> 0.0049s5150-- create_table("project_custom_attributes", {:id=>:serial, :force=>:cascade})5151 -> 0.0078s5152-- create_table("project_daily_statistics", {:force=>:cascade})5153 -> 0.0058s5154-- create_table("project_deploy_tokens", {:id=>:serial, :force=>:cascade})5155 -> 0.0063s5156-- create_table("project_error_tracking_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})5157 -> 0.0027s5158-- create_table("project_feature_usages", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})5159 -> 0.0080s5160-- create_table("project_features", {:id=>:serial, :force=>:cascade})5161 -> 0.0051s5162-- create_table("project_group_links", {:id=>:serial, :force=>:cascade})5163 -> 0.0067s5164-- create_table("project_import_data", {:id=>:serial, :force=>:cascade})5165 -> 0.0051s5166-- create_table("project_incident_management_settings", {:primary_key=>"project_id", :id=>:serial, :force=>:cascade})5167 -> 0.0037s5168-- create_table("project_metrics_settings", {:primary_key=>"project_id", :id=>:integer, :default=>nil, :force=>:cascade})5169 -> 0.0021s5170-- create_table("project_mirror_data", {:id=>:serial, :force=>:cascade})5171 -> 0.0183s5172-- create_table("project_pages_metadata", {:id=>false, :force=>:cascade})5173 -> 0.0077s5174-- create_table("project_repositories", {:force=>:cascade})5175 -> 0.0113s5176-- create_table("project_repository_states", {:id=>:serial, :force=>:cascade})5177 -> 0.0211s5178-- create_table("project_statistics", {:id=>:serial, :force=>:cascade})5179 -> 0.0126s5180-- create_table("project_tracing_settings", {:force=>:cascade})5181 -> 0.0052s5182-- create_table("projects", {:id=>:serial, :force=>:cascade})5183 -> 0.0884s5184-- create_table("prometheus_alert_events", {:force=>:cascade})5185 -> 0.0075s5186-- create_table("prometheus_alerts", {:id=>:serial, :force=>:cascade})5187 -> 0.0088s5188-- create_table("prometheus_metrics", {:id=>:serial, :force=>:cascade})5189 -> 0.0123s5190-- create_table("protected_branch_merge_access_levels", {:id=>:serial, :force=>:cascade})5191 -> 0.0091s5192-- create_table("protected_branch_push_access_levels", {:id=>:serial, :force=>:cascade})5193 -> 0.0115s5194-- create_table("protected_branch_unprotect_access_levels", {:id=>:serial, :force=>:cascade})5195 -> 0.0088s5196-- create_table("protected_branches", {:id=>:serial, :force=>:cascade})5197 -> 0.0075s5198-- create_table("protected_environment_deploy_access_levels", {:id=>:serial, :force=>:cascade})5199 -> 0.0111s5200-- create_table("protected_environments", {:id=>:serial, :force=>:cascade})5201 -> 0.0073s5202-- create_table("protected_tag_create_access_levels", {:id=>:serial, :force=>:cascade})5203 -> 0.0089s5204-- create_table("protected_tags", {:id=>:serial, :force=>:cascade})5205 -> 0.0072s5206-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})5207 -> 0.0048s5208-- create_table("push_rules", {:id=>:serial, :force=>:cascade})5209 -> 0.0098s5210-- create_table("redirect_routes", {:id=>:serial, :force=>:cascade})5211 -> 0.0116s5212-- create_table("release_links", {:force=>:cascade})5213 -> 0.0093s5214-- create_table("releases", {:id=>:serial, :force=>:cascade})5215 -> 0.0095s5216-- create_table("remote_mirrors", {:id=>:serial, :force=>:cascade})5217 -> 0.0085s5218-- create_table("repository_languages", {:id=>false, :force=>:cascade})5219 -> 0.0036s5220-- create_table("resource_label_events", {:force=>:cascade})5221 -> 0.0135s5222-- create_table("reviews", {:force=>:cascade})5223 -> 0.0084s5224-- create_table("routes", {:id=>:serial, :force=>:cascade})5225 -> 0.0092s5226-- create_table("saml_providers", {:id=>:serial, :force=>:cascade})5227 -> 0.0058s5228-- create_table("scim_oauth_access_tokens", {:id=>:serial, :force=>:cascade})5229 -> 0.0050s5230-- create_table("self_managed_prometheus_alert_events", {:force=>:cascade})5231 -> 0.0074s5232-- create_table("sent_notifications", {:id=>:serial, :force=>:cascade})5233 -> 0.0052s5234-- create_table("sentry_issues", {:force=>:cascade})5235 -> 0.0073s5236-- create_table("service_desk_settings", {:primary_key=>"project_id", :id=>:bigint, :default=>nil, :force=>:cascade})5237 -> 0.0017s5238-- create_table("services", {:id=>:serial, :force=>:cascade})5239 -> 0.0175s5240-- create_table("shards", {:id=>:serial, :force=>:cascade})5241 -> 0.0050s5242-- create_table("slack_integrations", {:id=>:serial, :force=>:cascade})5243 -> 0.0072s5244-- create_table("smartcard_identities", {:force=>:cascade})5245 -> 0.0075s5246-- create_table("snippet_user_mentions", {:force=>:cascade})5247 -> 0.0093s5248-- create_table("snippets", {:id=>:serial, :force=>:cascade})5249 -> 0.0215s5250-- create_table("software_license_policies", {:id=>:serial, :force=>:cascade})5251 -> 0.0073s5252-- create_table("software_licenses", {:id=>:serial, :force=>:cascade})5253 -> 0.0070s5254-- create_table("spam_logs", {:id=>:serial, :force=>:cascade})5255 -> 0.0053s5256-- create_table("subscriptions", {:id=>:serial, :force=>:cascade})5257 -> 0.0093s5258-- create_table("suggestions", {:force=>:cascade})5259 -> 0.0083s5260-- create_table("system_note_metadata", {:id=>:serial, :force=>:cascade})5261 -> 0.0095s5262-- create_table("taggings", {:id=>:serial, :force=>:cascade})5263 -> 0.0119s5264-- create_table("tags", {:id=>:serial, :force=>:cascade})5265 -> 0.0100s5266-- create_table("term_agreements", {:id=>:serial, :force=>:cascade})5267 -> 0.0111s5268-- create_table("timelogs", {:id=>:serial, :force=>:cascade})5269 -> 0.0150s5270-- create_table("todos", {:id=>:serial, :force=>:cascade})5271 -> 0.0221s5272-- create_table("trending_projects", {:id=>:serial, :force=>:cascade})5273 -> 0.0042s5274-- create_table("u2f_registrations", {:id=>:serial, :force=>:cascade})5275 -> 0.0069s5276-- create_table("uploads", {:id=>:serial, :force=>:cascade})5277 -> 0.0110s5278-- create_table("user_agent_details", {:id=>:serial, :force=>:cascade})5279 -> 0.0055s5280-- create_table("user_callouts", {:id=>:serial, :force=>:cascade})5281 -> 0.0064s5282-- create_table("user_custom_attributes", {:id=>:serial, :force=>:cascade})5283 -> 0.0071s5284-- create_table("user_interacted_projects", {:id=>false, :force=>:cascade})5285 -> 0.0053s5286-- create_table("user_preferences", {:id=>:serial, :force=>:cascade})5287 -> 0.0070s5288-- create_table("user_statuses", {:primary_key=>"user_id", :id=>:serial, :force=>:cascade})5289 -> 0.0052s5290-- create_table("user_synced_attributes_metadata", {:id=>:serial, :force=>:cascade})5291 -> 0.0061s5292-- create_table("users", {:id=>:serial, :force=>:cascade})5293 -> 0.0733s5294-- create_table("users_ops_dashboard_projects", {:force=>:cascade})5295 -> 0.0071s5296-- create_table("users_security_dashboard_projects", {:id=>false, :force=>:cascade})5297 -> 0.0054s5298-- create_table("users_star_projects", {:id=>:serial, :force=>:cascade})5299 -> 0.0066s5300-- create_table("vulnerabilities", {:force=>:cascade})5301 -> 0.0272s5302-- create_table("vulnerability_feedback", {:id=>:serial, :force=>:cascade})5303 -> 0.0156s5304-- create_table("vulnerability_identifiers", {:force=>:cascade})5305 -> 0.0054s5306-- create_table("vulnerability_issue_links", {:force=>:cascade})5307 -> 0.0101s5308-- create_table("vulnerability_occurrence_identifiers", {:force=>:cascade})5309 -> 0.0081s5310-- create_table("vulnerability_occurrence_pipelines", {:force=>:cascade})5311 -> 0.0070s5312-- create_table("vulnerability_occurrences", {:force=>:cascade})5313 -> 0.0137s5314-- create_table("vulnerability_scanners", {:force=>:cascade})5315 -> 0.0048s5316-- create_table("web_hook_logs", {:id=>:serial, :force=>:cascade})5317 -> 0.0079s5318-- create_table("web_hooks", {:id=>:serial, :force=>:cascade})5319 -> 0.0124s5320-- create_table("zoom_meetings", {:force=>:cascade})5321 -> 0.0107s5322-- add_foreign_key("alerts_service_data", "services", {:on_delete=>:cascade})5323 -> 0.0024s5324-- add_foreign_key("allowed_email_domains", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5325 -> 0.0024s5326-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})5327 -> 0.0020s5328-- add_foreign_key("analytics_cycle_analytics_group_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})5329 -> 0.0014s5330-- add_foreign_key("analytics_cycle_analytics_group_stages", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5331 -> 0.0015s5332-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"end_event_label_id", :on_delete=>:cascade})5333 -> 0.0016s5334-- add_foreign_key("analytics_cycle_analytics_project_stages", "labels", {:column=>"start_event_label_id", :on_delete=>:cascade})5335 -> 0.0013s5336-- add_foreign_key("analytics_cycle_analytics_project_stages", "projects", {:on_delete=>:cascade})5337 -> 0.0032s5338-- add_foreign_key("analytics_language_trend_repository_languages", "programming_languages", {:on_delete=>:cascade})5339 -> 0.0016s5340-- add_foreign_key("analytics_language_trend_repository_languages", "projects", {:on_delete=>:cascade})5341 -> 0.0017s5342-- add_foreign_key("analytics_repository_file_commits", "analytics_repository_files", {:on_delete=>:cascade})5343 -> 0.0015s5344-- add_foreign_key("analytics_repository_file_commits", "projects", {:on_delete=>:cascade})5345 -> 0.0018s5346-- add_foreign_key("analytics_repository_file_edits", "analytics_repository_files", {:on_delete=>:cascade})5347 -> 0.0016s5348-- add_foreign_key("analytics_repository_file_edits", "projects", {:on_delete=>:cascade})5349 -> 0.0020s5350-- add_foreign_key("analytics_repository_files", "projects", {:on_delete=>:cascade})5351 -> 0.0016s5352-- add_foreign_key("application_settings", "namespaces", {:column=>"custom_project_templates_group_id", :on_delete=>:nullify})5353 -> 0.0032s5354-- add_foreign_key("application_settings", "projects", {:column=>"file_template_project_id", :name=>"fk_ec757bd087", :on_delete=>:nullify})5355 -> 0.0030s5356-- add_foreign_key("application_settings", "projects", {:column=>"instance_administration_project_id", :on_delete=>:nullify})5357 -> 0.0024s5358-- add_foreign_key("application_settings", "users", {:column=>"usage_stats_set_by_user_id", :name=>"fk_964370041d", :on_delete=>:nullify})5359 -> 0.0033s5360-- add_foreign_key("approval_merge_request_rule_sources", "approval_merge_request_rules", {:on_delete=>:cascade})5361 -> 0.0019s5362-- add_foreign_key("approval_merge_request_rule_sources", "approval_project_rules", {:on_delete=>:cascade})5363 -> 0.0016s5364-- add_foreign_key("approval_merge_request_rules", "merge_requests", {:on_delete=>:cascade})5365 -> 0.0028s5366-- add_foreign_key("approval_merge_request_rules_approved_approvers", "approval_merge_request_rules", {:on_delete=>:cascade})5367 -> 0.0015s5368-- add_foreign_key("approval_merge_request_rules_approved_approvers", "users", {:on_delete=>:cascade})5369 -> 0.0017s5370-- add_foreign_key("approval_merge_request_rules_groups", "approval_merge_request_rules", {:on_delete=>:cascade})5371 -> 0.0016s5372-- add_foreign_key("approval_merge_request_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5373 -> 0.0015s5374-- add_foreign_key("approval_merge_request_rules_users", "approval_merge_request_rules", {:on_delete=>:cascade})5375 -> 0.0027s5376-- add_foreign_key("approval_merge_request_rules_users", "users", {:on_delete=>:cascade})5377 -> 0.0022s5378-- add_foreign_key("approval_project_rules", "projects", {:on_delete=>:cascade})5379 -> 0.0026s5380-- add_foreign_key("approval_project_rules_groups", "approval_project_rules", {:on_delete=>:cascade})5381 -> 0.0019s5382-- add_foreign_key("approval_project_rules_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5383 -> 0.0016s5384-- add_foreign_key("approval_project_rules_users", "approval_project_rules", {:on_delete=>:cascade})5385 -> 0.0016s5386-- add_foreign_key("approval_project_rules_users", "users", {:on_delete=>:cascade})5387 -> 0.0018s5388-- add_foreign_key("approvals", "merge_requests", {:name=>"fk_310d714958", :on_delete=>:cascade})5389 -> 0.0018s5390-- add_foreign_key("approver_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5391 -> 0.0018s5392-- add_foreign_key("aws_roles", "users", {:on_delete=>:cascade})5393 -> 0.0019s5394-- add_foreign_key("badges", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5395 -> 0.0022s5396-- add_foreign_key("badges", "projects", {:on_delete=>:cascade})5397 -> 0.0028s5398-- add_foreign_key("board_assignees", "boards", {:on_delete=>:cascade})5399 -> 0.0022s5400-- add_foreign_key("board_assignees", "users", {:column=>"assignee_id", :on_delete=>:cascade})5401 -> 0.0020s5402-- add_foreign_key("board_group_recent_visits", "boards", {:on_delete=>:cascade})5403 -> 0.0017s5404-- add_foreign_key("board_group_recent_visits", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5405 -> 0.0018s5406-- add_foreign_key("board_group_recent_visits", "users", {:on_delete=>:cascade})5407 -> 0.0019s5408-- add_foreign_key("board_labels", "boards", {:on_delete=>:cascade})5409 -> 0.0024s5410-- add_foreign_key("board_labels", "labels", {:on_delete=>:cascade})5411 -> 0.0019s5412-- add_foreign_key("board_project_recent_visits", "boards", {:on_delete=>:cascade})5413 -> 0.0020s5414-- add_foreign_key("board_project_recent_visits", "projects", {:on_delete=>:cascade})5415 -> 0.0022s5416-- add_foreign_key("board_project_recent_visits", "users", {:on_delete=>:cascade})5417 -> 0.0025s5418-- add_foreign_key("boards", "namespaces", {:column=>"group_id", :name=>"fk_1e9a074a35", :on_delete=>:cascade})5419 -> 0.0020s5420-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})5421 -> 0.0021s5422-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})5423 -> 0.0017s5424-- add_foreign_key("ci_build_needs", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})5425 -> 0.0028s5426-- add_foreign_key("ci_build_trace_chunks", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})5427 -> 0.0017s5428-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})5429 -> 0.0019s5430-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})5431 -> 0.0015s5432-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})5433 -> 0.0015s5434-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})5435 -> 0.0018s5436-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})5437 -> 0.0023s5438-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"commit_id", :name=>"fk_d3130c9a7f", :on_delete=>:cascade})5439 -> 0.0016s5440-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"upstream_pipeline_id", :name=>"fk_87f4cefcda", :on_delete=>:cascade})5441 -> 0.0016s5442-- add_foreign_key("ci_builds", "ci_resource_groups", {:column=>"resource_group_id", :name=>"fk_6661f4f0e8", :on_delete=>:nullify})5443 -> 0.0017s5444-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})5445 -> 0.0018s5446-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})5447 -> 0.0022s5448-- add_foreign_key("ci_builds_metadata", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})5449 -> 0.0030s5450-- add_foreign_key("ci_builds_metadata", "projects", {:on_delete=>:cascade})5451 -> 0.0025s5452-- add_foreign_key("ci_builds_runner_session", "ci_builds", {:column=>"build_id", :on_delete=>:cascade})5453 -> 0.0023s5454-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})5455 -> 0.0022s5456-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})5457 -> 0.0021s5458-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})5459 -> 0.0022s5460-- add_foreign_key("ci_job_variables", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})5461 -> 0.0019s5462-- add_foreign_key("ci_pipeline_chat_data", "chat_names", {:on_delete=>:cascade})5463 -> 0.0019s5464-- add_foreign_key("ci_pipeline_chat_data", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})5465 -> 0.0023s5466-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})5467 -> 0.0019s5468-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})5469 -> 0.0020s5470-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})5471 -> 0.0018s5472-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})5473 -> 0.0016s5474-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})5475 -> 0.0014s5476-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})5477 -> 0.0014s5478-- add_foreign_key("ci_pipelines", "external_pull_requests", {:name=>"fk_190998ef09", :on_delete=>:nullify})5479 -> 0.0017s5480-- add_foreign_key("ci_pipelines", "merge_requests", {:name=>"fk_a23be95014", :on_delete=>:cascade})5481 -> 0.0017s5482-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})5483 -> 0.0021s5484-- add_foreign_key("ci_resource_groups", "projects", {:on_delete=>:cascade})5485 -> 0.0018s5486-- add_foreign_key("ci_resources", "ci_builds", {:column=>"build_id", :on_delete=>:nullify})5487 -> 0.0018s5488-- add_foreign_key("ci_resources", "ci_resource_groups", {:column=>"resource_group_id", :on_delete=>:cascade})5489 -> 0.0013s5490-- add_foreign_key("ci_runner_namespaces", "ci_runners", {:column=>"runner_id", :on_delete=>:cascade})5491 -> 0.0017s5492-- add_foreign_key("ci_runner_namespaces", "namespaces", {:on_delete=>:cascade})5493 -> 0.0016s5494-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})5495 -> 0.0019s5496-- add_foreign_key("ci_sources_pipelines", "ci_builds", {:column=>"source_job_id", :name=>"fk_be5624bf37", :on_delete=>:cascade})5497 -> 0.0020s5498-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_e1bad85861", :on_delete=>:cascade})5499 -> 0.0016s5500-- add_foreign_key("ci_sources_pipelines", "ci_pipelines", {:column=>"source_pipeline_id", :name=>"fk_d4e29af7d7", :on_delete=>:cascade})5501 -> 0.0015s5502-- add_foreign_key("ci_sources_pipelines", "projects", {:column=>"source_project_id", :name=>"fk_acd9737679", :on_delete=>:cascade})5503 -> 0.0019s5504-- add_foreign_key("ci_sources_pipelines", "projects", {:name=>"fk_1e53c97c0a", :on_delete=>:cascade})5505 -> 0.0019s5506-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})5507 -> 0.0016s5508-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})5509 -> 0.0019s5510-- add_foreign_key("ci_subscriptions_projects", "projects", {:column=>"downstream_project_id", :on_delete=>:cascade})5511 -> 0.0018s5512-- add_foreign_key("ci_subscriptions_projects", "projects", {:column=>"upstream_project_id", :on_delete=>:cascade})5513 -> 0.0017s5514-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})5515 -> 0.0015s5516-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})5517 -> 0.0017s5518-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})5519 -> 0.0017s5520-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})5521 -> 0.0019s5522-- add_foreign_key("cluster_groups", "clusters", {:on_delete=>:cascade})5523 -> 0.0018s5524-- add_foreign_key("cluster_groups", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5525 -> 0.0017s5526-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})5527 -> 0.0015s5528-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})5529 -> 0.0015s5530-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})5531 -> 0.0019s5532-- add_foreign_key("cluster_providers_aws", "clusters", {:on_delete=>:cascade})5533 -> 0.0017s5534-- add_foreign_key("cluster_providers_aws", "users", {:column=>"created_by_user_id", :on_delete=>:nullify})5535 -> 0.0020s5536-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})5537 -> 0.0023s5538-- add_foreign_key("clusters", "projects", {:column=>"management_project_id", :name=>"fk_f05c5e5a42", :on_delete=>:nullify})5539 -> 0.0028s5540-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})5541 -> 0.0022s5542-- add_foreign_key("clusters_applications_cert_managers", "clusters", {:on_delete=>:cascade})5543 -> 0.0016s5544-- add_foreign_key("clusters_applications_crossplane", "clusters", {:on_delete=>:cascade})5545 -> 0.0016s5546-- add_foreign_key("clusters_applications_elastic_stacks", "clusters", {:on_delete=>:cascade})5547 -> 0.0015s5548-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})5549 -> 0.0016s5550-- add_foreign_key("clusters_applications_ingress", "clusters", {:on_delete=>:cascade})5551 -> 0.0016s5552-- add_foreign_key("clusters_applications_jupyter", "clusters", {:on_delete=>:cascade})5553 -> 0.0017s5554-- add_foreign_key("clusters_applications_jupyter", "oauth_applications", {:on_delete=>:nullify})5555 -> 0.0017s5556-- add_foreign_key("clusters_applications_knative", "clusters", {:on_delete=>:cascade})5557 -> 0.0016s5558-- add_foreign_key("clusters_applications_prometheus", "clusters", {:name=>"fk_557e773639", :on_delete=>:cascade})5559 -> 0.0017s5560-- add_foreign_key("clusters_applications_runners", "ci_runners", {:column=>"runner_id", :name=>"fk_02de2ded36", :on_delete=>:nullify})5561 -> 0.0017s5562-- add_foreign_key("clusters_applications_runners", "clusters", {:on_delete=>:cascade})5563 -> 0.0015s5564-- add_foreign_key("clusters_kubernetes_namespaces", "cluster_projects", {:on_delete=>:nullify})5565 -> 0.0018s5566-- add_foreign_key("clusters_kubernetes_namespaces", "clusters", {:on_delete=>:cascade})5567 -> 0.0014s5568-- add_foreign_key("clusters_kubernetes_namespaces", "environments", {:on_delete=>:nullify})5569 -> 0.0017s5570-- add_foreign_key("clusters_kubernetes_namespaces", "projects", {:on_delete=>:nullify})5571 -> 0.0023s5572-- add_foreign_key("commit_user_mentions", "notes", {:on_delete=>:cascade})5573 -> 0.0020s5574-- add_foreign_key("container_expiration_policies", "projects", {:on_delete=>:cascade})5575 -> 0.0020s5576-- add_foreign_key("container_repositories", "projects")5577 -> 0.0020s5578-- add_foreign_key("dependency_proxy_blobs", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5579 -> 0.0018s5580-- add_foreign_key("dependency_proxy_group_settings", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5581 -> 0.0017s5582-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})5583 -> 0.0020s5584-- add_foreign_key("deployment_merge_requests", "deployments", {:on_delete=>:cascade})5585 -> 0.0020s5586-- add_foreign_key("deployment_merge_requests", "merge_requests", {:on_delete=>:cascade})5587 -> 0.0016s5588-- add_foreign_key("deployments", "clusters", {:name=>"fk_289bba3222", :on_delete=>:nullify})5589 -> 0.0017s5590-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})5591 -> 0.0020s5592-- add_foreign_key("description_versions", "epics", {:on_delete=>:cascade})5593 -> 0.0023s5594-- add_foreign_key("description_versions", "issues", {:on_delete=>:cascade})5595 -> 0.0025s5596-- add_foreign_key("description_versions", "merge_requests", {:on_delete=>:cascade})5597 -> 0.0018s5598-- add_foreign_key("design_management_designs", "issues", {:on_delete=>:cascade})5599 -> 0.0018s5600-- add_foreign_key("design_management_designs", "projects", {:on_delete=>:cascade})5601 -> 0.0019s5602-- add_foreign_key("design_management_designs_versions", "design_management_designs", {:column=>"design_id", :name=>"fk_03c671965c", :on_delete=>:cascade})5603 -> 0.0013s5604-- add_foreign_key("design_management_designs_versions", "design_management_versions", {:column=>"version_id", :name=>"fk_f4d25ba00c", :on_delete=>:cascade})5605 -> 0.0014s5606-- add_foreign_key("design_management_versions", "issues", {:on_delete=>:cascade})5607 -> 0.0016s5608-- add_foreign_key("design_management_versions", "users", {:column=>"author_id", :name=>"fk_c1440b4896", :on_delete=>:nullify})5609 -> 0.0017s5610-- add_foreign_key("design_user_mentions", "design_management_designs", {:column=>"design_id", :on_delete=>:cascade})5611 -> 0.0014s5612-- add_foreign_key("design_user_mentions", "notes", {:on_delete=>:cascade})5613 -> 0.0014s5614-- add_foreign_key("draft_notes", "merge_requests", {:on_delete=>:cascade})5615 -> 0.0018s5616-- add_foreign_key("draft_notes", "users", {:column=>"author_id", :on_delete=>:cascade})5617 -> 0.0017s5618-- add_foreign_key("elasticsearch_indexed_namespaces", "namespaces", {:on_delete=>:cascade})5619 -> 0.0015s5620-- add_foreign_key("elasticsearch_indexed_projects", "projects", {:on_delete=>:cascade})5621 -> 0.0019s5622-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})5623 -> 0.0019s5624-- add_foreign_key("epic_issues", "epics", {:on_delete=>:cascade})5625 -> 0.0017s5626-- add_foreign_key("epic_issues", "issues", {:on_delete=>:cascade})5627 -> 0.0016s5628-- add_foreign_key("epic_metrics", "epics", {:on_delete=>:cascade})5629 -> 0.0015s5630-- add_foreign_key("epic_user_mentions", "epics", {:on_delete=>:cascade})5631 -> 0.0017s5632-- add_foreign_key("epic_user_mentions", "notes", {:on_delete=>:cascade})5633 -> 0.0015s5634-- add_foreign_key("epics", "epics", {:column=>"due_date_sourcing_epic_id", :name=>"fk_013c9f36ca", :on_delete=>:nullify})5635 -> 0.0016s5636-- add_foreign_key("epics", "epics", {:column=>"parent_id", :name=>"fk_25b99c1be3", :on_delete=>:cascade})5637 -> 0.0014s5638-- add_foreign_key("epics", "epics", {:column=>"start_date_sourcing_epic_id", :name=>"fk_9d480c64b2", :on_delete=>:nullify})5639 -> 0.0014s5640-- add_foreign_key("epics", "milestones", {:on_delete=>:nullify})5641 -> 0.0018s5642-- add_foreign_key("epics", "namespaces", {:column=>"group_id", :name=>"fk_f081aa4489", :on_delete=>:cascade})5643 -> 0.0017s5644-- add_foreign_key("epics", "users", {:column=>"assignee_id", :name=>"fk_dccd3f98fc", :on_delete=>:nullify})5645 -> 0.0019s5646-- add_foreign_key("epics", "users", {:column=>"author_id", :name=>"fk_3654b61b03", :on_delete=>:cascade})5647 -> 0.0018s5648-- add_foreign_key("epics", "users", {:column=>"closed_by_id", :name=>"fk_aa5798e761", :on_delete=>:nullify})5649 -> 0.0019s5650-- add_foreign_key("events", "namespaces", {:column=>"group_id", :name=>"fk_61fbf6ca48", :on_delete=>:cascade})5651 -> 0.0018s5652-- add_foreign_key("events", "projects", {:on_delete=>:cascade})5653 -> 0.0021s5654-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})5655 -> 0.0017s5656-- add_foreign_key("evidences", "releases", {:on_delete=>:cascade})5657 -> 0.0017s5658-- add_foreign_key("external_pull_requests", "projects", {:on_delete=>:cascade})5659 -> 0.0019s5660-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})5661 -> 0.0016s5662-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})5663 -> 0.0017s5664-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})5665 -> 0.0018s5666-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})5667 -> 0.0017s5668-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})5669 -> 0.0018s5670-- add_foreign_key("geo_container_repository_updated_events", "container_repositories", {:name=>"fk_212c89c706", :on_delete=>:cascade})5671 -> 0.0014s5672-- add_foreign_key("geo_event_log", "geo_cache_invalidation_events", {:column=>"cache_invalidation_event_id", :name=>"fk_42c3b54bed", :on_delete=>:cascade})5673 -> 0.0019s5674-- add_foreign_key("geo_event_log", "geo_container_repository_updated_events", {:column=>"container_repository_updated_event_id", :name=>"fk_6ada82d42a", :on_delete=>:cascade})5675 -> 0.0014s5676-- add_foreign_key("geo_event_log", "geo_hashed_storage_migrated_events", {:column=>"hashed_storage_migrated_event_id", :name=>"fk_27548c6db3", :on_delete=>:cascade})5677 -> 0.0015s5678-- add_foreign_key("geo_event_log", "geo_job_artifact_deleted_events", {:column=>"job_artifact_deleted_event_id", :name=>"fk_176d3fbb5d", :on_delete=>:cascade})5679 -> 0.0015s5680-- add_foreign_key("geo_event_log", "geo_lfs_object_deleted_events", {:column=>"lfs_object_deleted_event_id", :name=>"fk_d5af95fcd9", :on_delete=>:cascade})5681 -> 0.0014s5682-- add_foreign_key("geo_event_log", "geo_repositories_changed_events", {:column=>"repositories_changed_event_id", :name=>"fk_4a99ebfd60", :on_delete=>:cascade})5683 -> 0.0015s5684-- add_foreign_key("geo_event_log", "geo_repository_created_events", {:column=>"repository_created_event_id", :name=>"fk_9b9afb1916", :on_delete=>:cascade})5685 -> 0.0015s5686-- add_foreign_key("geo_event_log", "geo_repository_deleted_events", {:column=>"repository_deleted_event_id", :name=>"fk_c4b1c1f66e", :on_delete=>:cascade})5687 -> 0.0015s5688-- add_foreign_key("geo_event_log", "geo_repository_renamed_events", {:column=>"repository_renamed_event_id", :name=>"fk_86c84214ec", :on_delete=>:cascade})5689 -> 0.0015s5690-- add_foreign_key("geo_event_log", "geo_repository_updated_events", {:column=>"repository_updated_event_id", :name=>"fk_78a6492f68", :on_delete=>:cascade})5691 -> 0.0016s5692-- add_foreign_key("geo_event_log", "geo_reset_checksum_events", {:column=>"reset_checksum_event_id", :name=>"fk_cff7185ad2", :on_delete=>:cascade})5693 -> 0.0015s5694-- add_foreign_key("geo_event_log", "geo_upload_deleted_events", {:column=>"upload_deleted_event_id", :name=>"fk_c1f241c70d", :on_delete=>:cascade})5695 -> 0.0015s5696-- add_foreign_key("geo_hashed_storage_attachments_events", "projects", {:on_delete=>:cascade})5697 -> 0.0020s5698-- add_foreign_key("geo_hashed_storage_migrated_events", "projects", {:on_delete=>:cascade})5699 -> 0.0020s5700-- add_foreign_key("geo_node_namespace_links", "geo_nodes", {:on_delete=>:cascade})5701 -> 0.0017s5702-- add_foreign_key("geo_node_namespace_links", "namespaces", {:on_delete=>:cascade})5703 -> 0.0018s5704-- add_foreign_key("geo_node_statuses", "geo_nodes", {:on_delete=>:cascade})5705 -> 0.0019s5706-- add_foreign_key("geo_repositories_changed_events", "geo_nodes", {:on_delete=>:cascade})5707 -> 0.0014s5708-- add_foreign_key("geo_repository_created_events", "projects", {:on_delete=>:cascade})5709 -> 0.0020s5710-- add_foreign_key("geo_repository_renamed_events", "projects", {:on_delete=>:cascade})5711 -> 0.0019s5712-- add_foreign_key("geo_repository_updated_events", "projects", {:on_delete=>:cascade})5713 -> 0.0018s5714-- add_foreign_key("geo_reset_checksum_events", "projects", {:on_delete=>:cascade})5715 -> 0.0018s5716-- add_foreign_key("gitlab_subscriptions", "namespaces", {:name=>"fk_e2595d00a1", :on_delete=>:cascade})5717 -> 0.0018s5718-- add_foreign_key("gitlab_subscriptions", "plans", {:column=>"hosted_plan_id", :name=>"fk_bd0c4019c3", :on_delete=>:cascade})5719 -> 0.0014s5720-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})5721 -> 0.0017s5722-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})5723 -> 0.0018s5724-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})5725 -> 0.0016s5726-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})5727 -> 0.0015s5728-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})5729 -> 0.0019s5730-- add_foreign_key("grafana_integrations", "projects", {:on_delete=>:cascade})5731 -> 0.0019s5732-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5733 -> 0.0017s5734-- add_foreign_key("group_deletion_schedules", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5735 -> 0.0016s5736-- add_foreign_key("group_deletion_schedules", "users", {:name=>"fk_11e3ebfcdd", :on_delete=>:cascade})5737 -> 0.0018s5738-- add_foreign_key("group_group_links", "namespaces", {:column=>"shared_group_id", :on_delete=>:cascade})5739 -> 0.0019s5740-- add_foreign_key("group_group_links", "namespaces", {:column=>"shared_with_group_id", :on_delete=>:cascade})5741 -> 0.0017s5742-- add_foreign_key("identities", "saml_providers", {:name=>"fk_aade90f0fc", :on_delete=>:cascade})5743 -> 0.0017s5744-- add_foreign_key("import_export_uploads", "namespaces", {:column=>"group_id", :name=>"fk_83319d9721", :on_delete=>:cascade})5745 -> 0.0017s5746-- add_foreign_key("import_export_uploads", "projects", {:on_delete=>:cascade})5747 -> 0.0019s5748-- add_foreign_key("index_statuses", "projects", {:name=>"fk_74b2492545", :on_delete=>:cascade})5749 -> 0.0020s5750-- add_foreign_key("insights", "namespaces", {:on_delete=>:cascade})5751 -> 0.0020s5752-- add_foreign_key("insights", "projects", {:on_delete=>:cascade})5753 -> 0.0018s5754-- add_foreign_key("internal_ids", "namespaces", {:name=>"fk_162941d509", :on_delete=>:cascade})5755 -> 0.0019s5756-- add_foreign_key("internal_ids", "projects", {:on_delete=>:cascade})5757 -> 0.0018s5758-- add_foreign_key("ip_restrictions", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5759 -> 0.0015s5760-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})5761 -> 0.0018s5762-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})5763 -> 0.0019s5764-- add_foreign_key("issue_links", "issues", {:column=>"source_id", :name=>"fk_c900194ff2", :on_delete=>:cascade})5765 -> 0.0017s5766-- add_foreign_key("issue_links", "issues", {:column=>"target_id", :name=>"fk_e71bb44f1f", :on_delete=>:cascade})5767 -> 0.0015s5768-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})5769 -> 0.0018s5770-- add_foreign_key("issue_tracker_data", "services", {:on_delete=>:cascade})5771 -> 0.0016s5772-- add_foreign_key("issue_user_mentions", "issues", {:on_delete=>:cascade})5773 -> 0.0018s5774-- add_foreign_key("issue_user_mentions", "notes", {:on_delete=>:cascade})5775 -> 0.0015s5776-- add_foreign_key("issues", "epics", {:column=>"promoted_to_epic_id", :name=>"fk_df75a7c8b8", :on_delete=>:nullify})5777 -> 0.0018s5778-- add_foreign_key("issues", "issues", {:column=>"duplicated_to_id", :name=>"fk_9c4516d665", :on_delete=>:nullify})5779 -> 0.0016s5780-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})5781 -> 0.0017s5782-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})5783 -> 0.0016s5784-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})5785 -> 0.0022s5786-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})5787 -> 0.0020s5788-- add_foreign_key("issues", "users", {:column=>"closed_by_id", :name=>"fk_c63cbf6c25", :on_delete=>:nullify})5789 -> 0.0019s5790-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})5791 -> 0.0019s5792-- add_foreign_key("issues_prometheus_alert_events", "issues", {:on_delete=>:cascade})5793 -> 0.0017s5794-- add_foreign_key("issues_prometheus_alert_events", "prometheus_alert_events", {:on_delete=>:cascade})5795 -> 0.0015s5796-- add_foreign_key("issues_self_managed_prometheus_alert_events", "issues", {:on_delete=>:cascade})5797 -> 0.0016s5798-- add_foreign_key("issues_self_managed_prometheus_alert_events", "self_managed_prometheus_alert_events", {:on_delete=>:cascade})5799 -> 0.0023s5800-- add_foreign_key("jira_connect_subscriptions", "jira_connect_installations", {:on_delete=>:cascade})5801 -> 0.0016s5802-- add_foreign_key("jira_connect_subscriptions", "namespaces", {:on_delete=>:cascade})5803 -> 0.0017s5804-- add_foreign_key("jira_tracker_data", "services", {:on_delete=>:cascade})5805 -> 0.0016s5806-- add_foreign_key("label_links", "labels", {:name=>"fk_d97dd08678", :on_delete=>:cascade})5807 -> 0.0015s5808-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})5809 -> 0.0015s5810-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})5811 -> 0.0020s5812-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})5813 -> 0.0017s5814-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})5815 -> 0.0021s5816-- add_foreign_key("lfs_file_locks", "projects", {:on_delete=>:cascade})5817 -> 0.0020s5818-- add_foreign_key("lfs_file_locks", "users", {:on_delete=>:cascade})5819 -> 0.0019s5820-- add_foreign_key("list_user_preferences", "lists", {:on_delete=>:cascade})5821 -> 0.0017s5822-- add_foreign_key("list_user_preferences", "users", {:on_delete=>:cascade})5823 -> 0.0018s5824-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})5825 -> 0.0014s5826-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})5827 -> 0.0014s5828-- add_foreign_key("lists", "milestones", {:on_delete=>:cascade})5829 -> 0.0015s5830-- add_foreign_key("lists", "users", {:name=>"fk_d6cf4279f7", :on_delete=>:cascade})5831 -> 0.0018s5832-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})5833 -> 0.0022s5834-- add_foreign_key("merge_request_assignees", "merge_requests", {:on_delete=>:cascade})5835 -> 0.0018s5836-- add_foreign_key("merge_request_assignees", "users", {:on_delete=>:cascade})5837 -> 0.0018s5838-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocked_merge_request_id", :on_delete=>:cascade})5839 -> 0.0017s5840-- add_foreign_key("merge_request_blocks", "merge_requests", {:column=>"blocking_merge_request_id", :on_delete=>:cascade})5841 -> 0.0015s5842-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})5843 -> 0.0017s5844-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})5845 -> 0.0014s5846-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})5847 -> 0.0016s5848-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})5849 -> 0.0019s5850-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})5851 -> 0.0016s5852-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})5853 -> 0.0018s5854-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})5855 -> 0.0018s5856-- add_foreign_key("merge_request_user_mentions", "merge_requests", {:on_delete=>:cascade})5857 -> 0.0018s5858-- add_foreign_key("merge_request_user_mentions", "notes", {:on_delete=>:cascade})5859 -> 0.0016s5860-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})5861 -> 0.0017s5862-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})5863 -> 0.0017s5864-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})5865 -> 0.0017s5866-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})5867 -> 0.0021s5868-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})5869 -> 0.0022s5870-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})5871 -> 0.0020s5872-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})5873 -> 0.0040s5874-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})5875 -> 0.0021s5876-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})5877 -> 0.0020s5878-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})5879 -> 0.0025s5880-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})5881 -> 0.0017s5882-- add_foreign_key("merge_trains", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})5883 -> 0.0017s5884-- add_foreign_key("merge_trains", "merge_requests", {:on_delete=>:cascade})5885 -> 0.0017s5886-- add_foreign_key("merge_trains", "projects", {:column=>"target_project_id", :on_delete=>:cascade})5887 -> 0.0019s5888-- add_foreign_key("merge_trains", "users", {:on_delete=>:cascade})5889 -> 0.0019s5890-- add_foreign_key("milestone_releases", "milestones", {:on_delete=>:cascade})5891 -> 0.0016s5892-- add_foreign_key("milestone_releases", "releases", {:on_delete=>:cascade})5893 -> 0.0014s5894-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})5895 -> 0.0018s5896-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})5897 -> 0.0021s5898-- add_foreign_key("namespace_aggregation_schedules", "namespaces", {:on_delete=>:cascade})5899 -> 0.0017s5900-- add_foreign_key("namespace_root_storage_statistics", "namespaces", {:on_delete=>:cascade})5901 -> 0.0018s5902-- add_foreign_key("namespace_statistics", "namespaces", {:on_delete=>:cascade})5903 -> 0.0017s5904-- add_foreign_key("namespaces", "namespaces", {:column=>"custom_project_templates_group_id", :name=>"fk_e7a0b20a6b", :on_delete=>:nullify})5905 -> 0.0018s5906-- add_foreign_key("namespaces", "plans", {:name=>"fk_fdd12e5b80", :on_delete=>:nullify})5907 -> 0.0017s5908-- add_foreign_key("namespaces", "projects", {:column=>"file_template_project_id", :name=>"fk_319256d87a", :on_delete=>:nullify})5909 -> 0.0023s5910-- add_foreign_key("note_diff_files", "notes", {:column=>"diff_note_id", :on_delete=>:cascade})5911 -> 0.0016s5912-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})5913 -> 0.0021s5914-- add_foreign_key("notes", "reviews", {:name=>"fk_2e82291620", :on_delete=>:nullify})5915 -> 0.0017s5916-- add_foreign_key("notification_settings", "users", {:name=>"fk_0c95e91db7", :on_delete=>:cascade})5917 -> 0.0022s5918-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_77114b3b09", :on_delete=>:cascade})5919 -> 0.0018s5920-- add_foreign_key("operations_feature_flag_scopes", "operations_feature_flags", {:column=>"feature_flag_id", :on_delete=>:cascade})5921 -> 0.0015s5922-- add_foreign_key("operations_feature_flags", "projects", {:on_delete=>:cascade})5923 -> 0.0020s5924-- add_foreign_key("operations_feature_flags_clients", "projects", {:on_delete=>:cascade})5925 -> 0.0018s5926-- add_foreign_key("packages_conan_file_metadata", "packages_package_files", {:column=>"package_file_id", :on_delete=>:cascade})5927 -> 0.0015s5928-- add_foreign_key("packages_conan_metadata", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})5929 -> 0.0015s5930-- add_foreign_key("packages_dependency_links", "packages_dependencies", {:column=>"dependency_id", :on_delete=>:cascade})5931 -> 0.0014s5932-- add_foreign_key("packages_dependency_links", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})5933 -> 0.0012s5934-- add_foreign_key("packages_maven_metadata", "packages_packages", {:column=>"package_id", :name=>"fk_be88aed360", :on_delete=>:cascade})5935 -> 0.0013s5936-- add_foreign_key("packages_package_files", "packages_packages", {:column=>"package_id", :name=>"fk_86f0f182f8", :on_delete=>:cascade})5937 -> 0.0013s5938-- add_foreign_key("packages_package_tags", "packages_packages", {:column=>"package_id", :on_delete=>:cascade})5939 -> 0.0015s5940-- add_foreign_key("packages_packages", "projects", {:on_delete=>:cascade})5941 -> 0.0020s5942-- add_foreign_key("pages_domain_acme_orders", "pages_domains", {:on_delete=>:cascade})5943 -> 0.0018s5944-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})5945 -> 0.0020s5946-- add_foreign_key("path_locks", "projects", {:name=>"fk_5265c98f24", :on_delete=>:cascade})5947 -> 0.0021s5948-- add_foreign_key("path_locks", "users")5949 -> 0.0020s5950-- add_foreign_key("personal_access_tokens", "users")5951 -> 0.0021s5952-- add_foreign_key("plan_limits", "plans", {:on_delete=>:cascade})5953 -> 0.0015s5954-- add_foreign_key("pool_repositories", "projects", {:column=>"source_project_id", :on_delete=>:nullify})5955 -> 0.0019s5956-- add_foreign_key("pool_repositories", "shards", {:on_delete=>:restrict})5957 -> 0.0015s5958-- add_foreign_key("project_alerting_settings", "projects", {:on_delete=>:cascade})5959 -> 0.0020s5960-- add_foreign_key("project_aliases", "projects", {:on_delete=>:cascade})5961 -> 0.0019s5962-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})5963 -> 0.0019s5964-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})5965 -> 0.0018s5966-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})5967 -> 0.0020s5968-- add_foreign_key("project_ci_cd_settings", "projects", {:name=>"fk_24c15d2f2e", :on_delete=>:cascade})5969 -> 0.0020s5970-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})5971 -> 0.0019s5972-- add_foreign_key("project_daily_statistics", "projects", {:on_delete=>:cascade})5973 -> 0.0020s5974-- add_foreign_key("project_deploy_tokens", "deploy_tokens", {:on_delete=>:cascade})5975 -> 0.0016s5976-- add_foreign_key("project_deploy_tokens", "projects", {:on_delete=>:cascade})5977 -> 0.0020s5978-- add_foreign_key("project_error_tracking_settings", "projects", {:on_delete=>:cascade})5979 -> 0.0021s5980-- add_foreign_key("project_feature_usages", "projects", {:on_delete=>:cascade})5981 -> 0.0021s5982-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})5983 -> 0.0022s5984-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})5985 -> 0.0021s5986-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})5987 -> 0.0020s5988-- add_foreign_key("project_incident_management_settings", "projects", {:on_delete=>:cascade})5989 -> 0.0028s5990-- add_foreign_key("project_metrics_settings", "projects", {:on_delete=>:cascade})5991 -> 0.0027s5992-- add_foreign_key("project_mirror_data", "projects", {:name=>"fk_d1aad367d7", :on_delete=>:cascade})5993 -> 0.0023s5994-- add_foreign_key("project_pages_metadata", "projects", {:on_delete=>:cascade})5995 -> 0.0021s5996-- add_foreign_key("project_repositories", "projects", {:on_delete=>:cascade})5997 -> 0.0021s5998-- add_foreign_key("project_repositories", "shards", {:on_delete=>:restrict})5999 -> 0.0015s6000-- add_foreign_key("project_repository_states", "projects", {:on_delete=>:cascade})6001 -> 0.0023s6002-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})6003 -> 0.0021s6004-- add_foreign_key("project_tracing_settings", "projects", {:on_delete=>:cascade})6005 -> 0.0020s6006-- add_foreign_key("projects", "pool_repositories", {:name=>"fk_6e5c14658a", :on_delete=>:nullify})6007 -> 0.0021s6008-- add_foreign_key("projects", "users", {:column=>"marked_for_deletion_by_user_id", :name=>"fk_25d8780d11", :on_delete=>:nullify})6009 -> 0.0025s6010-- add_foreign_key("prometheus_alert_events", "projects", {:on_delete=>:cascade})6011 -> 0.0021s6012-- add_foreign_key("prometheus_alert_events", "prometheus_alerts", {:on_delete=>:cascade})6013 -> 0.0016s6014-- add_foreign_key("prometheus_alerts", "environments", {:on_delete=>:cascade})6015 -> 0.0014s6016-- add_foreign_key("prometheus_alerts", "projects", {:on_delete=>:cascade})6017 -> 0.0020s6018-- add_foreign_key("prometheus_alerts", "prometheus_metrics", {:on_delete=>:cascade})6019 -> 0.0016s6020-- add_foreign_key("prometheus_metrics", "projects", {:on_delete=>:cascade})6021 -> 0.0020s6022-- add_foreign_key("protected_branch_merge_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_98f3d044fe", :on_delete=>:cascade})6023 -> 0.0018s6024-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})6025 -> 0.0016s6026-- add_foreign_key("protected_branch_merge_access_levels", "users")6027 -> 0.0029s6028-- add_foreign_key("protected_branch_push_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_7111b68cdb", :on_delete=>:cascade})6029 -> 0.0029s6030-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})6031 -> 0.0016s6032-- add_foreign_key("protected_branch_push_access_levels", "users")6033 -> 0.0023s6034-- add_foreign_key("protected_branch_unprotect_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})6035 -> 0.0020s6036-- add_foreign_key("protected_branch_unprotect_access_levels", "protected_branches", {:on_delete=>:cascade})6037 -> 0.0014s6038-- add_foreign_key("protected_branch_unprotect_access_levels", "users", {:on_delete=>:cascade})6039 -> 0.0021s6040-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})6041 -> 0.0021s6042-- add_foreign_key("protected_environment_deploy_access_levels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})6043 -> 0.0018s6044-- add_foreign_key("protected_environment_deploy_access_levels", "protected_environments", {:on_delete=>:cascade})6045 -> 0.0016s6046-- add_foreign_key("protected_environment_deploy_access_levels", "users", {:on_delete=>:cascade})6047 -> 0.0019s6048-- add_foreign_key("protected_environments", "projects", {:on_delete=>:cascade})6049 -> 0.0020s6050-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id", :name=>"fk_b4eb82fe3c", :on_delete=>:cascade})6051 -> 0.0018s6052-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})6053 -> 0.0015s6054-- add_foreign_key("protected_tag_create_access_levels", "users")6055 -> 0.0019s6056-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})6057 -> 0.0019s6058-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})6059 -> 0.0015s6060-- add_foreign_key("push_rules", "projects", {:name=>"fk_83b29894de", :on_delete=>:cascade})6061 -> 0.0023s6062-- add_foreign_key("release_links", "releases", {:on_delete=>:cascade})6063 -> 0.0015s6064-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})6065 -> 0.0020s6066-- add_foreign_key("releases", "users", {:column=>"author_id", :name=>"fk_8e4456f90f", :on_delete=>:nullify})6067 -> 0.0018s6068-- add_foreign_key("remote_mirrors", "projects", {:name=>"fk_43a9aa4ca8", :on_delete=>:cascade})6069 -> 0.0022s6070-- add_foreign_key("repository_languages", "projects", {:on_delete=>:cascade})6071 -> 0.0020s6072-- add_foreign_key("resource_label_events", "epics", {:on_delete=>:cascade})6073 -> 0.0018s6074-- add_foreign_key("resource_label_events", "issues", {:on_delete=>:cascade})6075 -> 0.0019s6076-- add_foreign_key("resource_label_events", "labels", {:on_delete=>:nullify})6077 -> 0.0016s6078-- add_foreign_key("resource_label_events", "merge_requests", {:on_delete=>:cascade})6079 -> 0.0018s6080-- add_foreign_key("resource_label_events", "users", {:on_delete=>:nullify})6081 -> 0.0019s6082-- add_foreign_key("reviews", "merge_requests", {:on_delete=>:cascade})6083 -> 0.0017s6084-- add_foreign_key("reviews", "projects", {:on_delete=>:cascade})6085 -> 0.0020s6086-- add_foreign_key("reviews", "users", {:column=>"author_id", :on_delete=>:nullify})6087 -> 0.0017s6088-- add_foreign_key("saml_providers", "namespaces", {:column=>"group_id", :on_delete=>:cascade})6089 -> 0.0016s6090-- add_foreign_key("scim_oauth_access_tokens", "namespaces", {:column=>"group_id", :on_delete=>:cascade})6091 -> 0.0018s6092-- add_foreign_key("self_managed_prometheus_alert_events", "environments", {:on_delete=>:cascade})6093 -> 0.0016s6094-- add_foreign_key("self_managed_prometheus_alert_events", "projects", {:on_delete=>:cascade})6095 -> 0.0020s6096-- add_foreign_key("sentry_issues", "issues", {:on_delete=>:cascade})6097 -> 0.0018s6098-- add_foreign_key("service_desk_settings", "projects", {:on_delete=>:cascade})6099 -> 0.0020s6100-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})6101 -> 0.0020s6102-- add_foreign_key("slack_integrations", "services", {:on_delete=>:cascade})6103 -> 0.0019s6104-- add_foreign_key("smartcard_identities", "users", {:on_delete=>:cascade})6105 -> 0.0021s6106-- add_foreign_key("snippet_user_mentions", "notes", {:on_delete=>:cascade})6107 -> 0.0018s6108-- add_foreign_key("snippet_user_mentions", "snippets", {:on_delete=>:cascade})6109 -> 0.0018s6110-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})6111 -> 0.0021s6112-- add_foreign_key("software_license_policies", "projects", {:on_delete=>:cascade})6113 -> 0.0023s6114-- add_foreign_key("software_license_policies", "software_licenses", {:on_delete=>:cascade})6115 -> 0.0016s6116-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})6117 -> 0.0021s6118-- add_foreign_key("suggestions", "notes", {:on_delete=>:cascade})6119 -> 0.0017s6120-- add_foreign_key("system_note_metadata", "description_versions", {:name=>"fk_fbd87415c9", :on_delete=>:nullify})6121 -> 0.0019s6122-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})6123 -> 0.0015s6124-- add_foreign_key("term_agreements", "application_setting_terms", {:column=>"term_id"})6125 -> 0.0016s6126-- add_foreign_key("term_agreements", "users", {:on_delete=>:cascade})6127 -> 0.0020s6128-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})6129 -> 0.0051s6130-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})6131 -> 0.0023s6132-- add_foreign_key("todos", "namespaces", {:column=>"group_id", :on_delete=>:cascade})6133 -> 0.0022s6134-- add_foreign_key("todos", "notes", {:name=>"fk_91d1f47b13", :on_delete=>:cascade})6135 -> 0.0016s6136-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})6137 -> 0.0021s6138-- add_foreign_key("todos", "users", {:column=>"author_id", :name=>"fk_ccf0373936", :on_delete=>:cascade})6139 -> 0.0019s6140-- add_foreign_key("todos", "users", {:name=>"fk_d94154aa95", :on_delete=>:cascade})6141 -> 0.0019s6142-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})6143 -> 0.0021s6144-- add_foreign_key("u2f_registrations", "users")6145 -> 0.0019s6146-- add_foreign_key("user_callouts", "users", {:on_delete=>:cascade})6147 -> 0.0019s6148-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})6149 -> 0.0019s6150-- add_foreign_key("user_interacted_projects", "projects", {:name=>"fk_722ceba4f7", :on_delete=>:cascade})6151 -> 0.0020s6152-- add_foreign_key("user_interacted_projects", "users", {:name=>"fk_0894651f08", :on_delete=>:cascade})6153 -> 0.0018s6154-- add_foreign_key("user_preferences", "users", {:on_delete=>:cascade})6155 -> 0.0021s6156-- add_foreign_key("user_statuses", "users", {:on_delete=>:cascade})6157 -> 0.0020s6158-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})6159 -> 0.0019s6160-- add_foreign_key("users", "application_setting_terms", {:column=>"accepted_term_id", :name=>"fk_789cd90b35", :on_delete=>:cascade})6161 -> 0.0019s6162-- add_foreign_key("users", "namespaces", {:column=>"managing_group_id", :name=>"fk_a4b8fefe3e", :on_delete=>:nullify})6163 -> 0.0024s6164-- add_foreign_key("users_ops_dashboard_projects", "projects", {:on_delete=>:cascade})6165 -> 0.0022s6166-- add_foreign_key("users_ops_dashboard_projects", "users", {:on_delete=>:cascade})6167 -> 0.0019s6168-- add_foreign_key("users_security_dashboard_projects", "projects", {:on_delete=>:cascade})6169 -> 0.0021s6170-- add_foreign_key("users_security_dashboard_projects", "users", {:on_delete=>:cascade})6171 -> 0.0019s6172-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})6173 -> 0.0024s6174-- add_foreign_key("vulnerabilities", "epics", {:name=>"fk_1d37cddf91", :on_delete=>:nullify})6175 -> 0.0022s6176-- add_foreign_key("vulnerabilities", "milestones", {:column=>"due_date_sourcing_milestone_id", :name=>"fk_7c5bb22a22", :on_delete=>:nullify})6177 -> 0.0015s6178-- add_foreign_key("vulnerabilities", "milestones", {:column=>"start_date_sourcing_milestone_id", :name=>"fk_88b4d546ef", :on_delete=>:nullify})6179 -> 0.0015s6180-- add_foreign_key("vulnerabilities", "milestones", {:name=>"fk_131d289c65", :on_delete=>:nullify})6181 -> 0.0017s6182-- add_foreign_key("vulnerabilities", "projects", {:name=>"fk_efb96ab1e2", :on_delete=>:cascade})6183 -> 0.0022s6184-- add_foreign_key("vulnerabilities", "users", {:column=>"author_id", :name=>"fk_b1de915a15", :on_delete=>:nullify})6185 -> 0.0019s6186-- add_foreign_key("vulnerabilities", "users", {:column=>"closed_by_id", :name=>"fk_cf5c60acbf", :on_delete=>:nullify})6187 -> 0.0019s6188-- add_foreign_key("vulnerabilities", "users", {:column=>"last_edited_by_id", :name=>"fk_1302949740", :on_delete=>:nullify})6189 -> 0.0019s6190-- add_foreign_key("vulnerabilities", "users", {:column=>"resolved_by_id", :name=>"fk_76bc5f5455", :on_delete=>:nullify})6191 -> 0.0020s6192-- add_foreign_key("vulnerabilities", "users", {:column=>"updated_by_id", :name=>"fk_7ac31eacb9", :on_delete=>:nullify})6193 -> 0.0019s6194-- add_foreign_key("vulnerability_feedback", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:nullify})6195 -> 0.0019s6196-- add_foreign_key("vulnerability_feedback", "issues", {:on_delete=>:nullify})6197 -> 0.0018s6198-- add_foreign_key("vulnerability_feedback", "merge_requests", {:name=>"fk_563ff1912e", :on_delete=>:nullify})6199 -> 0.0018s6200-- add_foreign_key("vulnerability_feedback", "projects", {:on_delete=>:cascade})6201 -> 0.0022s6202-- add_foreign_key("vulnerability_feedback", "users", {:column=>"author_id", :on_delete=>:cascade})6203 -> 0.0020s6204-- add_foreign_key("vulnerability_feedback", "users", {:column=>"comment_author_id", :name=>"fk_94f7c8a81e", :on_delete=>:nullify})6205 -> 0.0018s6206-- add_foreign_key("vulnerability_identifiers", "projects", {:on_delete=>:cascade})6207 -> 0.0022s6208-- add_foreign_key("vulnerability_issue_links", "issues", {:on_delete=>:cascade})6209 -> 0.0019s6210-- add_foreign_key("vulnerability_issue_links", "vulnerabilities", {:on_delete=>:cascade})6211 -> 0.0015s6212-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_identifiers", {:column=>"identifier_id", :on_delete=>:cascade})6213 -> 0.0015s6214-- add_foreign_key("vulnerability_occurrence_identifiers", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})6215 -> 0.0016s6216-- add_foreign_key("vulnerability_occurrence_pipelines", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})6217 -> 0.0018s6218-- add_foreign_key("vulnerability_occurrence_pipelines", "vulnerability_occurrences", {:column=>"occurrence_id", :on_delete=>:cascade})6219 -> 0.0015s6220-- add_foreign_key("vulnerability_occurrences", "projects", {:on_delete=>:cascade})6221 -> 0.0022s6222-- add_foreign_key("vulnerability_occurrences", "vulnerabilities", {:name=>"fk_97ffe77653", :on_delete=>:nullify})6223 -> 0.0016s6224-- add_foreign_key("vulnerability_occurrences", "vulnerability_identifiers", {:column=>"primary_identifier_id", :on_delete=>:cascade})6225 -> 0.0014s6226-- add_foreign_key("vulnerability_occurrences", "vulnerability_scanners", {:column=>"scanner_id", :on_delete=>:cascade})6227 -> 0.0015s6228-- add_foreign_key("vulnerability_scanners", "projects", {:on_delete=>:cascade})6229 -> 0.0028s6230-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})6231 -> 0.0019s6232-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})6233 -> 0.0022s6234-- add_foreign_key("zoom_meetings", "issues", {:on_delete=>:cascade})6235 -> 0.0020s6236-- add_foreign_key("zoom_meetings", "projects", {:on_delete=>:cascade})6237 -> 0.0020s6238Database re-creation done in 4.7150916680000146239ProtectedTags::UpdateService6240 #execute6241 updates a protected tag6242 without admin_project permissions6243 raises error6244tokens rake tasks6245 reset_all_email task6246 changes the incoming email token6247 reset_all_feed task6248 changes the feed token for the user6249Gitlab::ExclusiveLeaseHelpers6250 #in_lock6251 when unique key is not set6252 raises an error6253 when the lease is not obtained yet6254 calls the given block6255 calls the given block continuously6256 cancels the exclusive lease after the block6257 when the lease is obtained already6258 retries to obtain a lease and raises an error6259 when ttl is specified6260 receives the specified argument6261 when retry count is specified6262 retries for the specified times6263 when lease is granted after retry6264 yields block with true6265 when sleep second is specified6266 receives the specified argument6267Direct upload support6268 config_name: "lfs"6269 when object storage is enabled6270 when direct upload is enabled6271 when provider is AWS6272/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6273/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6274/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6275/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6276/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6277/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6278 succeeds6279 when provider is Google6280/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6281/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6282/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6283/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6284/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6285/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6286 succeeds6287 when connection is empty6288/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6289/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6290/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6291/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6292/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6293/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6294 raises an error6295 when other provider is used6296/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6297/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6298/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6299/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6300/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6301/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6302 raises an error6303 when connection is omitted6304/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6305/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6306/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6307/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6308/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6309/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6310 raises an error6311 when direct upload is disabled6312/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6313/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6314/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6315/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6316/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6317/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6318 succeeds6319 when object storage is disabled6320/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6321/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6322/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6323/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6324/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6325/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6326 succeeds6327 config_name: "artifacts"6328 when object storage is enabled6329 when direct upload is enabled6330 when provider is AWS6331/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6332/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6333/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6334/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6335/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6336/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6337 succeeds6338 when provider is Google6339/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6340/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6341/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6342/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6343/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6344/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6345 succeeds6346 when connection is empty6347/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6348/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6349/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6350/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6351/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6352/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6353 raises an error6354 when other provider is used6355/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6356/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6357/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6358/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6359/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6360/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6361 raises an error6362 when connection is omitted6363/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6364/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6365/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6366/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6367/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6368/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6369 raises an error6370 when direct upload is disabled6371/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6372/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6373/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6374/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6375/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6376/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6377 succeeds6378 when object storage is disabled6379/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6380/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6381/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6382/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6383/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6384/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6385 succeeds6386 config_name: "uploads"6387 when object storage is enabled6388 when direct upload is enabled6389 when provider is AWS6390/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6391/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6392/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6393/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6394/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6395/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6396 succeeds6397 when provider is Google6398/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6399/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6400/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6401/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6402/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6403/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6404 succeeds6405 when connection is empty6406/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6407/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6408/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6409/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6410/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6411/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6412 raises an error6413 when other provider is used6414/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6415/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6416/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6417/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6418/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6419/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6420 raises an error6421 when connection is omitted6422/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6423/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6424/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6425/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6426/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6427/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6428 raises an error6429 when direct upload is disabled6430/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6431/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6432/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6433/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6434/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6435/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6436 succeeds6437 when object storage is disabled6438/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6439/builds/scop/gitlab/config/initializers/direct_upload_support.rb:2: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6440/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::ValidationError6441/builds/scop/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of ValidationError was here6442/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: already initialized constant CONFIGS6443/builds/scop/gitlab/config/initializers/direct_upload_support.rb:28: warning: previous definition of CONFIGS was here6444 succeeds6445Gitlab::CycleAnalytics::ProductionEventFetcher6446 behaves like default query config6447 has the stage attribute6448 has the projection attributes6449Gitlab::Diff::LineMapper6450 #old_to_new6451 with a diff file6452 returns the new line number for the old line number6453 without a diff file6454 returns the same line number6455 #new_to_old6456 with a diff file6457 returns the old line number for the new line number6458 without a diff file6459 returns the same line number6460rest-client dns rebinding protection6461 behaves like a request using Gitlab::UrlBlocker6462 when local requests are not allowed6463 allows an external request with http6464 allows an external request with https6465 raises error when it is a request that resolves to a local address6466 raises error when it is a request that resolves to a localhost address6467 raises error when it is a request to local address6468 raises error when it is a request to localhost address6469 when port different from URL scheme is used6470 allows the request6471 raises error when it is a request to local address6472 raises error when it is a request to localhost address6473 when DNS rebinding protection is disabled6474 allows the request6475 when http(s) proxy environment variable is set6476 allows the request6477 when local requests are allowed6478 allows an external request6479 allows an external request that resolves to a local address6480 allows an external request that resolves to a localhost address6481 allows a local address request6482 allows a localhost address request6483Gitlab::Utils::Override6484 #override6485 when instance is klass.new(0)6486 when STATIC_VERIFICATION is set6487 when subject is a class6488 behaves like checking as intended6489 checks ok for overriding method6490 checks ok for overriding method using negative arity6491 raises NotImplementedError when it is not overriding anything6492 raises NotImplementedError when overriding a method with different arity6493 when subject is a module, and class is prepending it6494 behaves like checking as intended6495 checks ok for overriding method6496 checks ok for overriding method using negative arity6497 raises NotImplementedError when it is not overriding anything6498 raises NotImplementedError when overriding a method with different arity6499 when subject is a module, and class is including it6500 behaves like checking as intended, nothing was overridden6501 raises NotImplementedError because it is not overriding it6502 raises NotImplementedError when it is not overriding anything6503 when STATIC_VERIFICATION is not set6504 when subject is a class6505 behaves like nothing happened6506 does not complain when it is overriding something6507 does not complain when it is not overriding anything6508 when subject is a module, and class is prepending it6509 behaves like nothing happened6510 does not complain when it is overriding something6511 does not complain when it is not overriding anything6512 when subject is a module, and class is including it6513 does not complain when it is overriding something6514 does not complain when it is not overriding anything6515 when instance is klass6516 when STATIC_VERIFICATION is set6517 when subject is a module, and class is prepending it6518 behaves like checking as intended6519 checks ok for overriding method6520 checks ok for overriding method using negative arity6521 raises NotImplementedError when it is not overriding anything6522 raises NotImplementedError when overriding a method with different arity6523 when subject is a module, and class is extending it6524 behaves like checking as intended, nothing was overridden6525 raises NotImplementedError because it is not overriding it6526 raises NotImplementedError when it is not overriding anything6527MigrateUpdateHeadPipelineForMergeRequestSidekiqQueue6528 when there are jobs in the queues6529 correctly migrates queue when migrating up6530 does not affect other queues under the same namespace6531 correctly migrates queue when migrating down6532 when there are no jobs in the queues6533 does not raise error when migrating up6534 does not raise error when migrating down6535gitlab:shell rake tasks6536 install task6537 installs and compiles gitlab-shell6538NewReleaseWorker6539 sends a new release notification6540MergeRequestUserEntity6541 as json6542 exposes needed attributes6543Gitlab::DependencyLinker::PodspecJsonLinker6544 .support?6545 supports *.podspec.json6546 does not support other files6547 #link6548 links the gem name6549 links the license6550 links the homepage6551 links the source URL6552 links dependencies6553 does not link subspec names6554ContainerRepositoryEntity6555 exposes required informations6556 when project is not preset in the request6557 uses project from the object6558 when user can manage repositories6559 exposes destroy_path6560 when user cannot manage repositories6561 does not expose destroy_path6562Gitlab::Danger::Helper6563 #gitlab_helper6564 when gitlab helper is not available6565 returns nil6566 when gitlab helper is available6567 returns the gitlab helper6568 #release_automation?6569 when gitlab helper is not available6570 returns false6571 when gitlab helper is available6572 but the MR author isn't the RELEASE_TOOLS_BOT6573 returns false6574 and the MR author is the RELEASE_TOOLS_BOT6575 returns true6576 #all_changed_files6577 interprets a list of changes from the danger git plugin6578 #ee?6579 returns true if CI_PROJECT_NAME if set to gitlab6580 delegates to CHANGELOG-EE.md existence if CI_PROJECT_NAME is set to something else6581 returns true if ee exists6582 returns false if ee doesn't exist6583 #project_name6584 returns gitlab if ee? returns true6585 returns gitlab-ce if ee? returns false6586 #markdown_list6587 creates a markdown list of items6588 wraps items in <details> when there are more than 10 items6589 #changes_by_category6590 categorizes changed files6591 #category_for_file6592 path: "doc/foo", expected_category: :none6593 should eq :none6594 path: "CONTRIBUTING.md", expected_category: :none6595 should eq :none6596 path: "LICENSE", expected_category: :none6597 should eq :none6598 path: "MAINTENANCE.md", expected_category: :none6599 should eq :none6600 path: "PHILOSOPHY.md", expected_category: :none6601 should eq :none6602 path: "PROCESS.md", expected_category: :none6603 should eq :none6604 path: "README.md", expected_category: :none6605 should eq :none6606 path: "ee/doc/foo", expected_category: :unknown6607 should eq :unknown6608 path: "ee/README", expected_category: :unknown6609 should eq :unknown6610 path: "app/assets/foo", expected_category: :frontend6611 should eq :frontend6612 path: "app/views/foo", expected_category: :frontend6613 should eq :frontend6614 path: "public/foo", expected_category: :frontend6615 should eq :frontend6616 path: "scripts/frontend/foo", expected_category: :frontend6617 should eq :frontend6618 path: "spec/javascripts/foo", expected_category: :frontend6619 should eq :frontend6620 path: "spec/frontend/bar", expected_category: :frontend6621 should eq :frontend6622 path: "vendor/assets/foo", expected_category: :frontend6623 should eq :frontend6624 path: "jest.config.js", expected_category: :frontend6625 should eq :frontend6626 path: "package.json", expected_category: :frontend6627 should eq :frontend6628 path: "yarn.lock", expected_category: :frontend6629 should eq :frontend6630 path: "ee/app/assets/foo", expected_category: :frontend6631 should eq :frontend6632 path: "ee/app/views/foo", expected_category: :frontend6633 should eq :frontend6634 path: "ee/spec/javascripts/foo", expected_category: :frontend6635 should eq :frontend6636 path: "ee/spec/frontend/bar", expected_category: :frontend6637 should eq :frontend6638 path: "app/models/foo", expected_category: :backend6639 should eq :backend6640 path: "bin/foo", expected_category: :backend6641 should eq :backend6642 path: "config/foo", expected_category: :backend6643 should eq :backend6644 path: "lib/foo", expected_category: :backend6645 should eq :backend6646 path: "rubocop/foo", expected_category: :backend6647 should eq :backend6648 path: "spec/foo", expected_category: :backend6649 should eq :backend6650 path: "spec/foo/bar", expected_category: :backend6651 should eq :backend6652 path: "ee/app/foo", expected_category: :backend6653 should eq :backend6654 path: "ee/bin/foo", expected_category: :backend6655 should eq :backend6656 path: "ee/spec/foo", expected_category: :backend6657 should eq :backend6658 path: "ee/spec/foo/bar", expected_category: :backend6659 should eq :backend6660 path: "generator_templates/foo", expected_category: :backend6661 should eq :backend6662 path: "vendor/languages.yml", expected_category: :backend6663 should eq :backend6664 path: "vendor/licenses.csv", expected_category: :backend6665 should eq :backend6666 path: "Gemfile", expected_category: :backend6667 should eq :backend6668 path: "Gemfile.lock", expected_category: :backend6669 should eq :backend6670 path: "Procfile", expected_category: :backend6671 should eq :backend6672 path: "Rakefile", expected_category: :backend6673 should eq :backend6674 path: "FOO_VERSION", expected_category: :backend6675 should eq :backend6676 path: "Dangerfile", expected_category: :engineering_productivity6677 should eq :engineering_productivity6678 path: "danger/commit_messages/Dangerfile", expected_category: :engineering_productivity6679 should eq :engineering_productivity6680 path: "ee/danger/commit_messages/Dangerfile", expected_category: :engineering_productivity6681 should eq :engineering_productivity6682 path: "danger/commit_messages/", expected_category: :engineering_productivity6683 should eq :engineering_productivity6684 path: "ee/danger/commit_messages/", expected_category: :engineering_productivity6685 should eq :engineering_productivity6686 path: ".gitlab-ci.yml", expected_category: :engineering_productivity6687 should eq :engineering_productivity6688 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_category: :engineering_productivity6689 should eq :engineering_productivity6690 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_category: :engineering_productivity6691 should eq :engineering_productivity6692 path: "scripts/foo", expected_category: :engineering_productivity6693 should eq :engineering_productivity6694 path: "lib/gitlab/danger/foo", expected_category: :engineering_productivity6695 should eq :engineering_productivity6696 path: "ee/lib/gitlab/danger/foo", expected_category: :engineering_productivity6697 should eq :engineering_productivity6698 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_category: :backend6699 should eq :backend6700 path: "ee/FOO_VERSION", expected_category: :unknown6701 should eq :unknown6702 path: "db/schema.rb", expected_category: :database6703 should eq :database6704 path: "db/migrate/foo", expected_category: :database6705 should eq :database6706 path: "db/post_migrate/foo", expected_category: :database6707 should eq :database6708 path: "ee/db/migrate/foo", expected_category: :database6709 should eq :database6710 path: "ee/db/post_migrate/foo", expected_category: :database6711 should eq :database6712 path: "ee/db/geo/migrate/foo", expected_category: :database6713 should eq :database6714 path: "ee/db/geo/post_migrate/foo", expected_category: :database6715 should eq :database6716 path: "app/models/project_authorization.rb", expected_category: :database6717 should eq :database6718 path: "app/services/users/refresh_authorized_projects_service.rb", expected_category: :database6719 should eq :database6720 path: "lib/gitlab/background_migration.rb", expected_category: :database6721 should eq :database6722 path: "lib/gitlab/background_migration/foo", expected_category: :database6723 should eq :database6724 path: "ee/lib/gitlab/background_migration/foo", expected_category: :database6725 should eq :database6726 path: "lib/gitlab/database.rb", expected_category: :database6727 should eq :database6728 path: "lib/gitlab/database/foo", expected_category: :database6729 should eq :database6730 path: "ee/lib/gitlab/database/foo", expected_category: :database6731 should eq :database6732 path: "lib/gitlab/github_import.rb", expected_category: :database6733 should eq :database6734 path: "lib/gitlab/github_import/foo", expected_category: :database6735 should eq :database6736 path: "lib/gitlab/sql/foo", expected_category: :database6737 should eq :database6738 path: "rubocop/cop/migration/foo", expected_category: :database6739 should eq :database6740 path: "db/fixtures/foo.rb", expected_category: :backend6741 should eq :backend6742 path: "ee/db/fixtures/foo.rb", expected_category: :backend6743 should eq :backend6744 path: "qa/foo", expected_category: :qa6745 should eq :qa6746 path: "ee/qa/foo", expected_category: :qa6747 should eq :qa6748 path: "changelogs/foo", expected_category: :none6749 should eq :none6750 path: "ee/changelogs/foo", expected_category: :none6751 should eq :none6752 path: "locale/gitlab.pot", expected_category: :none6753 should eq :none6754 path: "FOO", expected_category: :unknown6755 should eq :unknown6756 path: "foo", expected_category: :unknown6757 should eq :unknown6758 path: "foo/bar.rb", expected_category: :backend6759 should eq :backend6760 path: "foo/bar.js", expected_category: :frontend6761 should eq :frontend6762 path: "foo/bar.txt", expected_category: :none6763 should eq :none6764 path: "foo/bar.md", expected_category: :none6765 should eq :none6766 #label_for_category6767 category: :backend, expected_label: "~backend"6768 should eq "~backend"6769 category: :database, expected_label: "~database"6770 should eq "~database"6771 category: :docs, expected_label: "~documentation"6772 should eq "~documentation"6773 category: :foo, expected_label: "~foo"6774 should eq "~foo"6775 category: :frontend, expected_label: "~frontend"6776 should eq "~frontend"6777 category: :none, expected_label: ""6778 should eq ""6779 category: :qa, expected_label: "~QA"6780 should eq "~QA"6781 #new_teammates6782 returns an array of Teammate6783 #missing_database_labels6784 when current merge request has ~database::review pending6785 should contain exactly "database"6786 when current merge request does not have ~database::review pending6787 should contain exactly "database" and "database::review pending"6788ProtectedTags::CreateService6789 #execute6790 creates a new protected tag6791Gitlab::Ci::Pipeline::Chain::Skip6792 when pipeline has been skipped by a user6793 breaks the chain6794 skips the pipeline6795 when pipeline has not been skipped6796 does not break the chain6797 does not skip a pipeline chain6798 when [ci skip] should be ignored6799 does not break the chain6800 when pipeline should be skipped but not persisted6801 breaks the chain6802 does not skip pipeline6803Mutations::ResolvesProject6804 uses the ProjectsResolver to resolve projects by path6805Gitlab::Auth::LDAP::Authentication6806 login6807 finds the user if authentication is successful6808 is false if the user does not exist6809 is false if authentication fails6810 fails if ldap is disabled6811 fails if no login is supplied6812 fails if no password is supplied6813Gitlab::Ci::Ansi2json::Style6814 #set?6815 when fg color is set6816 should be truthy6817 when bg color is set6818 should be truthy6819 when mask is set6820 should be truthy6821 nothing is set6822 should be falsey6823 #reset!6824 set the style params to default6825 update formats to mimic terminals6826 when fg color present6827 when mask is set to bold6828 changes the fg color to a lighter version6829 when mask set to another format6830 does not change the fg color6831 when mask is not set6832 does not change the fg color6833 #update6834 initial_state: [], ansi_commands: ["0"], result: "", description: "does not set any style"6835 change the style6836 initial_state: [], ansi_commands: ["1"], result: "term-bold", description: "enables format bold"6837 change the style6838 initial_state: [], ansi_commands: ["3"], result: "term-italic", description: "enables format italic"6839 change the style6840 initial_state: [], ansi_commands: ["4"], result: "term-underline", description: "enables format underline"6841 change the style6842 initial_state: [], ansi_commands: ["8"], result: "term-conceal", description: "enables format conceal"6843 change the style6844 initial_state: [], ansi_commands: ["9"], result: "term-cross", description: "enables format cross"6845 change the style6846 initial_state: ["1"], ansi_commands: ["21"], result: "", description: "disables format bold"6847 change the style6848 initial_state: ["1", "3"], ansi_commands: ["21"], result: "term-italic", description: "disables format bold and leaves italic"6849 change the style6850 initial_state: ["1"], ansi_commands: ["22"], result: "", description: "disables format bold using command 22"6851 change the style6852 initial_state: ["1", "3"], ansi_commands: ["22"], result: "term-italic", description: "disables format bold and leaves italic using command 22"6853 change the style6854 initial_state: ["3"], ansi_commands: ["23"], result: "", description: "disables format italic"6855 change the style6856 initial_state: ["1", "3"], ansi_commands: ["23"], result: "term-bold", description: "disables format italic and leaves bold"6857 change the style6858 initial_state: ["4"], ansi_commands: ["24"], result: "", description: "disables format underline"6859 change the style6860 initial_state: ["1", "4"], ansi_commands: ["24"], result: "term-bold", description: "disables format underline and leaves bold"6861 change the style6862 initial_state: ["8"], ansi_commands: ["28"], result: "", description: "disables format conceal"6863 change the style6864 initial_state: ["1", "8"], ansi_commands: ["28"], result: "term-bold", description: "disables format conceal and leaves bold"6865 change the style6866 initial_state: ["9"], ansi_commands: ["29"], result: "", description: "disables format cross"6867 change the style6868 initial_state: ["1", "9"], ansi_commands: ["29"], result: "term-bold", description: "disables format cross and leaves bold"6869 change the style6870 initial_state: [], ansi_commands: ["30"], result: "term-fg-black", description: "sets fg color black"6871 change the style6872 initial_state: [], ansi_commands: ["31"], result: "term-fg-red", description: "sets fg color red"6873 change the style6874 initial_state: [], ansi_commands: ["32"], result: "term-fg-green", description: "sets fg color green"6875 change the style6876 initial_state: [], ansi_commands: ["33"], result: "term-fg-yellow", description: "sets fg color yellow"6877 change the style6878 initial_state: [], ansi_commands: ["34"], result: "term-fg-blue", description: "sets fg color blue"6879 change the style6880 initial_state: [], ansi_commands: ["35"], result: "term-fg-magenta", description: "sets fg color magenta"6881 change the style6882 initial_state: [], ansi_commands: ["36"], result: "term-fg-cyan", description: "sets fg color cyan"6883 change the style6884 initial_state: [], ansi_commands: ["37"], result: "term-fg-white", description: "sets fg color white"6885 change the style6886 initial_state: [], ansi_commands: ["38", "5", "1"], result: "xterm-fg-1", description: "sets xterm fg color 1"6887 change the style6888 initial_state: [], ansi_commands: ["38", "5", "2"], result: "xterm-fg-2", description: "sets xterm fg color 2"6889 change the style6890 initial_state: [], ansi_commands: ["38", "1"], result: "term-bold", description: "ignores 38 command if not followed by 5 and sets format bold"6891 change the style6892 initial_state: [], ansi_commands: ["40"], result: "term-bg-black", description: "sets bg color black"6893 change the style6894 initial_state: [], ansi_commands: ["41"], result: "term-bg-red", description: "sets bg color red"6895 change the style6896 initial_state: [], ansi_commands: ["42"], result: "term-bg-green", description: "sets bg color green"6897 change the style6898 initial_state: [], ansi_commands: ["43"], result: "term-bg-yellow", description: "sets bg color yellow"6899 change the style6900 initial_state: [], ansi_commands: ["44"], result: "term-bg-blue", description: "sets bg color blue"6901 change the style6902 initial_state: [], ansi_commands: ["45"], result: "term-bg-magenta", description: "sets bg color magenta"6903 change the style6904 initial_state: [], ansi_commands: ["46"], result: "term-bg-cyan", description: "sets bg color cyan"6905 change the style6906 initial_state: [], ansi_commands: ["47"], result: "term-bg-white", description: "sets bg color white"6907 change the style6908 initial_state: [], ansi_commands: ["48", "5", "1"], result: "xterm-bg-1", description: "sets xterm bg color 1"6909 change the style6910 initial_state: [], ansi_commands: ["48", "5", "2"], result: "xterm-bg-2", description: "sets xterm bg color 2"6911 change the style6912 initial_state: [], ansi_commands: ["48", "1"], result: "term-bold", description: "ignores 48 command if not followed by 5 and sets format bold"6913 change the style6914 initial_state: [], ansi_commands: ["90"], result: "term-fg-l-black", description: "sets fg color light black"6915 change the style6916 initial_state: [], ansi_commands: ["91"], result: "term-fg-l-red", description: "sets fg color light red"6917 change the style6918 initial_state: [], ansi_commands: ["92"], result: "term-fg-l-green", description: "sets fg color light green"6919 change the style6920 initial_state: [], ansi_commands: ["93"], result: "term-fg-l-yellow", description: "sets fg color light yellow"6921 change the style6922 initial_state: [], ansi_commands: ["94"], result: "term-fg-l-blue", description: "sets fg color light blue"6923 change the style6924 initial_state: [], ansi_commands: ["95"], result: "term-fg-l-magenta", description: "sets fg color light magenta"6925 change the style6926 initial_state: [], ansi_commands: ["96"], result: "term-fg-l-cyan", description: "sets fg color light cyan"6927 change the style6928 initial_state: [], ansi_commands: ["97"], result: "term-fg-l-white", description: "sets fg color light white"6929 change the style6930 initial_state: [], ansi_commands: ["100"], result: "term-bg-l-black", description: "sets bg color light black"6931 change the style6932 initial_state: [], ansi_commands: ["101"], result: "term-bg-l-red", description: "sets bg color light red"6933 change the style6934 initial_state: [], ansi_commands: ["102"], result: "term-bg-l-green", description: "sets bg color light green"6935 change the style6936 initial_state: [], ansi_commands: ["103"], result: "term-bg-l-yellow", description: "sets bg color light yellow"6937 change the style6938 initial_state: [], ansi_commands: ["104"], result: "term-bg-l-blue", description: "sets bg color light blue"6939 change the style6940 initial_state: [], ansi_commands: ["105"], result: "term-bg-l-magenta", description: "sets bg color light magenta"6941 change the style6942 initial_state: [], ansi_commands: ["106"], result: "term-bg-l-cyan", description: "sets bg color light cyan"6943 change the style6944 initial_state: [], ansi_commands: ["107"], result: "term-bg-l-white", description: "sets bg color light white"6945 change the style6946 initial_state: ["1"], ansi_commands: [], result: "", description: "resets style from format bold"6947 change the style6948 initial_state: ["1"], ansi_commands: ["0"], result: "", description: "resets style from format bold"6949 change the style6950 initial_state: ["1", "3"], ansi_commands: ["0"], result: "", description: "resets style from format bold and italic"6951 change the style6952 initial_state: ["1", "3", "term-fg-l-red", "term-bg-yellow"], ansi_commands: ["0"], result: "", description: "resets all formats and colors"6953 change the style6954 initial_state: ["31", "42"], ansi_commands: ["39"], result: "term-bg-green", description: "set foreground from red to default leaving background unchanged"6955 change the style6956 initial_state: ["31", "42"], ansi_commands: ["49"], result: "term-fg-red", description: "set background from green to default leaving foreground unchanged"6957 change the style6958 initial_state: [], ansi_commands: ["1", "30", "42", "3"], result: "term-fg-l-black term-bg-green term-bold term-italic", description: "adds fg color, bg color and formats from no style"6959 change the style6960 initial_state: ["3", "31"], ansi_commands: ["23", "1", "43"], result: "term-fg-l-red term-bg-yellow term-bold", description: "replaces format italic with bold and adds a yellow background"6961 change the style6962Import metrics on development seed6963 imports all prometheus metrics6964Gitlab::Ci::Ansi2html6965 prints non-ansi as-is6966 strips non-color-changing control sequences6967 prints simply red6968 prints simply red without trailing reset6969 prints simply yellow6970 prints default on blue6971 prints red on blue6972 resets colors after red on blue6973 performs color change from red/blue to yellow/blue6974 performs color change from red/blue to yellow/green6975 performs color change from red/blue to reset to yellow/green6976 ignores unsupported codes6977 prints light red6978 prints default on light red6979 performs color change from red/blue to default/blue6980 performs color change from light red/blue to default/blue6981 prints bold text6982 resets bold text6983 prints italic text6984 resets italic text6985 prints underlined text6986 resets underlined text6987 prints concealed text6988 resets concealed text6989 prints crossed-out text6990 resets crossed-out text6991 can print 256 xterm fg colors6992 can print 256 xterm fg colors on normal magenta background6993 can print 256 xterm bg colors6994 can print 256 xterm fg bold colors6995 can print 256 xterm bg colors on normal magenta foreground6996 prints bold colored text vividly6997 prints bold light colored text correctly6998 prints <6999 replaces newlines with line break tags7000 groups carriage returns with newlines7001 incremental update7002 with split word7003 behaves like stateable converter7004 to returns html to append7005 with split sequence7006 behaves like stateable converter7007 to returns html to append7008 with partial sequence7009 behaves like stateable converter7010 to returns html to append7011 with new line7012 behaves like stateable converter7013 to returns html to append7014 with section markers7015 do not allow XSS injections7016 behaves like a legit section7017 prints light red7018 begins with a section_start html marker7019 ends with a section_end html marker7020 section name includes $7021 behaves like forbidden char in section_name7022 ignores sections7023 section name includes <7024 behaves like forbidden char in section_name7025 ignores sections7026 section name contains .-_7027 behaves like a legit section7028 prints light red7029 begins with a section_start html marker7030 ends with a section_end html marker7031 truncates7032 returns truncated output7033 does not append output7034BlobLanguageFromGitAttributes7035 #language_from_gitattributes7036 returns return value from gitattribute7037 returns nil if project is absent7038Gitlab::Utils::SanitizeNodeLink7039 with the scheme: javascript:7040 #remove_unsafe_links7041 <a> tags7042 removes the unsafe link7043 <img> tags7044 removes the unsafe link7045 <video> tags7046 removes the unsafe link7047 <audio> tags7048 removes the unsafe link7049 #safe_protocol?7050 returns false7051 with the scheme: JaVaScRiPt:7052 #remove_unsafe_links7053 <a> tags7054 removes the unsafe link7055 <img> tags7056 removes the unsafe link7057 <video> tags7058 removes the unsafe link7059 <audio> tags7060 removes the unsafe link7061 #safe_protocol?7062 returns false7063 with the scheme: javascript:7064 #remove_unsafe_links7065 <a> tags7066 removes the unsafe link7067 <img> tags7068 removes the unsafe link7069 <video> tags7070 removes the unsafe link7071 <audio> tags7072 removes the unsafe link7073 #safe_protocol?7074 returns false7075 with the scheme: javascript :7076 #remove_unsafe_links7077 <a> tags7078 removes the unsafe link7079 <img> tags7080 removes the unsafe link7081 <video> tags7082 removes the unsafe link7083 <audio> tags7084 removes the unsafe link7085 #safe_protocol?7086 returns false7087 with the scheme: javascript:7088 #remove_unsafe_links7089 <a> tags7090 removes the unsafe link7091 <img> tags7092 removes the unsafe link7093 <video> tags7094 removes the unsafe link7095 <audio> tags7096 removes the unsafe link7097 #safe_protocol?7098 returns false7099 with the scheme: javascript :7100 #remove_unsafe_links7101 <a> tags7102 removes the unsafe link7103 <img> tags7104 removes the unsafe link7105 <video> tags7106 removes the unsafe link7107 <audio> tags7108 removes the unsafe link7109 #safe_protocol?7110 returns false7111 with the scheme: :javascript:7112 #remove_unsafe_links7113 <a> tags7114 removes the unsafe link7115 <img> tags7116 removes the unsafe link7117 <video> tags7118 removes the unsafe link7119 <audio> tags7120 removes the unsafe link7121 #safe_protocol?7122 returns false7123 with the scheme: javascript:7124 #remove_unsafe_links7125 <a> tags7126 removes the unsafe link7127 <img> tags7128 removes the unsafe link7129 <video> tags7130 removes the unsafe link7131 <audio> tags7132 removes the unsafe link7133 #safe_protocol?7134 returns false7135 with the scheme: javascript:7136 #remove_unsafe_links7137 <a> tags7138 removes the unsafe link7139 <img> tags7140 removes the unsafe link7141 <video> tags7142 removes the unsafe link7143 <audio> tags7144 removes the unsafe link7145 #safe_protocol?7146 returns false7147 with the scheme:  javascript:7148 #remove_unsafe_links7149 <a> tags7150 removes the unsafe link7151 <img> tags7152 removes the unsafe link7153 <video> tags7154 removes the unsafe link7155 <audio> tags7156 removes the unsafe link7157 #safe_protocol?7158 returns false7159Ci::Sources::Pipeline7160 should belong to project required:7161 should belong to pipeline required:7162 should belong to source_project required:7163 should belong to source_job required:7164 should belong to source_pipeline required:7165 should validate that :project cannot be empty/falsy7166 should validate that :pipeline cannot be empty/falsy7167 should validate that :source_project cannot be empty/falsy7168 should validate that :source_job cannot be empty/falsy7169 should validate that :source_pipeline cannot be empty/falsy7170PageLayoutHelper7171 page_description7172 defaults to nil7173 returns the last-pushed description7174 squishes multiple newlines7175 truncates7176 sanitizes all HTML7177 truncates before sanitizing7178 page_image7179 defaults to the GitLab logo7180 with @project assigned7181 uses Project avatar if available7182 falls back to the default when avatar_url is nil7183 with no assignments7184 falls back to the default7185 with @user assigned7186 uses User avatar if available7187 falls back to the default when avatar_url is nil7188 with no assignments7189 falls back to the default7190 with @group assigned7191 uses Group avatar if available7192 falls back to the default when avatar_url is nil7193 with no assignments7194 falls back to the default7195 page_card_attributes7196 raises ArgumentError when given more than two attributes7197 rejects blank values7198 page_card_meta_tags7199 returns the twitter:label and twitter:data tags7200 escapes content7201RuboCop::Cop::CodeReuse::Presenter7202 flags the use of a Presenter in a Service class7203 flags the use of a Presenter in a Finder7204 flags the use of a Service class in a Presenter7205 flags the use of a Presenter in a Serializer7206 flags the use of a Presenter in a model instance method7207 flags the use of a Presenter in a model class method7208 flags the use of a Presenter in a worker7209CiStatusHelper7210 #ci_icon_for_status7211 renders to correct svg on success7212 renders the correct svg on failure7213 #ci_text_for_status7214 when status is manual7215 changes the status to blocked7216 when status is success7217 changes the status to passed7218 when status is something else7219 returns status unchanged7220 #pipeline_status_cache_key7221 builds a cache key for pipeline status7222 #render_status_with_link7223 renders a passed status icon7224 has 'Pipeline' as the status type in the title7225 has the success status icon7226 when pipeline has commit path7227 links to commit7228 does not contain a span element7229 has 'Pipeline' as the status type in the title7230 has the correct status icon7231 when different type than pipeline is provided7232 has the provided type in the title7233 when tooltip_placement is provided7234 has the provided tooltip placement7235 when additional CSS classes are provided7236 has appended extra class to icon classes7237 when container is provided7238 has the provided container in data7239 when icon_size is provided7240 has the svg class to change size7241SafeZip::Entry7242 #path_dir7243 should eq "/tmp/safe-zip20191213-88-156k6tq/public/folder"7244 #exist?7245 when entry does not exist7246 should not be truthy7247 when entry does exist7248 should be truthy7249 #extract7250 when entry does not match the filtered directories7251 entry_name: "assets/folder/index.html"7252 does not extract file7253 entry_name: "public/../folder/index.html"7254 does not extract file7255 entry_name: "public/../../../../../index.html"7256 does not extract file7257 entry_name: "../../../../../public/index.html"7258 does not extract file7259 entry_name: "/etc/passwd"7260 does not extract file7261 when entry does exist7262 raises an exception7263 when entry type is unknown7264 raises an exception7265 when entry is valid7266 and is file7267 does extract file7268 behaves like secured symlinks7269 when we try to extract entry into symlinked folder7270 raises an exception7271 and is directory7272 does create directory7273 behaves like secured symlinks7274 when we try to extract entry into symlinked folder7275 raises an exception7276 and is symlink7277 when source is within target7278 but does not exist7279 raises an exception7280 and does exist7281 behaves like a valid symlink7282 does create symlink7283 when source points outside of target7284 raises an exception7285 when source points to /etc/passwd7286 raises an exception7287Gitlab::Config::Entry::Validatable7288 .validator7289 returns validator7290 returns only one validator to mitigate leaks7291 when validating entry instance7292 when attribute is valid7293 instance of validator is valid7294 when attribute is not valid7295 instance of validator is invalid7296Gitlab::Ci::Config::External::Context7297 attributes7298 with values7299 should have attributes {:project => #<Double "Project">, :sha => "12345", :user => #<Double "User">}7300 should eq #<Set: {}>7301 should eq 07302 without values7303 should have attributes {:project => nil, :sha => nil, :user => nil}7304 should eq #<Set: {}>7305 should eq 07306 #set_deadline7307 with a float value7308 updates execution_deadline7309 with nil as a value7310 updates execution_deadline7311 #check_execution_time!7312 when execution is expired7313 raises an error7314 when execution is not expired7315 does not raises any errors7316 without setting a deadline7317 does not raises any errors7318 #mutate7319 with attributes7320 behaves like a mutated context7321 should not eq #<Gitlab::Ci::Config::External::Context:0x000055d76e4ac9f0 @project=#<Double "Project">, @sha="12345", @user=#<Double "User">, @expandset=#<Set: {:a_file}>, @execution_deadline=1199.342196035>7322 should be a kind of Gitlab::Ci::Config::External::Context7323 should have attributes {:project => #<Double (anonymous)>, :sha => "56789", :user => #<Double (anonymous)>}7324 should eq #<Set: {:a_file}>7325 should eq 1199.3593173057326 without attributes7327 behaves like a mutated context7328 should not eq #<Gitlab::Ci::Config::External::Context:0x000055d76e574e00 @project=#<Double "Project">, @sha="12345", @user=#<Double "User">, @expandset=#<Set: {:a_file}>, @execution_deadline=1199.36321202>7329 should be a kind of Gitlab::Ci::Config::External::Context7330 should have attributes {}7331 should eq #<Set: {:a_file}>7332 should eq 1199.3778583427333 #sentry_payload7334 should match (a hash including :project and :user)7335Gitlab::Ci::Config::Entry::Image7336 when configuration is a string7337 #value7338 returns image hash7339 #errors7340 does not append errors7341 #valid?7342 is valid7343 #image7344 returns image's name7345 #entrypoint7346 returns image's entrypoint7347 #ports7348 returns image's ports7349 when configuration is a hash7350 #value7351 returns image hash7352 #errors7353 does not append errors7354 #valid?7355 is valid7356 #image7357 returns image's name7358 #entrypoint7359 returns image's entrypoint7360 when configuration has ports7361 when with_image_ports metadata is not enabled7362 #valid?7363 is not valid7364 when with_image_ports metadata is enabled7365 #valid?7366 is valid7367 #ports7368 returns image's ports7369 when entry value is not correct7370 #errors7371 saves errors7372 #valid?7373 is not valid7374 when unexpected key is specified7375 #errors7376 saves errors7377 #valid?7378 is not valid7379Gitlab::Sherlock::Transaction7380 #id7381 returns the transaction ID7382 #type7383 returns the type7384 #path7385 returns the path7386 #queries7387 returns an Array of queries7388 #file_samples7389 returns an Array of file samples7390 #started_at7391 returns the start time7392 #finished_at7393 returns the completion time7394 #view_counts7395 returns a Hash7396 sets the default value of a key to 07397 #run7398 runs the transaction7399 #duration7400 returns the duration in seconds7401 #query_duration7402 returns the total query duration in seconds7403 #to_param7404 returns the transaction ID7405 #sorted_queries7406 returns the queries in descending order7407 #sorted_file_samples7408 returns the file samples in descending order7409 #find_query7410 returns a Query when found7411 returns nil when no query could be found7412 #find_file_sample7413 returns a FileSample when found7414 returns nil when no file sample could be found7415 #profile_lines7416 when line profiling is enabled7417 yields the block using the line profiler7418 when line profiling is disabled7419 yields the block7420 #subscribe_to_active_record7421 tracks executed queries7422 only tracks queries triggered from the transaction thread7423 #subscribe_to_action_view7424 tracks rendered views7425 only tracks views rendered from the transaction thread7426Gitlab::SlashCommands::ApplicationHelp7427 #execute7428 displays the help section7429Gitlab::Kubernetes7430 #container_exec_url7431 should eq "wss"7432 should eq "example.com"7433 should eq "/api/v1/namespaces/default/pods/pod1/exec"7434 should eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"7435 with a HTTP API URL7436 should eq "ws"7437 with a path prefix in the API URL7438 should eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"7439 with arguments that need urlencoding7440 should eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"7441 should match /\Acontainer=container\+1&/7442 #filter_by_label7443 returns matching labels7444 #filter_by_annotation7445 returns matching labels7446 #filter_by_project_environment7447 returns matching env label7448 #filter_by_legacy_label7449 returns matching labels7450 #to_kubeconfig7451 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}7452 when CA PEM is not provided7453 should eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}7454 when token is not provided7455 should be nil7456 #add_terminal_auth7457 adds authentication parameters to a hash7458Mutations::Todos::MarkAllDone7459 #resolve7460 marks all pending todos as done7461 behaves as expected if there are no todos for the requesting user7462 when user is not logged in7463 fails with the expected error7464Gitlab::Database::Grant7465 .create_and_execute_trigger7466 returns true when the user can create and execute a trigger7467 returns false when the user can not create and/or execute a trigger7468NamespacePathValidator7469 .valid_path?7470 handles invalid utf87471 #validates_each7472 adds a message when the path is not in the correct format7473 adds a message when the path is reserved when creating7474 adds a message when the path is reserved when updating7475RuboCop::Cop::CodeReuse::Serializer7476 flags the use of a Serializer in a Service class7477 flags the use of a Serializer in a Finder7478 flags the use of a Serializer in a Presenter7479 flags the use of a Serializer in a Serializer7480 flags the use of a Serializer in a model instance method7481 flags the use of a Serializer in a model class method7482 flags the use of a Serializer in a worker7483Gitlab::FileDetector7484 .types_in_paths7485 returns the file types for the given paths7486 does not include unrecognized file paths7487 .type_of7488 returns the type of a README file7489 returns nil for a README.rb file7490 returns nil for a README file in a directory7491 returns the type of a changelog file7492 returns the type of a license file7493 returns nil for an UNCOPYING file7494 returns the type of a version file7495 returns the type of a .gitignore file7496 returns the type of a GitLab CI config file7497 returns the type of an avatar7498 returns the type of an issue template7499 returns the type of a merge request template7500 returns nil for an unknown file7501RecaptchaExperimentHelper7502 .show_recaptcha_sign_up?7503 when reCAPTCHA is disabled7504 returns false7505 when reCAPTCHA is enabled7506 returns true7507Gitlab::Popen::Runner7508 #run7509 runs the command and returns the result7510 #all_success_and_clean?7511 returns true when exit status is 0 and stderr is empty7512 returns false when exit status is not 07513 returns false when exit stderr has something7514 #all_success?7515 returns true when exit status is 07516 returns false when exit status is not 07517 returns true7518 #all_stderr_empty?7519 returns true when stderr is empty7520 returns true when exit status is not 07521 returns false when exit stderr has something7522 #failed_results7523 returns [] when everything is passed7524 returns the result when exit status is not 07525 returns [] when exit stderr has something7526 #warned_results7527 returns [] when everything is passed7528 returns [] when exit status is not 07529 returns the result when exit stderr has something7530GoogleApi::CloudPlatform::Client7531 .session_key_for_redirect_uri7532 creates a new session key7533 .new_session_key_for_redirect_uri7534 generates a new session key7535 #validate_token7536 when token is nil7537 should be falsy7538 when expires_at is nil7539 should be falsy7540 when expires in 1 hour7541 should be truthy7542 when expires in 10 minutes7543 should be falsy7544 #projects_zones_clusters_get7545 should eq #<Double (anonymous)>7546 #projects_zones_clusters_create7547 sets corresponded parameters7548 create without legacy_abac7549 sets corresponded parameters7550 create with enable_addons for cloud_run7551 sets corresponded parameters7552 #projects_zones_operations7553 should eq #<Double (anonymous)>7554 #parse_operation_id7555 when expected url7556 should eq "ope-123"7557 when unexpected url7558 should be nil7559 #user_agent_header7560 returns a RequestOptions object7561 has the correct GitLab version in User-Agent header7562MergeRequestUserMention7563 associations7564 should belong to merge_request required:7565 should belong to note required:7566 behaves like has user mentions7567 #has_mentions?7568 when no mentions7569 returns false7570 when mentioned_users_ids not null7571 returns true7572 when mentioned projects7573 returns true7574 when mentioned groups7575 returns true7576JSONWebToken::RSAToken7577 token7578 for valid key to be validated7579 should not raise Exception7580 should include {"key" => "value"}7581 should eq {"alg"=>"RS256", "kid"=>"OGXY:4TR7:FAVO:WEM2:XXEW:E4FP:TKL7:7ACK:TZAF:D54P:SUIA:P3B2", "typ"=>"JWT"}7582 for invalid key to raise an exception7583 should raise JWT::DecodeError7584TokenAuthenticatableStrategies::Encrypted7585 #find_token_authenticatable7586 when using optional strategy7587 finds the encrypted resource by cleartext7588 uses insecure strategy when encrypted token cannot be found7589 when using migration strategy7590 finds the cleartext resource by cleartext7591 returns nil if resource cannot be found7592 #get_token7593 when using optional strategy7594 returns decrypted token when an encrypted token is present7595 returns the plaintext token when encrypted token is not present7596 when using migration strategy7597 returns cleartext token when an encrypted token is present7598 returns the cleartext token when encrypted token is not present7599 #set_token7600 when using optional strategy7601 writes encrypted token and removes plaintext token and returns it7602 when using migration strategy7603 writes encrypted token and writes plaintext token7604Gitlab::Metrics::RackMiddleware7605 #call7606 tracks a transaction7607 tracks any raised exceptions7608 #transaction_from_env7609 returns a Transaction7610 stores the request method and URI in the transaction as values7611 when URI includes sensitive parameters7612 stores the request URI with the sensitive parameters filtered7613Gitlab::GitalyClient::Diff7614 should respond to #from_path7615 should respond to #to_path7616 should respond to #old_mode7617 should respond to #new_mode7618 should respond to #from_id7619 should respond to #to_id7620 should respond to #patch7621 should respond to #collapsed7622 should respond to #too_large7623 #==7624 should eq #<Gitlab::GitalyClient::Diff:0x000055d76e92ba58 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>7625 should not eq #<Gitlab::GitalyClient::Diff:0x000055d7704ab828 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>7626Gitlab::Patch::Prependable7627 a class including a concern prepending a concern7628 returns values from prepended module ee7629 has the expected ancestors7630 prepends only once even if called twice7631 overriding methods7632 returns values from the class7633 a class prepending a concern prepending a concern7634 returns values from prepended module ee7635 has the expected ancestors7636 prepends only once7637 a class prepending a concern7638 returns values from prepended module ee7639 has the expected ancestors7640 prepends only once7641 simple case7642 class methods7643 has a method7644 can execute a method7645 instance methods7646 has a method7647 chains a method execution7648 having two prepended blocks7649 raises an error7650gitlab:ldap:rename_provider rake task7651 completes without error7652Gitlab::HealthChecks::PumaCheck7653 when Puma is not loaded7654 does not provide readiness and metrics7655 when Puma is loaded7656 when stats are missing7657 behaves like with state7658 does provide readiness7659 does provide metrics7660 for Single mode7661 behaves like with state7662 does provide readiness7663 does provide metrics7664 for Cluster mode7665 behaves like with state7666 does provide readiness7667 does provide metrics7668RuboCop::Cop::CodeReuse::ServiceClass7669 flags the use of a Service class in a Finder7670 flags the use of a Service class in a Presenter7671 flags the use of a Service class in a Serializer7672 flags the use of a Service class in a model7673 does not flag the use of a Service class in a regular class7674CommitUserMention7675 associations7676 should belong to note required:7677 behaves like has user mentions7678 #has_mentions?7679 when no mentions7680 returns false7681 when mentioned_users_ids not null7682 returns true7683 when mentioned projects7684 returns true7685 when mentioned groups7686 returns true7687Gitlab::Ci::Pipeline::Duration7688 test sample A7689 behaves like calculating duration7690 should eq 47691 test sample B7692 behaves like calculating duration7693 should eq 47694 test sample C7695 behaves like calculating duration7696 should eq 87697 test sample D7698 behaves like calculating duration7699 should eq 47700 test sample E7701 behaves like calculating duration7702 should eq 77703 test sample F7704 behaves like calculating duration7705 should eq 67706 test sample G7707 behaves like calculating duration7708 should eq 47709Gitlab::Themes7710 .body_classes7711 returns a space-separated list of class names7712 .by_id7713 returns a Theme by its ID7714 .default7715 returns the default application theme7716 prevents an infinite loop when configuration default is invalid7717 .each7718 passes the block to the THEMES Array7719Gitlab::Graphql::QueryAnalyzers::LoggerAnalyzer7720 #analyze?7721 feature flag disabled7722 disables the analyzer7723 feature flag enabled by default7724 enables the analyzer7725Gitlab::Diff::Line7726 .init_from_hash7727 behaves like line object initialized by hash7728 round-trips correctly with to_hash7729 .safe_init_from_hash7730 ensures rich_text is HTML-safe7731 behaves like line object initialized by hash7732 round-trips correctly with to_hash7733 when given hash has no rich_text7734 behaves like line object initialized by hash7735 round-trips correctly with to_hash7736 when setting rich text7737 escapes any HTML special characters in the diff chunk header7738Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildStarted7739 behaves like cycle analytics event7740 should be a kind of String7741 should be a kind of Symbol7742 should include ApplicationRecord(abstract)7743 should respond to #timestamp_projection7744 #apply_query_customization7745 expects an ActiveRecord::Relation object as argument and returns a modified version of it7746Gitlab::ImportExport::Config7747 #to_h7748 when using default config7749 ee: true7750 parses default config7751 ee: false7752 parses default config7753 when using custom config7754 when using CE7755 just returns the normalized Hash7756 when using EE7757 just returns the normalized Hash7758Gitlab::Middleware::RailsQueueDuration7759 #call7760 calls the app when metrics are disabled7761 when metrics are enabled7762 calls the app when metrics are enabled but no timing header is found7763 sets proxy_flight_time and calls the app when the header is present7764 observes rails queue duration metrics and calls the app when the header is present7765Serializers::JSON7766 .dump7767 returns a hash7768 .load7769 when loading a hash7770 decodes a string7771 allows to access with symbols7772 allows to access with strings7773 when loading a nil7774 returns nil7775Gitlab::Lazy7776 when not calling any methods7777 does not call the supplied block7778 when calling a method on the object7779 lazy loads the value returned by the block7780 #respond_to?7781 returns true for a method defined on the wrapped object7782 returns false for a method not defined on the wrapped object7783Gitlab::GithubImport::IssuableFinder7784 #database_id7785 returns nil when no cache is in place7786 returns the ID of an issuable when the cache is in place7787 raises TypeError when the object is not supported7788 #cache_database_id7789 caches the ID of a database row7790Gitlab::Config::Entry::Undefined7791 #leaf?7792 is leaf node7793 #valid?7794 is always valid7795 #errors7796 is does not contain errors7797 #value7798 returns nil7799 #relevant?7800 is not relevant7801 #specified?7802 is not defined7803Gitlab::ChatNameToken7804 when using unknown token7805 returns empty data7806 when storing data7807 returns stored data7808 and after deleting them7809 data are removed7810Gitlab::Config::Entry::Boolean7811 validations7812 when entry config value is valid7813 #value7814 returns key value7815 #valid?7816 is valid7817 when entry value is not valid7818 #errors7819 saves errors7820Gitlab::Ci::Status::Success7821 #text7822 should eq "passed"7823 #label7824 should eq "passed"7825 #icon7826 should eq "status_success"7827 #favicon7828 should eq "favicon_status_success"7829 #group7830 should eq "success"7831Gitlab::Ci::Build::Artifacts::Adapters::RawStream7832 #initialize7833 when stream is passed7834 initialized7835 when stream is not passed7836 raises an error7837 #each_blob7838 when file is not empty7839 iterates content7840 when file is empty7841 does not iterate content7842RuboCop::Cop::GroupPublicOrVisibleToUser7843 flags the use of Group.public_or_visible_to_user with a constant receiver7844 does not flat the use of public_or_visible_to_user with a constant that is not Group7845 does not flag the use of Group.public_or_visible_to_user with a send receiver7846Gitlab::Kubernetes::ServiceAccountToken7847 should eq "token-name"7848 should eq "a_service_account"7849 should eq "a_namespace"7850 #generate7851 builds a Kubeclient Resource7852SmimeSignatureSettings7853 .parse7854 sets correct default values to disabled7855 when providing custom values7856 sets correct default values to disabled7857 enables smime with default key and cert7858 enables smime with custom key and cert7859NamespaceBasicEntity7860 #as_json7861 includes required fields7862Gitlab::Git::BundleFile7863 .check!7864 returns nil for a valid bundle7865 raises an exception for an invalid bundle7866TestCaseEntity7867 #as_json7868 when test case is success7869 contains correct test case details7870 when test case is failed7871 contains correct test case details7872Gitlab::Cluster::PumaWorkerKillerObserver7873 #callback7874 increments timeout counter7875Gitlab::GrapeLogging::Loggers::QueueDurationLogger7876 .parameters7877 when no proxy time is available7878 returns an empty hash7879 when a proxy time is available7880 returns the correct duration in ms7881Gitlab::InsecureKeyFingerprint7882 #fingerprint7883 generates the key's fingerprint7884 #fingerprint7885 generates the key's fingerprint7886Gitlab::GitalyClient::Util7887 .repository7888 creates a Gitaly::Repository with the given data7889Gitlab::GithubImport::Representation::ExposeAttribute7890 defines a getter method that returns an attribute value7891Gitlab::QuickActions::Dsl7892 .command_definitions7893 returns an array with commands definitions7894ProjectMirrorSerializer7895 represents ProjectMirror entities7896Knapsack report was generated. Preview:7897{7898 "spec/models/member_spec.rb": 60.162341356277466,7899 "spec/models/issue_spec.rb": 38.999165773391724,7900 "spec/models/note_spec.rb": 45.348495960235596,7901 "spec/services/issuable/bulk_update_service_spec.rb": 34.006014823913574,7902 "spec/models/group_spec.rb": 27.16565203666687,7903 "spec/services/projects/fork_service_spec.rb": 18.52265763282776,7904 "spec/lib/gitlab/import_export/relation_rename_service_spec.rb": 17.002098560333252,7905 "spec/lib/gitlab/usage_data_spec.rb": 15.248002529144287,7906 "spec/models/project_wiki_spec.rb": 13.589721918106079,7907 "spec/lib/gitlab/user_access_spec.rb": 12.008309841156006,7908 "spec/lib/gitlab/cycle_analytics/group_stage_summary_spec.rb": 11.182082176208496,7909 "spec/serializers/build_details_entity_spec.rb": 9.592073678970337,7910 "spec/lib/gitlab/import_export/group_tree_saver_spec.rb": 7.973464012145996,7911 "spec/services/members/approve_access_request_service_spec.rb": 7.465392589569092,7912 "spec/finders/runner_jobs_finder_spec.rb": 6.729628324508667,7913 "spec/lib/gitlab/data_builder/push_spec.rb": 6.393301010131836,7914 "spec/lib/gitlab/git/wiki_spec.rb": 5.205074310302734,7915 "spec/finders/environments_finder_spec.rb": 5.23672342300415,7916 "spec/lib/gitlab/background_migration/remove_restricted_todos_spec.rb": 5.830400705337524,7917 "spec/models/release_spec.rb": 4.535577058792114,7918 "spec/lib/gitlab/ci/status/build/play_spec.rb": 4.5549750328063965,7919 "spec/lib/gitlab/hook_data/issuable_builder_spec.rb": 4.417104005813599,7920 "spec/models/concerns/discussion_on_diff_spec.rb": 4.156656503677368,7921 "spec/views/projects/edit.html.haml_spec.rb": 3.5135552883148193,7922 "spec/lib/gitlab/chat/command_spec.rb": 3.7174320220947266,7923 "spec/services/search/global_service_spec.rb": 3.509613275527954,7924 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 3.0281808376312256,7925 "spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 2.5635833740234375,7926 "spec/finders/branches_finder_spec.rb": 2.7237637042999268,7927 "spec/lib/gitlab/discussions_diff/file_collection_spec.rb": 3.346395254135132,7928 "spec/services/issues/reopen_service_spec.rb": 1.8177838325500488,7929 "spec/services/todos/destroy/confidential_issue_service_spec.rb": 2.400200605392456,7930 "spec/lib/gitlab/checks/diff_check_spec.rb": 1.8818178176879883,7931 "spec/presenters/release_presenter_spec.rb": 2.52541184425354,7932 "spec/services/projects/hashed_storage/rollback_repository_service_spec.rb": 2.268777370452881,7933 "spec/presenters/clusterable_presenter_spec.rb": 1.9463047981262207,7934 "spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb": 2.3850643634796143,7935 "spec/services/projects/update_pages_service_spec.rb": 2.249650478363037,7936 "spec/lib/gitlab/ci/trace/chunked_io_spec.rb": 2.137073040008545,7937 "spec/lib/gitlab/import_export/lfs_restorer_spec.rb": 2.0371057987213135,7938 "spec/serializers/discussion_diff_file_entity_spec.rb": 2.280116081237793,7939 "spec/views/notify/pipeline_success_email.html.haml_spec.rb": 1.5103650093078613,7940 "spec/lib/backup/repository_spec.rb": 2.314305305480957,7941 "spec/workers/pipeline_metrics_worker_spec.rb": 2.018810749053955,7942 "spec/lib/banzai/reference_parser/label_parser_spec.rb": 1.2642719745635986,7943 "spec/lib/gitlab/ci/status/external/common_spec.rb": 1.9414374828338623,7944 "spec/graphql/features/authorization_spec.rb": 1.9305675029754639,7945 "spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb": 1.77573823928833,7946 "spec/lib/gitlab/cycle_analytics/review_event_fetcher_spec.rb": 0.2875545024871826,7947 "spec/lib/gitlab/object_hierarchy_spec.rb": 1.6091790199279785,7948 "spec/migrations/migrate_forbidden_redirect_uris_spec.rb": 1.2502994537353516,7949 "spec/services/ci/ensure_stage_service_spec.rb": 1.3467578887939453,7950 "spec/views/projects/tree/show.html.haml_spec.rb": 2.181295871734619,7951 "spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb": 1.328294277191162,7952 "spec/lib/gitlab/slash_commands/run_spec.rb": 1.909428358078003,7953 "spec/helpers/avatars_helper_spec.rb": 1.6530108451843262,7954 "spec/views/projects/show.html.haml_spec.rb": 1.2538526058197021,7955 "spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb": 1.3705451488494873,7956 "spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb": 0.845778226852417,7957 "spec/models/ci/job_variable_spec.rb": 1.7702817916870117,7958 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 1.2573392391204834,7959 "spec/tasks/gitlab/web_hook_rake_spec.rb": 1.1077923774719238,7960 "spec/services/projects/lfs_pointers/lfs_link_service_spec.rb": 1.3048310279846191,7961 "spec/models/pool_repository_spec.rb": 1.1974999904632568,7962 "spec/services/clusters/aws/finalize_creation_service_spec.rb": 0.7413337230682373,7963 "spec/lib/gitlab/gitaly_client/wiki_service_spec.rb": 1.0135259628295898,7964 "spec/finders/resource_label_event_finder_spec.rb": 1.0857820510864258,7965 "spec/models/ci/build_trace_section_name_spec.rb": 0.8663632869720459,7966 "spec/models/project_services/asana_service_spec.rb": 0.8195159435272217,7967 "spec/models/project_services/assembla_service_spec.rb": 0.31571245193481445,7968 "spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb": 1.1808867454528809,7969 "spec/services/tags/destroy_service_spec.rb": 0.7450377941131592,7970 "spec/migrations/schedule_digest_personal_access_tokens_spec.rb": 0.9746010303497314,7971 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 1.2602550983428955,7972 "spec/lib/gitlab/cleanup/remote_uploads_spec.rb": 0.6154344081878662,7973 "spec/finders/autocomplete/project_finder_spec.rb": 0.7180612087249756,7974 "spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 0.6777646541595459,7975 "spec/migrations/set_issue_id_for_all_versions_spec.rb": 0.6702122688293457,7976 "spec/models/blob_viewer/readme_spec.rb": 1.1498537063598633,7977 "spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb": 0.6091132164001465,7978 "spec/migrations/schedule_to_archive_legacy_traces_spec.rb": 0.7150723934173584,7979 "spec/models/project_services/packagist_service_spec.rb": 0.7641212940216064,7980 "spec/workers/new_note_worker_spec.rb": 0.651444673538208,7981 "spec/lib/gitlab/ci/status/build/skipped_spec.rb": 0.6580679416656494,7982 "spec/policies/protected_branch_policy_spec.rb": 0.7504277229309082,7983 "spec/workers/build_success_worker_spec.rb": 0.49985289573669434,7984 "spec/routing/group_routing_spec.rb": 0.4182746410369873,7985 "spec/lib/gitlab/gitaly_client/blob_service_spec.rb": 0.4771614074707031,7986 "spec/lib/gitlab/cleanup/orphan_job_artifact_files_spec.rb": 0.29401206970214844,7987 "spec/policies/clusters/instance_policy_spec.rb": 0.5884454250335693,7988 "spec/services/reset_project_cache_service_spec.rb": 0.41996216773986816,7989 "spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb": 0.3334677219390869,7990 "spec/models/snippet_blob_spec.rb": 0.490215539932251,7991 "spec/services/protected_branches/destroy_service_spec.rb": 0.5660195350646973,7992 "spec/lib/gitlab/background_migration/reset_merge_status_spec.rb": 0.5766851902008057,7993 "spec/services/protected_tags/update_service_spec.rb": 0.7758545875549316,7994 "spec/tasks/tokens_spec.rb": 0.2667555809020996,7995 "spec/lib/gitlab/exclusive_lease_helpers_spec.rb": 0.33360743522644043,7996 "spec/initializers/direct_upload_support_spec.rb": 0.10190153121948242,7997 "spec/lib/gitlab/cycle_analytics/production_event_fetcher_spec.rb": 0.30574870109558105,7998 "spec/lib/gitlab/diff/line_mapper_spec.rb": 0.3561232089996338,7999 "spec/initializers/rest-client-hostname_override_spec.rb": 0.40021300315856934,8000 "spec/lib/gitlab/utils/override_spec.rb": 0.3076448440551758,8001 "spec/migrations/migrate_update_head_pipeline_for_merge_request_sidekiq_queue_spec.rb": 0.237687349319458,8002 "spec/tasks/gitlab/shell_rake_spec.rb": 0.19865751266479492,8003 "spec/workers/new_release_worker_spec.rb": 0.4428684711456299,8004 "spec/serializers/merge_request_user_entity_spec.rb": 0.2434847354888916,8005 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 0.08628511428833008,8006 "spec/serializers/container_repository_entity_spec.rb": 0.17166733741760254,8007 "spec/lib/gitlab/danger/helper_spec.rb": 0.21106719970703125,8008 "spec/services/protected_tags/create_service_spec.rb": 0.1581571102142334,8009 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 0.11769413948059082,8010 "spec/graphql/mutations/concerns/mutations/resolves_project_spec.rb": 0.3909873962402344,8011 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 0.1593611240386963,8012 "spec/lib/gitlab/ci/ansi2json/style_spec.rb": 0.13949966430664062,8013 "spec/db/development/import_common_metrics_spec.rb": 0.10206294059753418,8014 "spec/lib/gitlab/ci/ansi2html_spec.rb": 0.20583438873291016,8015 "spec/models/concerns/blob_language_from_git_attributes_spec.rb": 0.10925960540771484,8016 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 0.10187673568725586,8017 "spec/models/ci/sources/pipeline_spec.rb": 0.07944416999816895,8018 "spec/helpers/page_layout_helper_spec.rb": 0.05517435073852539,8019 "spec/rubocop/cop/code_reuse/presenter_spec.rb": 0.30625271797180176,8020 "spec/helpers/ci_status_helper_spec.rb": 0.08890390396118164,8021 "spec/lib/safe_zip/entry_spec.rb": 0.059667110443115234,8022 "spec/lib/gitlab/config/entry/validatable_spec.rb": 0.060323238372802734,8023 "spec/lib/gitlab/ci/config/external/context_spec.rb": 0.052123069763183594,8024 "spec/lib/gitlab/ci/config/entry/image_spec.rb": 0.04548335075378418,8025 "spec/lib/gitlab/sherlock/transaction_spec.rb": 0.04915952682495117,8026 "spec/lib/gitlab/slash_commands/application_help_spec.rb": 0.0502467155456543,8027 "spec/lib/gitlab/kubernetes_spec.rb": 0.036927223205566406,8028 "spec/graphql/mutations/todos/mark_all_done_spec.rb": 0.033860206604003906,8029 "spec/lib/gitlab/database/grant_spec.rb": 0.054292917251586914,8030 "spec/validators/namespace_path_validator_spec.rb": 0.09199714660644531,8031 "spec/rubocop/cop/code_reuse/serializer_spec.rb": 0.03500032424926758,8032 "spec/lib/gitlab/file_detector_spec.rb": 0.02877330780029297,8033 "spec/helpers/recaptcha_experiment_helper_spec.rb": 0.030425071716308594,8034 "spec/lib/gitlab/popen/runner_spec.rb": 0.03391242027282715,8035 "spec/lib/google_api/cloud_platform/client_spec.rb": 0.03411149978637695,8036 "spec/models/user_mentions/merge_request_user_mention_spec.rb": 0.027616500854492188,8037 "spec/lib/json_web_token/rsa_token_spec.rb": 0.020704030990600586,8038 "spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb": 0.02158951759338379,8039 "spec/lib/gitlab/metrics/rack_middleware_spec.rb": 0.02270364761352539,8040 "spec/lib/gitlab/gitaly_client/diff_spec.rb": 0.03174471855163574,8041 "spec/lib/gitlab/patch/prependable_spec.rb": 0.027749061584472656,8042 "spec/tasks/gitlab/ldap_rake_spec.rb": 0.014847040176391602,8043 "spec/lib/gitlab/health_checks/puma_check_spec.rb": 0.020104169845581055,8044 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.025434255599975586,8045 "spec/models/user_mentions/commit_user_mention_spec.rb": 0.02967047691345215,8046 "spec/lib/gitlab/ci/pipeline/duration_spec.rb": 0.01640796661376953,8047 "spec/lib/gitlab/themes_spec.rb": 0.012290716171264648,8048 "spec/lib/gitlab/graphql/query_analyzers/logger_analyzer_spec.rb": 0.005539894104003906,8049 "spec/lib/gitlab/diff/line_spec.rb": 0.018485307693481445,8050 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb": 0.010596752166748047,8051 "spec/lib/gitlab/import_export/config_spec.rb": 0.015094280242919922,8052 "spec/lib/gitlab/middleware/rails_queue_duration_spec.rb": 0.01254415512084961,8053 "spec/lib/serializers/json_spec.rb": 0.010400056838989258,8054 "spec/lib/gitlab/lazy_spec.rb": 0.00810098648071289,8055 "spec/lib/gitlab/github_import/issuable_finder_spec.rb": 0.01055145263671875,8056 "spec/lib/gitlab/config/entry/undefined_spec.rb": 0.010913610458374023,8057 "spec/lib/gitlab/chat_name_token_spec.rb": 0.008035421371459961,8058 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.007357120513916016,8059 "spec/lib/gitlab/ci/status/success_spec.rb": 0.01050114631652832,8060 "spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb": 0.008764505386352539,8061 "spec/rubocop/cop/group_public_or_visible_to_user_spec.rb": 0.007627010345458984,8062 "spec/lib/gitlab/kubernetes/service_account_token_spec.rb": 0.0072994232177734375,8063 "spec/config/smime_signature_settings_spec.rb": 0.010064363479614258,8064 "spec/serializers/namespace_basic_entity_spec.rb": 0.006120443344116211,8065 "spec/lib/gitlab/git/bundle_file_spec.rb": 0.004839420318603516,8066 "spec/serializers/test_case_entity_spec.rb": 0.004179716110229492,8067 "spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb": 0.0027561187744140625,8068 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.004015684127807617,8069 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.004106760025024414,8070 "spec/lib/gitlab/gitaly_client/util_spec.rb": 0.0024979114532470703,8071 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.002202272415161133,8072 "spec/lib/gitlab/quick_actions/dsl_spec.rb": 0.002865314483642578,8073 "spec/serializers/project_mirror_serializer_spec.rb": 0.00307655334472656258074}8075Knapsack global time execution for tests: 07m 55s8076Pending: (Failures listed here are expected and do not affect your suite's status)8077 1) Issue modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required does not validate presence8078 # No reason given8079 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:358080 2) Gitlab::Git::Wiki#preview_slug title: "", format: :markdown, expected_slug: ".md" matches the slug generated by gitaly8081 # Gitaly cannot generate a slug for an empty title8082 # ./spec/lib/gitlab/git/wiki_spec.rb:968083 3) Gitlab::Git::Wiki#preview_slug title: "", format: :md, expected_slug: ".md" matches the slug generated by gitaly8084 # Gitaly cannot generate a slug for an empty title8085 # ./spec/lib/gitlab/git/wiki_spec.rb:968086 4) Gitlab::Git::Wiki#preview_slug title: "", format: :txt, expected_slug: ".txt" matches the slug generated by gitaly8087 # Gitaly cannot generate a slug for an empty title8088 # ./spec/lib/gitlab/git/wiki_spec.rb:968089Finished in 12 minutes 31 seconds (files took 32.61 seconds to load)80902334 examples, 0 failures, 4 pending8091Fri Dec 13 08:51:04 UTC 20198093$ date8094Fri Dec 13 08:51:06 UTC 20198097coverage/: found 5 matching files 8098knapsack/: found 3 matching files 8099rspec_flaky/: found 4 matching files 8100rspec_profiling/: found 1 matching files 8101WARNING: tmp/capybara/: no matching files 8102tmp/memory_test/: found 2 matching files 8103Uploading artifacts to coordinator... ok id=378363812 responseStatus=201 Created token=CSL6TX1G8104Uploading artifacts...8105junit_rspec.xml: found 1 matching files 8106Uploading artifacts to coordinator... ok id=378363812 responseStatus=201 Created token=CSL6TX1G8107Job succeeded